A szándékos gyakorlat használata a programozás hatékonyabb elsajátításához

Igazán hiszem, hogy bárki megtanulhat kódolni.

A nap végén a programozás készség, a készség megszerzése mindenki számára nyitott.

Néha varázslatos folyamatnak tűnik valamiben való jókedv. De a valóságban egyértelmű lépéseket kell követni.

Anders Ericsson, a Florida Állami Egyetem professzora az előadóművészek vezető kutatója. Tanulmányozza a készségek elsajátításának folyamatát és azt, hogy mi kell ahhoz, hogy szakértő legyen.

Több éves kutatása révén arra a következtetésre jut, hogy a legjobban teljesítőket elkülöníti mindenki mástól az, hogy mennyi időt tölt el valamiben, amelyet szándékos gyakorlatnak nevez.

Úgy véli, hogy „Megfelelő időn át tartó megfelelő fajta gyakorlat javuláshoz vezet. Semmi más."

Úgy gondolom, hogy a Dr. Ericsson által kifejlesztett szándékos gyakorlati keretrendszer felhasználható a programozást megtanulók megsegítésére.

A szándékos gyakorlat megvalósítása segített a személyes életemben, és úgy gondolom, hogy ez segíthet a programozás hatékonyabb elsajátításában.

Az alábbiakban elmagyarázom a szándékos gyakorlat egyes összetevőit és azt, hogy miként építheti be a szándékos gyakorlatot a kódolási útjára.

Dekonstrukció

A szándékos gyakorlat első lépése a kívánt készség dekonstruálása és elemzése.

A rekonstrukció megköveteli, hogy madártávlatból nézze meg általános célját, és apró, könnyen kezelhető összetevőkre bontsa. Megpróbálja megtalálni a leghatékonyabb utat onnan, ahová jár.

Kétféle módon lehet dekonstruálni egy készséget. Vagy maga bonthatja le az összetevőket, vagy tanulhat valakitől, aki már megszerezte a készséget.

Aki megtanul kódolni, azt javasolnám, hogy a kerék újrafeltalálása helyett használja ki más fejlesztők tudását.

A legtöbb anyagot (mint például a freeCodeCamp) olyan emberek hozták létre, akik erőfeszítéseket tettek a tanulási folyamat dekonstrukciójára, és megismételték az anyagot.

Kihasználhatja szakértelmüket és erőfeszítéseiket, amikor saját utat keres.

Lapozzon át néhány különböző kódoló webhelyet, vagy olvassa el a különféle kódoló könyvek tartalomjegyzékét (a könyveket ingyen megtekintheti az Amazon-on). Ezenkívül olvasson el néhány blogot, vagy kérdezze meg egy fejlesztői barát véleményét.

Egy idő után megismerheti a legjobb utat.

Győződjön meg arról is, hogy érdekei szavaznak-e. Nehéz gyorsan megtanulni, ha nem érdekli az anyag.

A kódolás elsajátításának leghatékonyabb útja a szakértők által ajánlott és érdeklődők metszéspontjában található.

Ne ragaszkodjon ahhoz, hogy tökéletesen dekonstruálja a programozóvá válás útját. Soha nem fogja megtalálni a tökéletesen hatékony útvonalat.

Jobb, ha elvégzel egy kis kutatást, elindul valahol, és menet közben újra beállít.

Stretch célok

A szándékos gyakorlat következő kulcsfontosságú eleme a nyújtási célok létrehozása.

A nyújtási cél egy kicsi feladat, amely kiszorítja a jelenlegi képességeidből, és végigvezet a dekonstruált tanulási úton.

A nyújtási célok létrehozása nem annyira a teljesítendő feladatok hatalmas listájának elkészítéséről szól. A legfontosabb rész a tanulás olyan beállítása, amely meghúzza a programozási képességeid határait.

Mi emberek természetesen a könnyű és automatikus dolgokat részesítjük előnyben.

Ha azonban elég hosszú ideig kitolódunk a komfortzónánkon kívül, testünk megpróbálja normalizálni az új viselkedést és megszokássá tenni.

A nyújtási cél célja, hogy tudatosan tegye magát a komfortzónán kívülre, és várja meg, amíg teste alkalmazkodik.

A nyújtási cél létrehozásának trükkje a feladat megnehezítése, de még mindig elérhető.

Ha a cél túl nehéz, akkor eltéved, és nem fogja tudni, hogyan tovább. Ha a cél túl könnyű, akkor nem fejlődik olyan gyorsan, mint lehet (vagy egyáltalán nem).

Időbe telik megtalálni az édes helyet.

Az elején egy nyújtási cél egyszerűen tanulság lehet a freeCodeCamp-on. Ahogy telik az idő, egy szakasz lehet egy gomb bevezetése a portfólió webhelyén a Google használata nélkül.

A legfontosabb dolog, amire emlékezni kell: ha egy feladat könnyűnek érzi magát, akkor valószínűleg nem nyomja eléggé magát.

Összpontosítás és figyelem

A hangsúly a memória és a készségek elsajátításának egyik alapeleme.

Amikor megpróbál új információkat kódolni az agyába, a kódolás erőssége közvetlenül kapcsolódik a fókusz intenzitásához.

Ha gyenge a figyelem, az új információk kevésbé ragadnak, ami lassabb tanulást és több időt igényel.

A programozást gyorsan elsajátító emberek körében jellemző az a képesség, hogy képesek intenzíven összpontosítani bármilyen feladatra, amelyet hosszú ideig végeznek.

Gondoljon arra, hogy bármelyik világszínvonalú előadó hogyan viselkedik. Valószínűleg nem ellenőrzik a telefonjukat 5 percenként. Valószínűleg mentálisan el vannak zárva bármilyen feladattól.

A megfelelő összpontosítás azt jelenti, hogy kiküszöböli az összes nem kívánt zavaró tényezőt.

Kétféle zavaró tényező létezik: belső és külső. A külső zavaró tényezők csökkentése azt jelenti, hogy kikapcsolja a telefont, elmegy egy csendes helyiségbe és / vagy helyet blokkolót helyez a számítógépére.

A belső zavaró tényezők megszelídítése azt jelenti, hogy nem hagyják, hogy a belső gondolatok felemészték az idődet. Ezt megtehetjük meditáció gyakorlásával, vagy ha van egy jegyzetfüzetünk, amellyel feljegyezhetjük a gondolatait.

A legfontosabb az, hogy zavaró környezetet építsen ki, és legyen terve, amikor egy figyelemelterelés elkerülhetetlenül felbukkan. Valószínűleg már jól ismeri mindazt, ami elvonja a figyelmét.

(Ha további betekintést szeretne kapni az idejébe, azt javasoljuk, hogy használjon valami hasonlót a RescueTime-hez.)

Fókuszának javítása folyamat. Az elején próbáljon néhány percig teljesen összpontosítani. Az idő múlásával lassan tárcsázza a fókuszált kódolás időtartamát.

Amikor szándékosan gyakorolja a programozási készségét, jobb, ha 100% -ra koncentrál rövidebb ideig, mint 70% -ra hosszabb ideig.

Lehetetlen érzés fenntartani az összpontosítást, mivel olyan világban élünk, amely folyamatosan megpróbálja lekötni a figyelmünket. Ennek ellenére meg kell találnia a módját.

Végezze

Az egyetlen módja annak, hogy valamiben jobb legyünk, az az, ha valóban meg is csináljuk.

Az emberek gyakran összekeverik az ismeretek megszerzését a készségek megszerzésével. A tudás hasznos, de nem helyettesíti a tényleges próbálkozást.

A tudás sok szempontból hamis érzést ad a haladásról. Megtekinthet 100 kódolási oktatóanyagot, és úgy érezheti, hogy képes kódolni saját webhelyét. Ha azonban kimegy, és megpróbál építeni egyet magának, akkor az arcára eshet.

Ez olyan, mint a különbség a baseball nézése és a baseball játék között. A nézés segít a játékban, de nem válhat jó baseball-játékossá, ha csak a kedvenc profi baseballcsapatát figyeli.

A képességek megszerzéséhez meg kell menni a világba, és tesztelni kell tudását a valósággal.

Ez nem mindig könnyű. Valami új gyakorlása megtámadja az egódat, és alkalmatlannak érzi magát. Érdemes leszokni vagy visszatérni valamihez, ami sokkal kényelmesebbnek érzi magát.

Sajnos lehetetlen valami újat tanulni anélkül, hogy képtelennek látszana (legalábbis eleinte). Te is megszokhatod.

Amint fentebb említettük, a tanulás nem a komfortzónádon belül történik. Ne lepődj meg, ha kényelmetlenül érzed magad a kódolás közben. A kényelmetlenség általában annak a jele, hogy jó irányba haladsz.

Győződjön meg róla, hogy folyamatosan teszteli tudását a való világban. Ne elégedjen meg oktatóanyagok olvasásával vagy videók megtekintésével. Tegye az ujjait a billentyűzethez, és írjon néhány futtatható kódot.

Visszacsatolás

Visszajelzés nélkül lehetetlen bármiben is jobbá válni.

Képzelje el, hogy megpróbálja javítani a golfjátékát, de nem látja, hova landol a labda. Nem lehet tudni, hogy javul-e.

A visszajelzés az, ahogyan a valóság kommunikál veled. Ez lehetővé teszi, hogy meglássa a különbséget annak, amit úgy gondol, hogy tud, és amit valójában tud.

Kétféle módon kaphat visszajelzést. Önálló tanulással megszerezheti, vagy valaki más biztosíthatja.

Az önálló tanulás megköveteli, hogy hasonlítsa össze a kísérletet a helyes megoldással, amelyet valaki más tett közzé.

Ez természetesen akkor történik, amikor olyan webhelyekre látogat el, mint a Stack Overflow vagy a GitHub, hogy megoldást találjon egy problémára. A visszajelzés akkor történik, amikor rájön a válasz és a helyes válasz közötti szakadékra.

Amikor olyan webhelyekre látogat, mint a Stack Overflow, győződjön meg arról, hogy időt szán annak megértésére, hogy miért működik egy rész kód és miben más. A különbség megértése nélküli másolás és beillesztés fontos visszajelzéseket rabol el, amelyek segítenek fejleszteni és frissíteni képességeit.

Elolvashatja valaki kódját a Githubon, és összehasonlíthatja saját kódjával (vagy összehasonlíthatja a kódolás jelenlegi ismereteivel).

Ben Franklin hasonló stratégiát alkalmazott, amikor fejlesztette írói képességeit.

Párszor elolvasott egy cikket kedvenc újságjából. Aztán dekonstruálta a szerző által alkalmazott technikákat. Eltette a cikket, és megpróbálta hasonló módon megismételni. Miután megírta verzióját, összehasonlítaná az eredményeket és elemezné a végrehajtását.

A visszajelzés másik módja az, ha hagyja, hogy egy tapasztaltabb fejlesztő lássa és kommentálja a kódot.

A friss szempár segíthet megoldani az egyedi problémákat, és segíthet abban, hogy visszaálljon a helyes pályára, ha rossz irányba halad.

Ijesztő lehet, ha valaki más megnézi a kódodat (vagy akár beszélgetést folytat egy tapasztalt fejlesztővel). Egyikünk sem akar néma lenni. Ha túl tudsz lépni félelmeden, a visszajelzések megszerzése másoktól nagy hatással lehet.

Az egyik legnagyobb sajnálatom, amikor kódolásra tanítottam magam, az volt, hogy nem kaptam elég visszajelzést. A kódom rendetlenség volt, és sok időt pazaroltam el nem fontos dolgokra.

Ha egy tapasztaltabb fejlesztőtől visszajelzést kapok, rengeteg időt és küzdelmet jelentett volna. Azonnal látták volna, hogy mit csinálok rosszul, és egyenesebb útra tereltek.

Gondoljon iránytűként egy tapasztalt fejlesztő visszajelzésére. Fizikailag nem viszik el az úti céljába, de megbizonyosodnak arról, hogy jó irányba halad-e.

Beállítani

A visszajelzés semmit sem ér, ha valóban nem használja.

A kódolás megtanulása olyan, mintha egy sötét szobában haladnánk át. Elkezd sétálni, betoppan néhány bútorba, beállítja az útvonalat, és megpróbálja újra.

A kapott visszajelzések alapján fontos, hogy szánjon egy kis időt arra, hogy elgondolkodjon azon a különbségen, amit tenni akart, és ami valójában történt. Ezen rés alapján végezze el a kiigazításokat, ahogy halad előre.

Ha nem hajt végre módosításokat, akkor nem fog javulni.

A program működéséhez bizonyos sorokat a kódhoz kell igazítania. Néha makroszinten is módosítania kell a megközelítését.

A kezdeti ösztönünk, amikor nem haladunk előre, az az, hogy erősebben próbálunk. Ez csak egy pontig hatékony.

Ha nem éri el a kívánt eredményt, próbáljon különböző szögekből támadni a dolgokat. Lehet, hogy némi kísérletezésre van szükség a helyes megoldás érdekében.

Ismétlés

Egy feladat elvégzése nem elegendő.

Az elménk nem tárol olyan információkat, mint a számítógépek. Hajlamosak vagyunk ugyanolyan gyorsan elfelejteni az új információkat, mint amennyit megtanulunk.

Valami új elsajátításához meg kell ismételni egy feladatot, mielőtt az megmarad.

Az ismétlés jelzés az agyunk számára, hogy egy új információ vagy egy új viselkedés értékes, és nem szabad elfelejteni.

A készségek elsajátításának szakasza nem könnyű. Állítólag nem az. Tudatosan próbálod átprogramozni az agyadat, és a tested természetesen azt akarja csinálni, ami ismerős.

Következetesen meg kell tennie az erőfeszítéseket a tanulás elsajátítása érdekében.

A kódolás megtanulásának kudarcának egyetlen biztos módja a kilépés. Ha nem hagyja abba, és nem tartja meg a következetességet, akkor képes lesz megismételni a fontos kódoló anyagot, és minden végül értelmes lesz.

Nem számít, milyen nehéznek érzi magát, mindenképpen alakítson ki következetes tanulmányozási szokást. Szinte lehetetlen megtanulni kódolást egy nélkül.

A mélyebb elmélyülés érdekében, hogyan lehet következetesebb, írtam egy cikket az Ön által alkalmazható specifikus technikákról.

Következtetés

A készségek megszerzésének folyamata egyszerű, de nem könnyű. Te vagy a legnagyobb ellenséged a folyamat során.

A régi szokásokat nehéz megtörni. Minden új készség saját csata, amelyet el kell nyerni.

Maradjon koncentrált, győződjön meg róla, hogy nyomja magát, állítsa be a visszajelzések alapján, öblítse le és ismételje meg.

Ha betartja a szándékos gyakorlat keretrendszerét, úgy gondolom, hogy meg fogja lepni magát a programozás gyorsaságával.

Sok szerencsét.

Ha szeretne hallani más meglátásokról, amelyeket útközben megtanultam, kövesse a Twitteren a Zero to Programmer fiókomat. A fiók célja, hogy segítsen a programozás hatékonyabb elsajátításában.