Kodėl visi staiga nori išmokti programuoti?
Pastaraisiais metais programavimas tapo kažkuo panašiu į naują raštingumą. Anksčiau pakakdavo mokėti skaityti ir rašyti – dabar darbdaviai vis dažniau žiūri, ar žmogus bent šiek tiek supranta, kaip veikia kodas. Ir tai nėra tik IT sektoriaus reikalas. Marketingo specialistai nori automatizuoti ataskaitas, finansininkai – susikurti savo Excel makrokomandas, o dizaineriai – suprasti, ką jie iš tikrųjų perduoda programuotojams.
Tačiau yra ir kita pusė. Daugybė žmonių pradeda kursus su didžiuliu entuziazmu, o po trijų savaičių meta viską, nes susiduria su pirmuoju rimtesniu kliūčiu – galbūt neveikiančia aplinka, nesuprantamu klaidos pranešimu arba tiesiog tuo jausmu, kad „tai ne man”. Ir čia atsiranda klausimas: ar problema yra žmogus, ar kursas?
Atsakymas dažniausiai – kursas. Arba tiksliau – netinkamas kursas netinkamam žmogui netinkamu laiku. Šiame straipsnyje pabandysime išnarplioti, kaip pasirinkti tinkamą mokymosi kelią, ko tikėtis pradžioje ir kaip neišprotėti nuo pirmų klaidų.
Pirmiausia – apsispręsk, ko iš tikrųjų nori
Prieš registruojantis į bet kokį kursą, reikia atsakyti į vieną paprastą, bet labai svarbų klausimą: kam tau reikia programavimo? Tai skamba trivialiai, bet tikrai nėra. Žmogus, kuris nori sukurti savo smulkaus verslo svetainę, ir žmogus, kuris svajoja tapti backend programuotoju didelėje kompanijoje – tai du visiškai skirtingi keliai, skirtingi kursai ir skirtingi laiko investicijų kiekiai.
Štai keletas realių scenarijų:
- Nori pakeisti karjerą į IT – tada reikia rimto, struktūruoto kelio. Bootcamp arba universitetinis kursas, ne YouTube vaizdo įrašai.
- Nori automatizuoti savo dabartinį darbą – Python su pandas biblioteka arba Google Apps Script gali išspręsti 80% problemų.
- Nori sukurti paprastą svetainę – HTML, CSS ir šiek tiek JavaScript. Nereikia mokytis React ar Node.js.
- Nori suprasti, apie ką kalba programuotojai – užtenka pagrindų kurso, kuris duos bendrą supratimą.
Kai žinai tikslą, pasirinkimas tampa daug paprastesnis. Ir svarbiausia – nereikia jaustis kaltu, kad nenori tapti „tikru” programuotoju. Dalinis programavimo išmanymas irgi yra vertingas.
Populiariausi kursai ir platformos – kas iš tikrųjų veikia
Internete yra dešimtys platformų, kiekviena žada, kad per tris mėnesius tapsi programuotoju. Realybė, žinoma, yra šiek tiek sudėtingesnė. Pabandykime pažiūrėti, kas iš tikrųjų verta laiko.
freeCodeCamp – viena geriausių nemokamų platformų, ypač tiems, kas nori išmokti web kūrimą. Kursas struktūruotas, turi sertifikatus, o svarbiausia – yra realūs projektai. Minusas: anglų kalba ir reikia nemažai savidisciplinos, nes nėra griežto grafiko.
The Odin Project – labiau pažengusiems pradedantiesiems. Tai ne tiek kursas, kiek mokymosi kelias, kuris sujungia įvairius šaltinius. Labai geras pasirinkimas tiems, kas rimtai galvoja apie karjerą web kūrime.
Coursera ir edX – čia rasite universitetų kursus. Kai kurie yra tikrai puikūs (pavyzdžiui, Harvard CS50 – beveik legendinis kursas pradedantiesiems), kiti – pernelyg akademiški ir nuobodūs. Reikia rinktis atsargiai.
Udemy – čia situacija dviprasmiška. Kursų kokybė labai skiriasi. Tačiau yra tikrų deimantų – Angela Yu „100 Days of Code” Python kursas yra vienas geriausių, ką galima rasti mokamoje erdvėje. Ir jis dažnai parduodamas už 10-15 eurų akcijų metu.
Codecademy – puiki vieta pradėti, ypač jei nori interaktyvaus mokymosi. Kodą rašai tiesiai naršyklėje, nereikia nieko diegti. Bet nemokama versija yra gana ribota, o mokama – apie 20 eurų per mėnesį.
Lietuviškai kalbančiam žmogui taip pat verta žinoti, kad egzistuoja lokalių mokymosi galimybių. Turing College, CodeAcademy (ne painioti su Codecademy) ir kiti vietiniai bootcamp’ai siūlo intensyvius kursus su mentoriais. Jie brangesni, bet turi vieną didelį privalumą – galimybę mokytis su žmonėmis, kurie kalba ta pačia kalba, ir gauti pagalbą realiu laiku.
Pirmoji programavimo kalba – amžinas ginčas
Jei paklausi dešimties programuotojų, kokią kalbą rekomenduoja pradedantiesiems, gausite bent penkis skirtingus atsakymus. Ir visi jie bus teisūs savo kontekste. Bet pabandykime šiek tiek supaprastinti.
Python šiuo metu yra de facto standartas pradedantiesiems, ir tam yra priežasčių. Sintaksė yra artima natūraliai anglų kalbai, klaidų pranešimai dažnai suprantami, o galimybių spektras milžiniškas – nuo duomenų analizės iki dirbtinio intelekto. Jei nežinai, ką rinktis – rinkis Python.
JavaScript yra neišvengiamas, jei nori dirbti su web kūrimu. Jis veikia naršyklėje, rezultatai matomi akimirksniu, ir tai labai motyvuoja. Minusas – kalba turi nemažai keistenybių, kurios gali suklaidinti pradedantįjį.
Java ir C# – geriau palikti vėlesniam etapui. Jie reikalauja daugiau boilerplate kodo, ir pradedantysis gali prarasti motyvaciją, kol pasieks pirmą „aha!” momentą.
Scratch – jei mokai vaiką arba esi absoliutus pradedantysis, kuris bijo net žodžio „kintamasis”, Scratch gali būti puiki pradžia. Tai vizualinė programavimo aplinka, kurioje kodas surenkamas iš blokų.
Praktinis patarimas: nesvarstyk per ilgai. Pasirink Python arba JavaScript ir pradėk. Po trijų mėnesių turėsi pakankamai supratimo, kad galėtum įvertinti, ar reikia keisti kryptį. Kalbos keitimas vėliau nėra tragedija – pagrindiniai konceptai (kintamieji, ciklai, funkcijos, sąlygos) yra universalūs.
Kaip atrodo realus mokymosi procesas – be rožinių akinių
Daugelis kursų reklamų rodo laimingus žmones, kurie per savaitgalį išmoko programuoti ir dabar uždirba šešiaženklį atlyginimą. Realybė yra šiek tiek kitokia, ir geriau tai žinoti iš anksto.
Pirmosios dvi savaitės dažniausiai būna lengvos ir įdomios. Spaudinėji mygtukus, rašai pirmus kodo eilutes, viskas veikia – euforija. Tada ateina trečia savaitė. Arba ketvirta. Ir staiga susiduri su konceptu, kuris netelpa į galvą – galbūt rekursija, galbūt objektinis programavimas, galbūt tiesiog kaip veikia API. Ir čia daugelis meta.
Tai vadinama „mokymosi kreive” arba, programuotojų bendruomenėje, „desperacijos slėniu”. Tai normalu. Visi per tai praeina. Klausimas – kaip per tai pereiti.
Keletas dalykų, kurie tikrai padeda:
- Kodo rašymas kasdien – net 20-30 minučių. Reguliarumas svarbiau nei ilgi, bet reti seansai.
- Projektai, o ne tik pratybos – kai tik supranti pagrindus, pradėk kurti kažką savo. Net jei tai bus paprasčiausias skaičiuotuvas arba užduočių sąrašas.
- Klaidos – tai informacija, ne nesėkmė – kiekvienas klaidos pranešimas sako tau kažką konkretų. Išmok juos skaityti, o ne bijoti.
- Bendruomenė – Discord serveriai, Reddit (r/learnprogramming), Stack Overflow. Nesi vienas.
Ir dar vienas dalykas, apie kurį retai kalba kursų pardavėjai: Google naudojimas nėra sukčiavimas. Net patyręs programuotojas su 10 metų patirtimi kiekvieną dieną kažko ieško. Mokėjimas efektyviai ieškoti informacijos yra tokia pat svarbi įgūdžių dalis kaip ir paties kodo rašymas.
Aplinkos paruošimas – ta dalis, kurios niekas nemėgsta
Viena dažniausių kliūčių pradedantiesiems yra ne pats programavimas, o aplinkos paruošimas. Tai ta nuobodi dalis, kai reikia įdiegti Python, sukonfigūruoti redaktorių, suprasti, kas yra PATH kintamasis, ir kodėl terminalas sako „command not found”, nors tu ką tik viską įdiegei.
Štai praktinis kelias, kaip to išvengti pradžioje:
Naudok naršyklėje veikiančias aplinkas – Replit.com leidžia rašyti ir paleisti kodą tiesiai naršyklėje. Nereikia nieko diegti. Puiku pirmosioms savaitėms.
Google Colab – jei mokaisi Python ir duomenų analizės, tai yra nemokama Jupyter Notebook aplinka, kuri veikia debesyje. Idealiai tinka.
Kai jau šiek tiek supranti, kas vyksta, galima pereiti prie lokalios aplinkos. Rekomenduojamas redaktorius – Visual Studio Code. Jis nemokamas, turi milžinišką plėtinių ekosistemą ir yra naudojamas didžiulės dalies profesionalių programuotojų. Tai reiškia, kad bet kokia problema, kurią sutiksi, jau buvo sprendžiama ir atsakymas yra internete.
Jei naudoji Windows ir planuoji rimtai mokytis – rimtai apsvarstyk WSL (Windows Subsystem for Linux) įdiegimą. Daugelis programavimo įrankių yra sukurti Unix aplinkoms, ir Linux terminalas ilgainiui taps tavo geriausiu draugu.
Kai kursas baigiasi – kas toliau?
Viena didžiausių problemų su programavimo kursais yra tai, kad jie baigiasi. Ir tada žmogus lieka su sertifikatu rankoje ir klausimu – o dabar ką? Kursas davė struktūrą, davė užduotis, davė atsakymus. Realus pasaulis to nedaro.
Perėjimas nuo „kurso studento” prie „savarankiško programuotojo” yra vienas sunkiausių etapų. Ir čia yra keletas konkrečių žingsnių, kurie padeda:
GitHub profilis – pradėk naudoti Git nuo pat pradžių. Tai versijų kontrolės sistema, kurią naudoja visi profesionalūs programuotojai. GitHub yra tarsi portfolio – potencialūs darbdaviai žiūrės į tavo repozitorijas.
Atviro kodo projektai – prisidėk prie egzistuojančių projektų. Net dokumentacijos taisymas yra vertingas indėlis ir puiki mokymosi galimybė.
Savo projektai – sukurk kažką, kas sprendžia realią problemą. Tai gali būti bot’as, kuris siunčia tau orų prognozę, arba programa, kuri automatiškai tvarko tavo failų struktūrą. Svarbu, kad tai būtų tavo idėja, o ne kurso pratybos.
Techniniai interviu – jei nori dirbti IT sektoriuje, reikia pasiruošti algoritmų ir duomenų struktūrų klausimams. LeetCode ir HackerRank yra platformos, kuriose galima praktikuotis. Tai atskira tema, bet geriau apie ją žinoti iš anksto.
Mokymasis be pabaigos – ir kodėl tai yra gerai
Programavimas yra viena tų sričių, kurioje mokymasis niekada nesibaigia. Ir tai gali skambėti baugiai, bet iš tikrųjų yra vienas didžiausių šios srities privalumų. Technologijos keičiasi, atsiranda naujų įrankių, naujų paradigmų, naujų problemų. Tai reiškia, kad programuotojas, kuris moka mokytis, visada bus aktualus.
Pradedantysis dažnai galvoja, kad yra kažkoks „pabaigos taškas” – kai išmoksi viską ir galėsi dirbti. Tokio taško nėra. Ir tai yra normalu. Patyręs programuotojas skiriasi nuo pradedančiojo ne tuo, kad žino viską, o tuo, kad žino, kaip greitai rasti tai, ko nežino.
Jei šiandien pradedi pirmą programavimo kursą – sveikiname su geru sprendimu. Pasirink Python arba JavaScript, rask kursą, kuris turi realius projektus, nesibijok klaidų ir nepaleisk po pirmojo „desperacijos slėnio”. Po šešių mėnesių nuoseklaus darbo turėsi daugiau nei pakankamai, kad galėtum kalbėti apie save kaip apie žmogų, kuris moka programuoti. O tai jau yra kažkas.






