Kuidas kasutada tahtlikku praktikat programmeerimise tõhusamaks õppimiseks

Usun tõesti, et igaüks saab õppida kodeerimist.

Päeva lõpuks on programmeerimine oskus ja oskuse omandamine on avatud kõigile.

Mõnikord tundub milleski hea saamine maagiline protsess. Kuid tegelikult tuleb järgida selgeid samme.

Florida osariigi ülikooli professor Anders Ericsson on juhtiv ekspertesinejate uurija. Ta uurib oskuste omandamise protsessi ja seda, mida on vaja eksperdiks saamiseks.

Oma aastatepikkuse uurimistöö kaudu jõuab ta järeldusele, et tipptegijaid eraldab kõigist teistest see, kui palju aega veedetakse milleski, mida ta nimetab tahtlikuks praktikaks.

Ta usub, et „õige praktika piisava aja jooksul viib paranemiseni. Mitte midagi muud."

Usun, et dr Ericssoni välja töötatud raamistust "Teadlik praktika" saab kasutada programmeerimist õppivate inimeste abistamiseks.

Tahtliku praktika rakendamine on mind aidanud isiklikus elus ja usun, et see aitab teil programmeerimist tõhusamalt õppida.

Allpool selgitan tahtliku praktika kõiki komponente ja seda, kuidas saate tahtliku praktika oma kodeerimisreisile lisada.

Dekonstrueerimine

Tahtliku praktika esimene samm on soovitud oskuste dekonstrueerimine ja analüüsimine.

Dekonstrueerimine nõuab, et vaataksite oma üldise eesmärgi linnulennult ja jaotaksite selle väikesteks juhitavateks komponentideks. Püüate leida kõige tõhusama tee oma asukohast sinna, kuhu soovite minna.

Oskuse dekonstrueerimiseks võite minna kahel viisil. Võite komponendid kas ise lõhkuda või õppida kelleltki, kes on selle oskuse juba omandanud.

Kodeerima õppiva inimese jaoks soovitan ratta uuesti leiutamise asemel kasutada teiste arendajate teadmisi.

Enamiku sealsest materjalist (nagu freeCodeCamp) lõid inimesed, kes on pingutanud õppeprotsessi dekonstrueerimiseks ja on materjali kordanud.

Oma edasiliikumise otsimisel saate kasutada nende asjatundlikkust ja vaeva.

Sirvige mõnda erinevat kodeerimisveebisaiti või lugege erinevate kodeerimisraamatute sisukorda (saate Amazonist raamatuid eelvaadet vaadata tasuta). Samuti lugege mõnda ajaveebi või küsige arendaja sõbralt arvamust.

Mõne aja pärast saate aimu parimast edasiliikumisest.

Samuti veenduge, et teie huvides oleks hääletus. Raske on kiiresti õppida, kui materjal ei huvita.

Kõige tõhusam viis kodeerimise õppimiseni on ristmikul, mida eksperdid soovitavad ja mis teid huvitab.

Ärge kinnisideeks programmeerijaks saamise tee täiuslikku lahti mõtestamist. Te ei leia kunagi täiesti tõhusat marsruuti.

Parem on veidi uurida, kuskilt alustada ja uuesti minna.

Venita väravaid

Teadliku praktika järgmine põhikomponent on venitatavate eesmärkide loomine.

Veniv eesmärk on väike ülesanne, mis tõukab teid väljapoole teie praeguseid võimeid ja liigutab teid mööda lahti mõtestatud õpperada.

Pingutatud eesmärkide loomine ei tähenda niivõrd tohutut ülesannete loendit, mida peate täitma. Olulisem osa on õppe seadistamine viisil, mis nihutab teie programmeerimisoskuste piire.

Meie, inimesed, eelistame loomulikult asju, mis on lihtsad ja automaatsed.

Kui aga surume end piisavalt kaua oma mugavustsoonidest väljapoole, püüab meie keha uut käitumist normaliseerida ja muuta selle harjumuseks.

Venituseesmärgi eesmärk on viia end teadlikult väljapoole mugavustsooni ja oodata, kuni keha kohaneb.

Venitava eesmärgi loomise nipp muudab ülesande keeruliseks, kuid siiski saavutatavaks.

Kui eesmärk on liiga keeruline, siis eksite ära ega tea, kuidas edasi liikuda. Kui eesmärk on liiga lihtne, siis ei arene te nii kiiresti kui võimalik (või üldse mitte).

Magusa koha leidmine võtab aega.

Stardis võiks venituseesmärk olla lihtsalt õppetund freeCodeCampist. Mida aeg edasi, seda pikemaks eesmärgiks võiks olla portfelli veebisaidil nupu rakendamine ilma Google'i kasutamata.

Peamine asi, mida meeles pidada, on see, et kui mõni ülesanne tundub lihtne, siis tõenäoliselt ei suruta ennast piisavalt.

Keskendumine ja tähelepanu

Fookus on mälu ja oskuste omandamise põhikomponent.

Kui proovite uut teavet ajusse kodeerida, on kodeeringu tugevus otseselt seotud teie fookuse intensiivsusega.

Kui teie tähelepanu on nõrk, jääb uus teave vähem kleepuvaks, mille tulemuseks on aeglasem õppimine ja rohkem aega õppimiseks.

Kiire programmeerimise õppivate inimeste seas on tavaline omadus see, et neil on võimalus intensiivselt keskenduda mis tahes ülesandele, mida nad pikka aega täidavad.

Mõelge, kuidas mõni maailmatasemel esineja harjutab. Tõenäoliselt ei kontrolli nad oma telefoni iga 5 minuti järel. Nad on tõenäoliselt vaimselt suletud mis tahes ülesandesse, mida nad täidavad.

Hea keskendumine tähendab kõigi soovimatute segajate välistamist.

Häirivaid tegureid on kahte tüüpi, sise- ja välised. Väliste häirivate tegurite vähendamine tähendab telefoni väljalülitamist, vaiksesse ruumi minemist ja / või saidi blokeerija arvutisse panemist.

Sisemiste segajate taltsutamine tähendab seda, et ei lase sisemistel mõtetel oma aega kulutada. Seda saab teha meditatsiooni harjutades või omades sülearvutit, et kõik üles kirjutada.

Peamine on ehitada häirivaba keskkond ja koostada plaan, kui tähelepanu kõrvale juhtub paratamatult. Tõenäoliselt olete juba hästi teadlik kõigist asjadest, mis teid häirivad.

(Kui soovite rohkem teavet selle kohta, kuhu teie aeg läheb, soovitaksin kasutada midagi sellist nagu RescueTime.)

Fookuse parandamine on protsess. Alguses proovige mõni minut täielikult keskenduda. Aja möödudes valige aeglaselt fokuseeritud kodeerimise kestus.

Teadlikult oma programmeerimisoskust harjutades on parem olla 100% keskendunud lühemat aega kui 70% pikemat aega.

Fookuse säilitamine võib tunduda võimatu, kuna elame maailmas, mis püüab pidevalt meie tähelepanu äratada. Sellest hoolimata peate leidma viisi.

Esineda

Ainus viis milleski paremaks saada on seda tegelikult tehes.

Inimesed ajavad teadmiste omandamise sageli segamini oskuste omandamisega. Teadmised on kasulikud, kuid need ei asenda millegi reaalset katsetamist.

Teadmised annavad teile paljuski vale progressi tunnetuse. Saate vaadata 100 kodeerimisõpetust ja tunda, et olete võimeline oma veebisaiti kodeerima. Kui aga lähete välja ja proovite endale sellist ehitada, võite lõpuks kukkuda näkku.

See on nagu vahe pesapalli vaatamise ja pesapalli mängimise vahel. Vaatamine aitab küll mängida, kuid ainult oma lemmik professionaalset pesapallimeeskonda vaadates ei saa sinust head pesapallurit.

Oskuste omandamiseks on vaja minna maailma ja proovida oma teadmisi reaalsuse suhtes.

See pole alati lihtne. Millegi uue harjutamine ründab teie ego ja paneb teid tundma saamatut. Soovite loobuda või minna tagasi millegi juurde, mis tundub mugavam.

Kahjuks on võimatu midagi uut õppida, ilma et oleksite vähemalt saamatu (vähemalt esialgu). Võite ka sellega harjuda.

Nagu me eespool rääkisime, ei toimu õppimine teie mugavustsoonis. Ära imesta, kui kodeerides tunned end ebamugavalt. Ebamugavus on tavaliselt märk sellest, et oled õiges suunas liikumas.

Veenduge, et prooviksite oma teadmisi pidevalt reaalses maailmas. Ärge leppige õpetuste lugemise ega videote vaatamisega. Pange sõrmed klaviatuuri külge ja kirjutage mõni kood, mida saate käivitada.

Tagasiside

Tagasisideta on võimatu milleski paremaks saada.

Kujutage ette, et proovite oma golfimängu parandada, kuid te ei näe palli maandumise kohta. Ei saa kuidagi teada, kas paremaks läheb.

Tagasiside on viis, kuidas reaalsus sinuga suhtleb. See võimaldab teil näha lõhet selle vahel, mida arvate teadvat ja mida tegelikult teate.

Tagasiside saamiseks on kaks võimalust. Saate selle iseõppimise kaudu või keegi teine ​​saab seda pakkuda.

Iseõppimine nõuab, et te võrdleksite oma katset õige lahendusega, mille keegi teine ​​postitas.

See juhtub loomulikult siis, kui lähete probleemidele vastuse leidmiseks veebisaitidele nagu Stack Overflow või GitHub. Tagasiside toimub siis, kui avastate lõhe oma vastuse ja õige vastuse vahel.

Veebisaitidele nagu Stack Overflow minnes veetke kindlasti aega, et mõista, miks kooditükk töötab ja kuidas see erineb. Kopeerimine ja kleepimine erinevusest aru saamata röövib teilt olulist tagasisidet, mis aitab teie oskusi parandada ja uuendada.

Samuti saate Githubis kellegi koodi läbi lugeda ja võrrelda seda oma koodiga (või võrrelda seda oma praeguse arusaamaga kodeerimise kohta).

Ben Franklin kasutas oma kirjutamisoskuse parandamisel sarnast strateegiat.

Ta luges paar korda oma lemmiklehe artiklit. Siis dekonstrueeris ta autori kasutatud tehnikad. Ta pani artikli ära ja üritas seda sarnaselt korrata. Pärast oma versiooni kirjutamist võrdles ta tulemusi ja analüüsis oma hukkamist.

Teine võimalus tagasisidet saada on lasta kogenumal arendajal teie koodi näha ja seda kommenteerida.

Värske silmapaari olemasolu aitab teil lahendada individuaalseid probleeme ja aitab teil jälle õigele teele jõuda, kui suundute vales suunas.

See võib olla hirmutav, kui keegi teine ​​teie koodi vaatab (või isegi kogenud arendajaga vestelda). Keegi meist ei taha tumm välja näha. Kui suudate hirmust üle saada, võib teistelt tagasisidet saada suur mõju.

Üks suurimaid kahetsusi, kui õpetasin ennast kodeerima, oli see, et ma ei saanud piisavalt tagasisidet. Minu kood oli segadus ja ma raiskasin palju aega ebaolulistele asjadele.

Kogenud arendajalt tagasiside saamine oleks mind säästnud palju aega ja vaeva. Nad oleksid koheselt näinud, mida ma valesti tegin, ja pannud mind sirgemale teele.

Mõelge kompassiks kogenud arendaja tagasisidest. Nad ei vii teid füüsiliselt sihtkohta, kuid tagavad, et liigute õiges suunas.

Kohanda

Tagasiside on väärtusetu, kui te seda tegelikult ei kasuta.

Kodeerimise õppimine on nagu pimedas toas liikumine. Hakkate kõndima, põrutate mööbli otsa, kohandate marsruuti ja proovite uuesti.

Saadud tagasiside põhjal on oluline võtta veidi aega, et mõelda lõhele, mida tahtsite teha ja mis tegelikult juhtus. Selle lõhe põhjal tehke edasiliikumisel kohandusi.

Kui te ei tee kohandusi, ei paranda te seda.

Programmi toimimiseks peate konkreetsed read koodiga kohandama. Mõnikord peate oma lähenemist kohandama ka makrotasandil.

Meie esialgne vaist, kui me ei edene, on proovida rohkem. See on efektiivne ainult teatud piirini.

Kui te ei saavuta soovitud tulemusi, proovige asju rünnata erineva nurga alt. Selle õigeks saamiseks võib kuluda mõningaid katseid.

Korda

Ühe ülesande täitmisest üks kord ei piisa.

Meie meel ei salvesta sellist teavet nagu arvutid. Me kipume uue teabe unustama sama kiiresti kui õpime.

Millegi uue õppimine nõuab ülesande mitu korda kordamist, enne kui see kinni jääb.

Kordamine on signaal meie ajule, et uus teave või uus käitumine on väärtuslik ja seda ei tohiks unustada.

Oskuste omandamise kordusetapp pole lihtne. See ei peaks olema. Püüate teadlikult oma aju ümber programmeerida ja teie keha soovib loomulikult teha seda, mis tuttav.

Oskuste omandamise õppimiseks peate pidevalt pingutama.

Ainus kindel viis koodimise õppimisel ebaõnnestumiseks on lõpetamine. Kui te ei loobu ja säilitate järjepidevust, saate olulist kodeerivat materjali korrata ja kõik hakkab lõpuks mõistlikuks saama.

Pole tähtis, kui raske see on, veenduge, et teil oleks järjekindel õppimisharjumus. Kodeerimist on ilma selleta peaaegu võimatu õppida.

Sügavaks sukeldumiseks, kuidas saaksite olla järjepidevam, kirjutasin artikli spetsiifiliste võtete kohta, mida saate kasutada.

Järeldus

Oskuste omandamise protsess on lihtne, kuid see pole lihtne. Oled selle käigus sinu suurim vaenlane.

Vanu harjumusi on raske murda. Iga uus oskus on tema enda võitlus.

Püsige keskendunud, veenduge, et surute ennast, reguleerige tagasisidet, loputage ja korrake.

Kui järgite tahtliku praktika raamistikku, usun, et üllatate ennast programmeerimise kiirusega.

Palju edu.

Kui soovite kuulda muudest teadmistest, mida olen oma teel õppinud, järgige Twitteris minu kontot Zero to Programmer. Konto eesmärk on aidata teil programmeerimist tõhusamalt õppida.