Tu je dôvod, prečo sa naučiť, ako kódovať, je také ťažké (a čo s tým robiť)

Na jeseň roku 2014 som začal dlhú a bolestnú cestu k vývoju webov.

Keďže som mal dennú prácu, vedel som, že tento proces spotrebuje moje noci a víkendy. A keďže som sa nikdy predtým nenaučil žiadne technické zručnosti online, uvedomoval som si, že existuje veľa nepredstaviteľných výziev, ktoré by im na ceste spôsobili škaredé hlavy.

Ale tu je to, čo som nemohol predvídať: Po použití stoviek písomných, video a interaktívnych návodov som zistil, že metódy výučby technických tém online boli neuveriteľne ... primitívne.

Stav online návody na kódovanie

Vývojári s tisíckami rokov kolektívnej skúsenosti ročne napíšu tisíce tutoriálov o HTML, CSS a JavaScript. Mysleli by ste si, že bude existovať bohatý ekosystém s množstvom vyučovacích metód a interaktívnych nástrojov.

Nie je to tak. Namiesto toho návody na programovanie jednoducho prebaľujú vyučovacie techniky 20. storočia technológiou 21. storočia.

Videonávody napodobňujú lekciu v triede s tabuľou. Alebo inštruktážne DVD, ktoré si môžete kúpiť od infomercial.

Písomné príručky fungujú ako kapitoly kníh.

Interaktívne návody fungujú ako kompilátory, ktoré sa používajú na vysokých školách od 80. rokov.

Po tom, čo som strávil noc po noci učením sa nových tém a ich skúšaním v testovacích projektoch, som si myslel, že NEMÁM robiť niečo zlé. Tak som sa začal pýtať priateľov, čo si myslia, že by som mal robiť inak.

Vysokoškolskí odborníci na informatiku sa ma opýtali: „Skúsili ste si prečítať dokumenty na W3 School alebo Mozilla Developer Network?“

Iní podnikatelia mi povedali: „Vzdaj sa hneď teraz. Keď som to skúšal, nemohol som sa to naučiť. “

Vývojári webových stránok, ktorí sa učili samostatne, sa ma opýtali: „Prečo sa so mnou rozprávate? Máte stovky hodín, ak sa chcete naučiť vývoj webových aplikácií. “

Čítanie dokumentácie. Vzdať sa. Vložte viac hodín. To boli moje možnosti.

Neustále som dával hodiny, kým som nemohol zostaviť plnohodnotnú webovú aplikáciu. Trvalo to celý rok (aspoň). Tieto hodiny boli venované opakovaným sledovaniam, opakovaným čítaním a opakovaným cvičením, až som sa cítil, akoby som to „dostal“, a potom vyskúšal koncept v projekte.

Cítil som sa, akoby som sa nevyvinul z bolestivých študijných návykov, ktoré som musel používať na vysokej škole. Bolo šokujúce, že tisíce ďalších vývojárov webov pre začiatočníkov budú musieť túto cestu dokončiť.

Preto som sa rozhodol zistiť, prečo tieto technické návody viedli k hodinám zmätku. Čítal som knihy a články v oblasti kognitívnej psychológie, pozrel som na populárnu taktiku vysvetlenia a napísal som aj vlastnú sériu inštruktážnych programov.

Tu je 5 dôvodov, prečo internet plný kurzov pre programovanie stále nedokázal poskytnúť uspokojivé lekcie (a ako to urobiť lepšie).

Chyba č. 1: Výučba zobrazovaním útržkov kódu

Porovnajme kódovanie s varením. Obidve vyžadujú, aby ste dôsledne dodržiavali súbor pokynov, ak chcete dosiahnuť primeraný výstup. Obidve majú tvrdé pravidlá bez možnosti chýb.

Z nejakého dôvodu tvorcovia tutoriálov radi po úryvku konceptu prvýkrát na obrazovke umiestnia útržok kódu. Poskytnú riadkové vysvetlenie kódu, akoby to stačilo.

Vo vyššie uvedenom útržku kódu neexistujú žiadne jasné asociácie medzi rôznymi riadkami, pokiaľ nie ste vývojár stredného servera Node.js a neviete, ako napísať server HTTP.

Ak som sa vás snažil naučiť, ako pripraviť omáčku, je to rovnaké ako ukázať vám obrázok každej zložky omáčky v jej pripravenej podobe bez toho, aby som vám ukázal, ako sa tam dostať. Dalo by sa to zistiť, ale bude to trvať veľa pokusov a omylov.

Je to nakrájané tofu? Nakrájanú cibuľu? Nakrájaný fenikel? Aké veľké sú kúsky? Aký nástroj by som ich mal použiť na kocky?

Samozrejme, ak sa chcete stať zdatným kuchárom, nechcete sa dozvedieť, ako kocky znovu a znovu kockovať. Chcem vás učiť raz alebo dvakrát a dovolím vám, aby ste si každý malý krok, od plnej cibule po kosti.

Je to tak blízko, ako sa dostávame do triedy varenia

Ak existuje viacstupňový proces učenia, ako vytvoriť server HTTP (ako je uvedený vyššie), zlomok kódu by mal byť poslednou časťou. Nemal by to byť prvý (alebo celý) proces. A celý kontext sa musí učiť spolu.

Dôvodom je, že váš mozog ukladá dlhodobé spomienky v hippocampe prostredníctvom asociácií. Hippocampus potrebuje kontext na uloženie nového konceptu so súvisiacimi koncepciami. Kontext v tomto prípade nejde o susedné riadky kódu s jednotlivými vysvetleniami.

Namiesto toho by noví weboví vývojári mali omnoho lepšiu šancu na uloženie koncepcie servera HTTP jeho priradením k niečomu, čomu už rozumejú. Váš mozog musí vytvoriť bohatú sieť spojení, aby mohol úspešne ukladať nové náročné koncepty.

Tu je niekoľko spôsobov, ako môže váš mozog lepšie porozumieť komponentom servera HTTP:

  1. Analógia, ktorá vysvetľuje rôzne časti bloku kódu a používa existujúce vzťahy na vysvetlenie týchto nových vzťahov.
  2. Interaktívna verzia útržku kódu, ktorá zobrazuje aktuálny stav aplikácie. Keď zmeníte riadok, okamžite získate odpoveď na to, čo sa stalo s vašou požiadavkou.

Chyba č. 2: Nezohľadnenie pravidla 80/20

Ak urobíte rozhovor s učiteľom pre vývoj webových aplikácií alebo s 10 novými vývojármi webových stránok, budete stále znova počuť o rovnakých výzvach. Poloha CSS. Pláva. Spätné volania. Toto boli najbežnejšie výzvy za posledných 10 rokov.

Z nejakého dôvodu sa však výučby budú stále učiť každý koncept na rovnaké množstvo času. Ak je lekcia úvodného CSS zložená z 10 hodín a očakáva sa, že bude trvať celkom 5 hodín, každá lekcia bude trvať približne 30 minút. Tí ľahší sa učia presne tak dlho, ako tie tvrdé, aj keď existuje dobre zdokumentovaný konsenzus v najnáročnejších témach!

Je to ako učiť, ako rozbiť vajíčko oproti tomu, ako starostlivo piť gurmánske kuracie prsia. Obidve sú rovnako dôležité na výrobu skvelého jedla, ale jeden vyžaduje oveľa viac praxe. Možno vás však bude zavádzať, keď uveríte, že sú rovnako ťažké, pretože varenie kuracieho prsníka sa z vonkajšej strany javí ako jednoduchá práca.

Noví vývojári tento problém riešia niekoľkými spôsobmi:

  1. Predpokladajme, že sú hlúpy a vzdajú sa
  2. Poraďte sa s inými tutoriálmi na tú istú tému, ktoré budú zväčša opakujúce sa a niekedy nekvalitné. Prístup „sprej a modli sa“.
  3. Prejdite na ďalšiu tému s predpokladom, že „to prídu neskôr“.

Učitelia z iných odborov použijú analýzu 80/20 na presmerovanie svojich snáh. To znamená, že 20% nových konceptov spotrebuje 80% času na štúdium študentov.

Vzorové témy CSS

Na vytvorenie krásnej webovej stránky môže byť rovnako potrebných 6 tém CSS. Nie sú však rovnako ľahko naučiteľné. Niektorí vytvárajú hodiny boja.

V ideálnom svete by úplné kurikulum CSS obsahovalo 2–3x viac materiálov na tieto spoločné náročné témy. Zahŕňalo by to pozitívne povzbudenie („Všetci s tým zápasia!“) A ďalšie príležitosti na precvičenie. To sa však zatiaľ nestalo a neočakávam, že sa to stane pre najpopulárnejšie služby.

Viete, že ste uviazli v tejto koľaji, keď ste sa už niekoľko hodín snažili naučiť nový koncept a stále nemôžete predpovedať, čo sa stane, ak vylepšíte jeden riadok kódu. Pomocou techniky Feynman môžete určiť témy, ktorým úplne nerozumiete:

  1. Vyberte si koncepciu
  2. Naučte to batoľa
  3. Identifikujte medzery a vráťte sa k zdrojovému materiálu
  4. Kontrola a zjednodušenie (voliteľné)

Chyba č. 3: Výučba z perspektívy skúseného inžiniera

Mnoho úvodných inštruktážnych kurzov napísali inžinieri s viac ako 10-ročnou praxou. Ako viem? Pretože som musel opakovane sledovať alebo znovu čítať návody, až kým som si neuvedomil: „Tento kľúčový koncept nebudú vysvetľovať! Predtým, ako budem môcť pokračovať, budem musieť vyhľadať vysvetlenie na internete. “

Toto je vlastne dobre zdokumentovaná kognitívna zaujatosť nazývaná „prekliatie vedomostí“ a vyskytuje sa to vo všetkých technických disciplínach.

Zdroj obrázka: CommunicateHealth

Čo to znamená - keď učitelia majú dlhoročné skúsenosti s technickým predmetom, vytvorili hlboké porozumenie predmetu. Pretože sú zaslepení spojeniami vo vlastnom mozgu, nemôžu pochopiť, ako by mohol začiatočník vidieť nový materiál.

Ak si spomeniete na spôsob, akým váš mozog ukladá spomienky zhora, v skutočnosti to má biologický základ! Hippocampus učiteľa vytvoril asociácie, ktoré sa nenachádzajú v mozgu študentov.

Na prekonanie tejto výzvy odporúčam nástroj, ako je FreeCodeCamp, ktorý napísali weboví vývojári, ktorí sa učia samostatne pre ostatných v podobnej pozícii! Má kompletný študijný program, ktorý je určený špeciálne na to, aby pomohol samostatne riadeným žiakom prekonať prekážky.

Chyba č. 4: Výučba kódu, ako by to bol záhadný nový systém

Vráťme sa k porovnaniu varenia. Väčšina ľudí varila NIEČO celý svoj život, alebo ich rodičia učili základy. Už sú oboznámení so všetkými základnými nástrojmi z rokov pokusov a omylov. Takže, ak by ste učili osobu, aby bola profesionálnym kuchárom, mali by ste už základy, na ktorých môžete stavať.

Neexistuje však žiadna „základná“ verzia výučby webového vývoja! Aj keď ste sa v minulosti dozvedeli o jazyku R alebo Java, stále sa nebude veľa lekcií prenášať.

Ako to zohľadňuje väčšina online návodov? Zahŕňajú lekcie, ktoré učia kód, ako je to fantastický nový svet, plný serverov HTTP, prehľadných prehliadačov a asynchrónnych udalostí. Pôsobia tak, že tieto zložité kusy sú základom pre ďalšie pokročilé vzdelávanie.

Predstavte si, že varenie vyžaduje takú veľkú prekážku vstupu. Všetci by sme jedli mikrovlnné jedlo. Pri varení sa zapája všetkých 5 zmyslov a správny postup a nesprávny postup sa rýchlo zachytia v mozgu. Ľudský mozog sa učí najlepšie, keď zapája viac zmyslov. Dokáže porozumieť systémom, keď sú rôzne podnety dobre viditeľné a zlé.

Teraz viem, že sa to zdá nemožné. Keďže sa celý kód spúšťa v prehliadači alebo na serveri, ako sa môže pripojiť k našim zmyslom? A nemyslím tým, že sledujete

priblíženie obrazovky, kým prepnete jej vlastnosti CSS. To nepodporuje učenie.

Tiež by som si myslel, že imaginárne čísla z matematiky sa nedajú spojiť s ľudskými zmyslami. Pamätáte si i, i², i³ a i⁴? Vyzerá to, že nový systém, ktorý si len chcete zapamätať, aby ste ho mohli použiť.

Namiesto toho Kalid Azad z programu BetterExplained používa graf s osou xay, ktorý vám pomáha vizualizovať „imaginárnu“ dimenziu. Teraz je koncept imaginárnych čísel priamo spojený so známym konceptom. Nie je potrebné žiadne memorovanie.

Chyba č. 5: Nedostatok okamžitej spätnej väzby

Na povrchu by sa mohlo zdať, že vývoj webových stránok už má dokonalý systém na spätnú väzbu. Ihneď po obnovení prehľadávača alebo zadaní príkazu „npm start“ do konzoly získate okamžitú odpoveď.

V analógii varenia povedzme, že sa pokúšate dokonale variť kuracie prsia pre vaše jedlo. Namiesto toho to spálite. Čo sa mohlo pokaziť?

  1. Na prvom mieste to nakrájajte na príliš tenké plátky
  2. Teplo sa príliš zvýšilo
  3. Dajte to na panvicu príliš neskoro
  4. Nechajte to v panve príliš dlho

Váš spálený produkt na konci vám nevedie, čo sa stalo. Len roky skúseností alebo nespočetné množstvo pokusov a pokusov o omyl vám pomôže zistiť, čo sa stalo.

Toto je chybové hlásenie, ktoré by ste dostali, keby sa to stalo na príkazovom riadku:

To vám nepomôže pri ladení! Podporuje to učenie pomocou pokusu a omylu, až o niekoľko hodín neskôr to zistíte. Namiesto toho potrebujete systém spätnej väzby, ktorý vás upozorní na vplyv každého rozhodnutia:

Obrázok vyššie ukazuje, že v kroku 2 „Najvyššia teplota“ sa niečo pokazilo, čo zničilo výstup.

Táto bohatá sieť možných rozhodnutí je už zabudovaná do mozgu odborných kuchárov. A dokonca aj strední vývojári webových stránok môžu čítať chybové hlásenie a zamerať svoje ladiace úsilie na jednu časť skriptu. Začiatočníci však nemajú podobný inštinkt a dnes sa učia iba z hodín pokusov a omylov s občasnou spätnou väzbou.

Opäť sa to môže zdať nemožné vytrhnúť v textovom editore alebo online editore ako CodePen. Slávna esej Učebného programovania Bret Victora už načrtla celý rámec, ktorý má pomôcť novým programátorom získať spätnú väzbu na každý riadok kódu v ich skripte ihneď po zadaní textu.

Žiaci, ktorí sa učia samostatne, sú najviac zranení

Ak ste na strednej alebo vysokej škole, môžete sa vyrovnať s čiastkovou úrovňou výučby. Musíte sa len pripraviť na ďalší test a máte podpornú sieť kolegov študentov. Vyhodnocuje sa, či môžete získať skóre za test, a nie to, či môžete dostať zaplatené za precvičenie zručnosti v reálnom živote.

Ale ak ste vývojár webových stránok, ktorý sa učíte samostatne, pravdepodobne čelíte iným okolnostiam. Máte obmedzené množstvo času a počas pracovného pohovoru budete musieť preukázať celú svoju zručnosť vytvorením skutočnej aplikácie alebo absolvovaním testu. Neexistuje žiadna koncepcia štúdia na skúšku a následného pokračovania.

S rastúcim odvetvím online vzdelávania a stále väčším počtom dospelých, ktorí sú nútení učiť sa nové zručnosti online, predpokladám, že sila sa posunie smerom k študentom. Na spoločnosti poskytujúce online vzdelávanie sa zvýši tlak na zlepšenie samotnej vzdelávacej skúsenosti. Najlepšie vyučovacie stratégie budú odmenené stovkami tisíc platiacich predplatiteľov.

-

Snažím sa vytvoriť nový spôsob vývoja webových aplikácií. Ak si chcete pozrieť môj nezabudnuteľný prístup k tutoriálom, choďte na CodeAnalogies.com. A ak si myslíte, že by sa tento príbeh páčili iným, dajte mu tlieskať!