Kiek kartų besimokau, tiek panaši situacija. 80% laiko praleidžiu visokiems kakoms, per likusius 20% išmokstu tai, ką reikia. Dažnai net numetu savo mokslus, nes pasirodo per sunkūs ir neįveikiami.

Turiu šiek tiek daugiau nei tris metus patirties mokytis programuoti, bet vis tiek darau tas pačias klaidas. Už tai šiandien sugalvojau jas surašyti. Gal pavyks jų nekartoti ir paspartinti procesą.

# Veiksmai vs Teorija

Čia tiems geekams, kur gavę naują gadgetą pirma perskaito visą instrukciją, o tik tada daiktą išmėgina. Žinau, pirma norisi perskaityti knygą, dokumentacijas, žinoti viską apie naujai besimokomą reikalą ir tik tada bandyti kažką su tuo nuveikti. Bet realiai šitai trukdo.

Teorija be praktikos yra kažkoks įsivaizduojamas žinojimas. Ypač pradedančiajam. Perskaitai knygą, pažiūri tutorialą, atrodo, kad viską žinai ir supranti. Vos tik atsidarai text editorių, supranti, kad kaką tu žinai.

Gal įmanoma kažkokį stebuklingą proporciją sugalvot. Kiekvienai paskaitytai teorijos eilutei, reiktų prirašyti bent kelias praktikos eilutes? Kažkas panašaus. Svarbu atsiminti, kad išmokstama rašant, ne skaitant.

Teorijos reikia tik tiek, kad suprastum kas vyksta. Kai nustoji suprasti, gali tos teorijos rasti ir išsiaiškinti. Viskas yra surašyta. Reiktų stengtis vadovautis “just in time learning” filosofija, taip neapsikraunant tuo metu nereikalinga informacija.

# Tiesiog atkartok pavyzdį 1:1

Jei tutorialo pavyzdys yra apie biblioteką ir knygas joje, tai aš sugalvoju, kad “vardan įdomumo” knygas pakeisiu filmais. Tada visokie pavadinimai skirsis ir taip šiek tiek pasunkinsiu sau užduotį.

Tiesa ta, kad šitaip susikuriu nereikalingą komplikaciją, kuri tik valgo ir taip menkus smegenų ramus. Smegenai dirba visu pajėgumu kai mokaisi. Toms papildomoms komplikacijoms dabar ne vieta.

Perrašai tai, kas duota, be jokių nukrypimų. Pasisunkinsi, kai reiks rašyti savarankiškai.

Tai nereiškia, kad tarp tutorialo pamokų nereikia su duotu kodu pasižaisti. Patikrinti kas atsitiks pakaitaliojus dalykus labai sveika ir padeda geriau suvokti naujus dalykus.

# Negalvok apie įmantrius įrankius

Dabar jau sunku būtų suskaičiuoti valandas, paskandintas į tai, kad Ubuntu’e npm’as veiktų be sudo… O aš tik norėjau pramokti SCSS arba SASS. Kažkodėl man atrodė, kad jei nepasisetupinsiu Gulp’o arba Grunt’o, mano CSS preprocessoriaus žinios bus niekinės.

Iš tikro, išmokti SCSS man nereikėjo nei vieno iš ansčiau išvardintų keiksmažodžių. Tai tebuvo fancy įrankiai, blizgučiai, kuriems tuo metu nebuvau pasirengęs. Kai šitai suvokiau (po daug kankinimosi), tiesiog parsisiunčiau Koala App ir per savaitgalį pramokau SCSS.

Į tokį spastą įkrentu vėl ir vėl. Įmantrūs įrankiai, setupai, visokios programos ir etc tik trukdo pradėti. Tada trukdo koncentruotai mokytis tai ką nori mokytis.

Todėl please please, nešvaistyk laiko nereikalingoms įmantrybėms. Ateis laikas, kai jos taps svarbios ir reikalingos. Išmoksi tas įmantrybes tada.

# Pirmiausia užtenka, kad veiktų

Veikia? Cool, dabar gali padaryti suskaitomą. Jei reiks, galėsi obsesinti dėl greičio. Mokantis norisi iš karto laikytis geriausių praktikų, rašyti gražų kodą, būti visaip gudriam ir t.t.

Bet common, gi mokaisi. Ir taip aišku, kad prirašyti visokių nesamonių, į kurias žiūrint po pusmečio degs akys.

Šitai mane ypatingai stabdo kai mokymosi tikslais darau kokį nors side project’ą. Pagauna kažkokia nuojauta (visiškai pelnyta), kad darau dalykus ne taip, kaip reiktų. Tada researchinu kaip reiktų, bet nebūnu pakankamai išmokęs, kad suprasčiau kuri informacija teisinga.

O teisingiausias būdas yra tiesiog daryti ir, researchinant on demand, mokytis. Tavo kodą reiks perrašyti dar ne vieną kartą, tai kam iš vis jaudintis dėl nebūtų dalykų.

# Kai neaišku ką ir kaip mokytis

Kartais neaišku kokiu eiliškumu mokytis dalykus. Dabar mokausi Django/Pyhono, bet kažkodėl man buvo susišvietę, kad tuo pat metu, turiu išmokti pasistetupinti Dockerį, tada dar Postgres ir net nebežinau ką.

Ledai pajudėjo, tai kai supratau, kad realiai išsiskaidžiau dalykus į mažus, tikrai svarbius žingsnelius. Minimaliai pramokti Python’o sintaksę, tada instaliuoti tinkamą Django versiją ir galiausia perrašyti tutorialo užduotį.

Per pusdienį išmokau daugiau, nei per savaitę prieš tai. Padariau visas čia aprašytas klaidas. Tikiuosi tavęs nestabdys tos pačios klaidos ir galėsi praleisti kankinimąsi su nereikalingais dalykais, o mokytis to, kas tikrai svarbu 😃