Sådan bruges bevidst praksis til at lære programmering mere effektivt

Jeg tror virkelig, at alle kan lære at kode.

I slutningen af ​​dagen er programmering en færdighed, og det er åbent for enhver at erhverve en færdighed.

Nogle gange ser det ud til at blive god til noget at være en magisk proces. Men i virkeligheden er der klare trin at følge.

Anders Ericsson, professor ved Florida State University, er en førende forsker af eksperter. Han studerer processen med at tilegne sig en færdighed og hvad der kræves for at blive ekspert.

Gennem sine mange års forskning konkluderer han, at det, der adskiller de bedste kunstnere fra alle andre, er mængden af ​​tid brugt på noget, han kalder Bevidst praksis.

Han mener, at ”Den rigtige form for praksis over en tilstrækkelig periode fører til forbedring. Intet andet."

Jeg tror, ​​at rammen om bevidst praksis udviklet af Dr. Ericsson kan bruges til at hjælpe folk, der lærer at programmere.

Implementering af bevidst praksis har hjulpet mig i mit personlige liv, og jeg tror, ​​det kan hjælpe dig med at lære programmering mere effektivt.

Nedenfor forklarer jeg hver komponent i Bevidst praksis, og hvordan du kan indarbejde Bevidst praksis i din kodningsrejse.

Dekonstruktion

Det første trin i bevidst praksis er at dekonstruere og analysere din ønskede færdighed.

Dekonstruktion kræver, at du tager et fugleperspektiv af dit overordnede mål og opdele det i små håndterbare komponenter. Du prøver at finde den mest effektive sti fra hvor du er til hvor du vil hen.

Der er to måder, du kan gå på med at dekonstruere en færdighed. Du kan enten nedbryde komponenterne selv eller lære af en person, der allerede har tilegnet sig færdighederne.

For nogen, der lærer at kode, vil jeg anbefale at udnytte viden fra andre udviklere i stedet for at genopfinde hjulet.

Det meste af materialet derude (som freeCodeCamp) blev skabt af mennesker, der har lagt sig i at dekonstruere læringsprocessen og har gentaget materialet.

Du kan udnytte deres ekspertise og indsats, når du leder efter din egen vej fremad.

Blad gennem et par forskellige kodningswebsteder eller læs indholdsfortegnelsen over forskellige kodebøger (du kan forhåndsvise bøger på Amazon gratis). Læs også et par blogs eller spørg en udviklerven om deres mening.

Efter et stykke tid får du en fornemmelse af den bedste vej fremad.

Sørg også for, at dine interesser har en stemme. Det er svært at lære hurtigt, hvis du ikke er interesseret i materialet.

Den mest effektive vej til at lære at kode er i krydset mellem det, eksperterne anbefaler, og hvad du er interesseret i.

Vær ikke besat af at dekonstruere vejen til at blive programmør perfekt. Du finder aldrig den perfekt effektive rute.

Det er bedre at lave lidt research, starte et sted og justere, mens du går.

Stræk mål

Den næste nøglekomponent i bevidst praksis er at skabe strækningsmål.

Et strækningsmål er en lille opgave, der skubber dig uden for dine nuværende evner og bevæger dig langs din dekonstruerede læringsvej.

Oprettelse af strækmål handler ikke så meget om at have en enorm liste over opgaver, du har brug for at udføre. Den vigtigere del er at indstille din læring på en måde, der skubber grænserne for dine programmeringsevner.

Vi mennesker foretrækker naturligvis de ting, der er lette og automatiske.

Men hvis vi skubber os uden for vores komfortzoner længe nok, vil vores krop forsøge at normalisere den nye adfærd og gøre det til en vane.

Målet med et strækmål er at bevidst placere dig selv uden for din komfortzone og vente på, at din krop tilpasser sig.

Tricket med at skabe et strækmål er at gøre opgaven vanskelig, men stadig opnåelig.

Hvis målet er for svært, så går du vild og ved ikke, hvordan du går videre. Hvis målet er for let, vil du ikke udvikle dig så hurtigt som du kunne (eller slet ikke).

Det vil tage lidt tid at finde det søde sted.

I starten kunne et strækmål simpelthen være en lektion på freeCodeCamp. Efterhånden som et stykke tid går, kan et strækmål være at implementere en knap på din porteføljeside uden at bruge Google.

Det vigtigste at huske er, at hvis en opgave føles let, skubber du sandsynligvis ikke dig selv nok.

Fokus og opmærksomhed

Fokus er en grundlæggende komponent i hukommelse og erhvervelse af færdigheder.

Når du forsøger at kode ny information i din hjerne, er styrken af ​​kodningen direkte knyttet til intensiteten af ​​dit fokus.

Når dit fokus er svagt, vil nye oplysninger være mindre klæbrige, hvilket vil resultere i langsommere læring og mere tid på at studere.

Et fælles træk blandt mennesker, der lærer programmering hurtigt, er, at de har evnen til at fokusere intenst på den opgave, de udfører i lange perioder.

Tænk over, hvordan enhver kunstner i verdensklasse praktiserer. De kontrollerer sandsynligvis ikke deres telefon hvert 5. minut. De er sandsynligvis mentalt låst i den opgave, de udfører.

At have godt fokus betyder at fjerne alle uønskede distraktioner.

Der er to typer distraktioner, interne og eksterne. At mindske eksterne distraktioner betyder at lukke din telefon, gå til et stille rum og / eller sætte en webstedsblokker på din computer.

At tæmme interne distraktioner betyder ikke at lade interne tanker forbruge din tid. Dette kan gøres ved at øve på meditation eller have en notesbog til at skrive ned, hvad du tænker på.

Nøglen er at opbygge et distraktionsfrit miljø og have en plan, når en distraktion uundgåeligt dukker op. Du er sandsynligvis allerede godt klar over alle de ting, der distraherer dig.

(Hvis du vil have mere indsigt i, hvor din tid går, vil jeg anbefale at bruge noget som RescueTime.)

At forbedre dit fokus er en proces. I begyndelsen skal du prøve at være fuldt fokuseret i et par minutter. Efterhånden som tiden går, skal du langsomt ringe op til varigheden af ​​din fokuserede kodning.

Når du bevidst træner din programmeringsevne, er det bedre at være 100% fokuseret i en kortere periode end 70% fokuseret i længere tid.

Det føles måske umuligt at opretholde fokus, da vi lever i en verden, der konstant forsøger at fange vores opmærksomhed. Ikke desto mindre skal du finde en måde.

Udføre

Den eneste måde at blive bedre på noget er ved faktisk at gøre det.

Folk forveksler ofte at tilegne sig viden med at erhverve en færdighed. Viden er nyttig, men det er ikke en erstatning for faktisk at forsøge noget.

Viden giver på mange måder en falsk følelse af fremskridt. Du kan se 100 kodningstutorials og føle, at du er i stand til at kode dit eget websted. Men når du først går ud og prøver at bygge en til dig selv, kan du ende med at falde på dit ansigt.

Det er som forskellen mellem at se baseball og spille baseball. At se hjælper dig med at spille, men du kan ikke blive en god baseballspiller bare ved at se dit foretrukne professionelle baseballhold.

At tilegne sig færdigheder kræver, at du går ud i verden og tester din viden mod virkeligheden.

Dette er ikke altid let. Øvelse på noget nyt vil angribe dit ego og få dig til at føle dig inhabil. Du vil gerne stoppe eller gå tilbage til noget, der føles mere behageligt.

Desværre er det umuligt at lære noget nyt uden at se inkompetent ud (i det mindste i starten). Du kan lige så godt vænne dig til det.

Som vi talte om ovenfor, sker læring ikke inden for din komfortzone. Vær ikke overrasket, hvis du begynder at føle dig ubehagelig, når du koder. Ubehag er normalt et tegn på, at du er på vej i den rigtige retning.

Sørg for, at du konstant tester din viden mod den virkelige verden. Nøj ikke med at læse selvstudier eller se videoer. Sæt fingrene på tastaturet, og skriv en kode, som du kan køre.

Feedback

Det er umuligt at blive bedre til noget uden feedback.

Forestil dig at prøve at forbedre dit golfspil, men du kan ikke se, hvor bolden lander. Der ville ikke være nogen måde at vide, om du bliver bedre.

Feedback er den måde, virkeligheden kommunikerer med dig på. Det giver dig mulighed for at se kløften mellem hvad du tror du kender og hvad du faktisk ved.

Der er to måder at få feedback på. Du kan få det gennem selvstudium, eller en anden kan levere det.

Selvstudie kræver, at du sammenligner det, du forsøgte, med den rigtige løsning, som en anden skrev.

Dette sker naturligvis, når du går til websteder som Stack Overflow eller GitHub for at finde et svar på et problem. Feedbacken sker, når du opdager kløften mellem dit svar og det rigtige svar.

Når du går til websteder som Stack Overflow, skal du sørge for at bruge tid på at forstå, hvorfor et stykke kode fungerer, og hvordan det er anderledes. Kopiering og indsætning uden at forstå forskellen frarøver dig vigtig feedback, der hjælper med at forbedre og opdatere dine færdigheder.

Du kan også læse gennem en persons kode på Github og sammenligne den med din egen kode (eller sammenligne den med din nuværende forståelse af, hvordan du kode).

Ben Franklin brugte en lignende strategi, da han forbedrede sine skrivefærdigheder.

Han læste en artikel fra sin yndlingsavis et par gange. Derefter dekonstruerede han de teknikker, som forfatteren brugte. Han ville lægge artiklen væk og forsøge at replikere den på en lignende måde. Efter at han havde skrevet sin version, ville han sammenligne resultaterne og analysere hans udførelse.

Den anden måde at få feedback er ved at lade en mere erfaren udvikler se og kommentere din kode.

At have et nyt par øjne kan hjælpe dig med at løse individuelle problemer og kan også hjælpe dig med at komme tilbage på sporet, hvis du går i den forkerte retning.

Det kan være skræmmende at have en anden til at se på din kode (eller endda have en samtale med en erfaren udvikler). Ingen af ​​os vil se dumme ud. Hvis du kan komme over din frygt, kan det få stor indflydelse at få feedback fra andre.

En af mine største beklagelser, da jeg lærte mig selv at kode, var at jeg ikke fik nok feedback. Min kode var et rod, og jeg spildte meget tid på uvigtige ting.

At få feedback fra en mere erfaren udvikler ville have sparet mig meget tid og kamp. De ville straks have set, hvad jeg gjorde forkert, og sat mig på en lige vej.

Tænk på feedback fra en erfaren udvikler som et kompas. De bringer dig ikke fysisk til din destination, men de sørger for, at du går i den rigtige retning.

Justere

Feedback er værdiløs, hvis du ikke rent faktisk bruger den.

At lære at kode er som at bevæge sig gennem et mørkt rum. Du begynder at gå, støder på nogle møbler, justerer din rute og prøver igen.

Baseret på den feedback, du modtager, er det vigtigt at tage lidt tid på at tænke over kløften mellem hvad du ønskede at gøre, og hvad der faktisk skete. Baseret på dette hul, foretag justeringer, når du bevæger dig fremad.

Hvis du ikke foretager justeringer, forbedres du ikke.

Du bliver nødt til at justere specifikke linjer til kode for at få dit program til at fungere. Du skal også nogle gange justere din tilgang på makroniveau.

Vores oprindelige instinkt, når vi ikke gør fremskridt, er at prøve hårdere. Dette er kun effektivt til et punkt.

Hvis du ikke får de ønskede resultater, kan du prøve at angribe ting fra forskellige vinkler. Det kan tage nogle eksperimenter for at få det rigtigt.

Gentage

At udføre en opgave en gang er ikke nok.

Vores sind gemmer ikke information som computere. Vi har en tendens til at glemme nye oplysninger lige så hurtigt, som vi lærer dem.

At lære noget nyt kræver, at du gentager en opgave flere gange, før den sidder fast.

Gentagelse er et signal til vores hjerner om, at et nyt stykke information eller en ny adfærd er værdifuldt og ikke bør glemmes.

Gentagelsesfasen for at erhverve dygtighed er ikke let. Det skulle det ikke være. Du forsøger bevidst at omprogrammere din hjerne, og din krop vil naturligvis gerne gøre det, der er kendt.

Du bliver nødt til konsekvent at anvende en indsats for at lære at blive dygtig.

Den eneste sikre måde at mislykkes med at lære at kode er at afslutte. Hvis du ikke holder op og opretholder konsistens, vil du være i stand til at gentage det vigtige kodemateriale, og alt vil til sidst begynde at give mening.

Uanset hvor hårdt det føles, skal du sørge for at udvikle en konsekvent studievane. Det er næsten umuligt at lære kodning uden en.

For et dybt dykke i, hvordan du kan være mere konsekvent, skrev jeg en artikel om specifikke teknikker, du kan bruge.

Konklusion

Processen med at tilegne sig færdigheder er enkel, men det er ikke let. Du er din største fjende i processen.

Gamle vaner er svære at bryde. Hver nye færdighed er sin egen kamp, ​​der skal vindes.

Forbliv fokuseret, sørg for at skubbe dig selv, juster efter feedback, skyl og gentag.

Hvis du følger rammerne for bevidst praksis, tror jeg, du vil overraske dig selv med den hastighed, du vælger programmering.

Held og lykke.

Hvis du vil høre om andre indsigter, jeg har lært undervejs, skal du følge min konto Zero to Programmer på Twitter. Målet med kontoen er at hjælpe dig med at lære programmering mere effektivt.