Hej, jag heter Matias
Jag har hållit på med JavaScript sedan 2013, men min läranderesa har inte varit rak. Jag räknar från när jag började, men det betyder inte att jag har suttit aktivt varje dag i tretton år. Det har varit perioder där jag byggt mycket, perioder där jag fastnat och perioder där jag nästan gav upp.
Jag fastnade länge i det som många kallar tutorial hell. Jag gick igenom kurser på nätet, ofta halvvägs, hoppade vidare till nästa kurs och kände alltid efter ett tag att jag aldrig skulle bli tillräckligt bra. Samtidigt fanns det något i programmeringen som gav mig ro. När jag satt vid datorn, löste små problem och fick idéer, blev det nästan som hjärngympa. Det roade mig och drog mig tillbaka igen.
Drömmen om att frilansa
Jag kommer från en bakgrund inom bygg i arbetslivet, men jag har länge haft en dröm om att kunna frilansa. Tanken var enkel: om jag har en laptop och internet, då kan jag ha mitt yrke med mig nästan var som helst i världen.
För att ta mig vidare läste jag upp gymnasiet på komvux, vilket tog tre år, för att kunna komma in på universitetet och studera webbutveckling. Jag tog programmeringskurserna som fanns på gymnasiet och fortsatte sedan med enstaka kurser i JavaScript och webbutveckling på universitetet.
På gymnasiet fick jag höga betyg, troligen för att jag redan hade kämpat med grunderna genom alla år av tutorial hell. Det gav mig självförtroende. Jag tog några frilansjobb. Vissa klarade jag, andra inte. När något gick dåligt föll självförtroendet igen. Men med tiden började jag förstå något viktigt: man blir inte bra av att bara titta på någon annan som kodar. Man blir bra av att bygga, göra fel, felsöka och bygga igen.
Det jag tror på
Man lär sig inte programmering genom att bara titta. Man måste bygga, fastna, testa och förstå.
AI kan hjälpa dig framåt, men du behöver fortfarande förstå byggstenarna. Annars vet du inte om svaret faktiskt passar problemet.
Det jag önskar att jag hade förstått tidigare
För mig är det sämsta sättet att fastna i kurs efter kurs där någon håller en i handen hela vägen. Det kan fungera i början när man lär sig grunderna, men för att verkligen kunna bygga projekt måste man till slut hoppa in i det själv. Man måste våga börja bygga och sedan jaga lösningar när man kör fast.
Teori ska inte vara något man försöker memorera allt av. Teori är mer som en manual. När du har lärt dig grunderna och bygger något, då går du tillbaka till teorin för att förstå hur du ska lösa nästa steg.
Om man förstår byggstenarna och ser hur de samarbetar med varandra, då har man kommit långt. En variabel gör en sak. En loop gör en annan. Ett villkor väljer väg. När byggstenarna börjar jobba tillsammans blir det ett program. Den insikten önskar jag att någon hade gett mig mycket tidigare.
Utveckling idag är inte som 2013
När jag började fanns Google, forum och Stack Overflow. Det var dit man vände sig när man körde fast. Idag har utvecklingen skiftat enormt. Dagens utvecklare arbetar tillsammans med AI.
Men AI ersätter inte förståelse. En utvecklare behöver fortfarande kunna grunderna, se vad koden gör, välja rätt byggsten och avgöra om lösningen är bra. AI kan hjälpa dig att komma snabbare framåt, men det är fortfarande du som styr projektet.
Därför känns Python extra intressant för mig idag. Python är ett universellt språk som kan användas till program, spel, webbsidor, automatisering, cybersäkerhet, AI och mycket mer. Jag har inte programmerat i Python tidigare, så jag bygger den här sidan parallellt med att jag själv lär mig språket.
Varför AskHackers finns
När jag lär mig en byggsten i Python försöker jag först förstå den själv. Sedan försöker jag förklara den på sidan på ett sätt som jag själv hade velat få den förklarad när jag började 2013.
Alla programmeringsspråk har sina byggstenar, funktioner och sin syntax. De ger instruktioner till datorn på lite olika sätt. När man väl förstår ett språk blir det lättare att hoppa in i nästa, för tänket följer med. Man kan se språken som verktyg, ungefär som en snickare har olika verktyg för att slutföra olika projekt.
Min plan är enkel: först kommer teori om en byggsten, sedan fem övningar, och till sist visar vi hur byggstenen passar in i Snake-spelet. På så sätt bygger man inte bara lösryckta exempel. Man bygger ett riktigt projekt steg för steg.
Vägen framåt
Jag har undersökt mycket vad som brukar räknas som grundnivå, mellannivå och avancerad Python. Först vill jag visa hur Snake kan byggas med grundbyggstenarna. Sedan kan samma idé byggas om på en mellannivå med bättre struktur. Till slut kan projektet växa till en mer avancerad version.
Längre fram vill jag också gå in i AI-världen. Men först vill jag att grunderna ska sitta. AI blir mer intressant när man själv förstår vad koden gör.
Communityn
Jag har också lagt upp en community-sida där man kan ställa frågor som är kopplade till sidan, övningarna, Snake-projektet och lösningar man kör fast på. Tanken är inte att det ska kännas som ett stort anonymt forum, utan mer som en plats där man kan fråga när något inte klickar.
När man lär sig programmering fastnar man hela tiden. Det är normalt. Ibland saknas bara en liten förklaring, ett exempel eller någon som säger: tänk på byggstenen på det här sättet. Communityn finns för just det. Du ska kunna visa vad du försöker bygga, beskriva var du fastnar och få hjälp att komma vidare.
Målet är att frågorna ska vara nära kursen: teori, övningar, buggar, lösningar och hur koden passar in i Snake-spelet. På så sätt blir communityn inte bara prat vid sidan av, utan en del av lärandet.
Du hittar den här: Community.
En ärlig notis
Jag är ingen lärare. Jag lär ut på det sätt jag önskar att någon hade lärt mig. Om du är nyfiken på Python, testa metoden och se om den fungerar för dig. Har du frågor kan du mejla mig på kallionpaaikonenm@gmail.com.