Du har hittat en bra kurs, handledning eller bok som lär dig att koda. Resursen talar till dig, den är helt logisk och du lär dig massor. Du har framgångsrikt påbörjat din resa för att lära dig koda. Bra för dig!
Nästa steg är naturligtvis att praktisera det du lärt dig. Om det inte är uppenbart är övning avgörande för inlärningsprocessen. Detta gäller för alla ämnen, och det gäller definitivt för kodning. Tänk dig att försöka lära dig fiol enbart genom att titta på någon som spelar den, utan att du någonsin rört fiolen själv. Samma sak gäller för kodning: Du kan förstå begreppen klart och tydligt, men du kan aldrig bli duktig på det utan att öva mycket.
Men hur övar du? Eller bättre uttryckt: Vilket är det bästa sättet att öva på kodning?
Olika människor fungerar på olika sätt, så det finns kanske inte ett bästa sätt för alla. Jag vill dock presentera ett specifikt, effektivt tillvägagångssätt som du kanske inte har tänkt på tidigare.
Bestsellerförfattaren och bloggaren James Clear skriver utförligt om en typ av övning som kallas ”avsiktlig övning”. Jag rekommenderar starkt att du läser hans blogginlägg om detta ämne. Två bra artiklar att börja med är här och här.
Clear skriver att ”medveten praktik hänvisar till en speciell typ av praktik som är målmedveten och systematisk. Medan vanlig träning kan innehålla tanklösa upprepningar kräver medveten träning fokuserad uppmärksamhet och utförs med det specifika målet att förbättra prestationen.”
Deliberat träning består av följande komponenter:
- Se upp för att göra dina repetitioner.
- Bryt ner den övergripande processen i delar
- Mät dig själv
- Testa nya strategier för varje del
- Integrera din inlärning i den övergripande processen.
Låt oss förklara vad dessa steg innebär, och specifikt i fråga om att öva kodning. Förresten är dessa strategier inte bara för kodningsnybörjare. De kan även användas av erfarna mjukvaruingenjörer för att hjälpa dem att höja nivån på sina färdigheter.
1. Visa dig för att göra dina repetitioner
Skapa tid varje dag för att öva på kodning. Försök så långt det är möjligt att aldrig missa en enda dag – håll strecket igång! Det är bättre att öva en kortare tid varje dag än att öva en längre sträcka en gång i veckan. Jag rekommenderar att du bygger in övningstid i ditt dagliga schema i stället för att försöka hitta tid varje dag för att klämma in det.
2. Dela upp den övergripande processen i delar
De flesta aspekter av kodning består av flera olika delar. Att bygga en webbapplikation kan till exempel bestå av back-end-programmering och front-end-programmering. Back-end-programmering kan i sin tur delas upp i användning av ett serverbaserat språk, ett serverbaserat ramverk och databasdesign. Front-end programmering kan delas upp i användning av HTML, CSS, JavaScript och ett front-end ramverk. Och så har vi användningen av verktyg för utvecklare, t.ex. terminalen, en textredigerare och versionskontroll.
Dedikera varje övningstillfälle till en av dessa mindre komponenter om det är möjligt, eftersom detta gör det möjligt för dig att finslipa varje specifik färdighet. Annars kan det sluta med att du måste ta itu med alla rörliga delar på en gång och aldrig bli riktigt duktig på var och en av delfärdigheterna. Du kanske kan skapa webbapplikation efter webbapplikation, men kvaliteten på din webbapplikation kanske inte ökar med tiden, eftersom du inte riktigt blir bättre på någon enskild färdighet. (Att integrera de rörliga delarna tillsammans är i sig en färdighet som du får, men det är bara en av de många färdigheter som ingår). Om du däremot kan höja nivån på varje delkompetens kommer de webbappar du bygger efteråt med hjälp av dessa finslipade delkompetenser att bli märkbart bättre.
3. Mät dig själv
Samtidigt som kvalitet generellt sett är svår att mäta finns det sätt att mäta din färdighetsnivå inom kodning ur ett kvantitativt perspektiv. Ett exempel är att mäta den tid det tar dig att utföra en uppgift. Det kan till exempel ta dig 20 minuter att lösa en grundläggande algoritm i JavaScript. Du kan fortsätta att öva på grundläggande JavaScript-algoritmer och se om du kan få mer flyt så att det kan ta mindre tid för dig. Generellt sett kan man säga att ju mer flytande man är i en kodningsuppgift, desto mindre tid tar det att utföra den uppgiften.
En annan faktor är antalet felmeddelanden som du stötte på under din uppgift. Om du när du löser en JavaScript-algoritm får fem felmeddelanden innan du lyckas, kan du fortsätta att öva och se om du kan lösa liknande algoritmer samtidigt som du får färre felmeddelanden. Det är naturligtvis inget fel med att få felmeddelanden, men att få färre felmeddelanden är i allmänhet ett tecken på ökad flyt i din färdighet.
4. Testa nya strategier för varje avsnitt
En viktig aspekt av avsiktlig övning är att du inte bara tanklöst övar en viss färdighet. Istället noterar du dina svagheter och testar nya strategier som eventuellt kan hjälpa dig att bli bättre. Om vi fortsätter med vår JavaScript-algoritmanalogi kan du testa olika tillvägagångssätt för att se om de hjälper dig att lösa problem snabbare eller med färre felmeddelanden. Vad händer till exempel när du konsekvent använder ”while-slingor” i stället för ”for..in-slingor”? Hjälper det dig att knäcka koden snabbare? Eller hjälper det dig att lösa problemen effektivare om du ritar ut visuella bilder på ett papper innan du skriver ditt första tecken? Hjälper det att skriva psuedokod? Olika tillvägagångssätt fungerar för olika personer – men du kan upptäcka vilka tillvägagångssätt som fungerar för dig.
5. Integrera ditt lärande i den övergripande processen
När du finslipar varje delkompetens går du tillbaka och skapar en ny webbapplikation igen. Förhoppningsvis kommer dina ökade färdigheter i – låt oss säga JavaScript – att hjälpa dig att skriva den webbapplikationen lättare, effektivare eller med större självförtroende.
Slutsats
Nyckeln till medveten övning är att inte öva tanklöst och hoppas att du blir bättre. Istället kan du specifikt testa din kunskapsnivå nu och medvetet prova nya tillvägagångssätt och se konkreta, mätbara förbättringar.