Programavimas šiandien ir rytoj

Galbūt tu dabar kaip tik ruošiesi baigti mokyklą ar universitetą, galbūt nori keisti profesiją ir kažkas tau pasakė, kad programuotojai daug uždirba. Tu pagalvojai: galbūt aš turėčiau tapti programuotoju? Šis tekstas skirtas tau.
Programuotojo profesija šiandien nėra tokia kaip prieš dešimt ar net penkis metus. Tai greičiausiai yra profesija, kuri stipriausiai pasikeis per sekančius penkis/dešimt metų, todėl jeigu nori pradėti karjerą šiandien turi ateiti su teisingu nusiteikimu.
Kokią programavimo kalbą mokytis?
Programavimo kalba yra nesvarbu. Svarbu yra principai. Visos programavimo kalbos turi: klases, funkcijas, ciklus, sąlygas ir kintamuosius (HTML ir CSS fanai grūmoja kumščiai, kai tapsite tikrais programuotojais, tuomet ir kalbėsime su jumis). Taip, sintaksė skiriasi, bet jeigu moki principus sintaksę perprasti labai lengva. Ir, jeigu nepadėsite kabliataškio eilutės gale, kodo redaktorius jums praneš.
Taip, programavimo kalbos turi niuansų: paveldėjimas, rekursija, atminties valdymas, šiukšlių surinkimas. Patyręs programuotojas turi išmanyti tuos niuansus, bet tu pradedantysis, tau tai nesvarbu.
Jeigu išmoksi mąstyti kaip programuotojas, prisitaikysi prie bet kurios kalbos.
Kaip išmokti principus?
Sukurk projektą penkiomis skirtingomis programavimo kalbomis. Ką?! Aš nemoku vienos kalbos, o tu sakai turiu padaryti penkiomis? Taip. Kaip aš tą padarysiu?
DI yra geriausias tavo draugas. Tai yra svarbiausias teiginys šitame tekste. Jeigu tu dėl kažkokių religinių įsitikinimų nemėgsti, vengi DI, tuomet neturėtum rinktis skaitmeninių profesijų ir programavimas yra tik viena iš tų profesijų. Tau reikėtų rinktis santechniko, elektriko ar staliaus profesijas, jos moka geras algas ir artimiausius dešimt metų DI joms neturės didelės įtakos.
Aš tikrai nesu išbandęs visų DI įrankių, bet iš to ką bandžiau geriausias yra Claude (bent jau programavimui). Ir tau tikrai nereikia už nieką mokėti. Taip, nemokamas turi limitus, bet tai ką gauni nemokamai turėtų būti pakankama.
Kokį projektą daryti?
Čia svarbus du dalykai. Pirma, darydamas išmoksti daugiau nei svajodamas ar skaitydamas. Antra, užbaigdamas išmokti daugiau, nei tiesiog pradėdamas ir numesdamas. Rekomenduočiau daryti kažką ką įmanoma padaryti maždaug per dvi savaites, tarkim skaičiuotuvą ar minesweeper. Jeigu pasirinksi daryti Facebook ar World of Warcraft, tai greičiausiai niekada neužbaigsi ir pažeisi antrą principą.
Bet skaičiuotuvas nėra naudinga, kiekvienas kompiuteris turi skaičiuotuvą. Padaryti kažką naudingo yra bonusas, ne tikslas. Tikslas yra išmokti.
Kokias kalbas pasirinkti?
Nuoširdžiai, nežinau. Galima paklausti DI. Galima pažiūrėti į top programavimo kalbas. Problema su top programavimo kalbomis, kad nereiškia, jog tau bus lengva gauti darbą Lietuvoje. Pavyzdžiui Python yra populiariausia kalba, nes DI. Kai tuo tarpu PHP yra antrame dešimtuke. Aš lažinčiausi, kad Lietuvoje lengviau rasti darbą PHP programuotojui, nes didžioji dalis interneto vis dar stovi ant šitos kalbos.
Dar vienas iš būdų išsirinkti kalbas yra pažiūrėti darbo skelbimus.
Kaip teisingai mokytis?
Patyręs programuotojas DI gali pasakyti kažką tokio: sukurk skaičiuotuvą, naudok šitas technologijas. Jis permes akimis gautą kodą ir darbas bus padarytas. Pradedantysis turėtų formuoti visai kitokias užklausas: man reikia atlikti dviejų skaičių sudėtį, kokie būdai yra tai padaryti? DI pateiks 2-5 galimus variantus ir papildomai pasakys, kad pirmas ir trečias geriausias. Tuomet reikia peržiūrėti pateiktus variantus ir užduoti papildomus klausimus: matau, kad naudoji return, ką jis daro, kokiais atvejais naudojamas? arba kas yra void, kokios yra alternatyvos?
Tikslas nėra tik sukurti skaičiuotuvą, tikslas taip pat mokytis, suprasti. Ir tą galima padaryti klausinėjant apie kiekvieną DI kodo detalę. DI gali būti mentorius, kuris atsakys į kiekvieną tavo klausimą, nesvarbu koks kvailas jis būtų. DI yra kantrus ir niekada nesmerkia.
Kas toliau? Tarkim, kad sukūrei penkis projektus išbandei penkias programavimo kalbas. Bandymo metu turėjo kažkurios kalbos patikti labiau nei kitos. Jeigu nei viena kalba nepatiko, tai arba bandei ne tas kalbas, arba programavimas yra ne tau. Gali pabandyti dar keletą kalbų, kad būtum tikras arba ieškoti kitos profesijos.
Jeigu turi vieną ar kelias patikusias kalbas, tuomet laikas skaityti darbo skelbimus. Tiesa yra ta, kad vienos kalbos mokėti neužtenka, kiekviena kalba gali turėti papildomas technologijas (duomenų bazės, git), įrankius, bibliotekas ar kalbas (html+css). Skaitant darbo skelbimus, reikia išsirašyti vis tuos dalykus, kurie eina su tau patinkančia kalba. Taip pat verta suprasti kokiose srityse pasirinktos kalbos yra naudojamas.
Laikas antram projektui
Koks skirtumas tarp pirmo ir antro projekto? Pirmas projektas yra skirtas susipažinimui, antras darbo gavimui. Koks turėtų būti antras projektas? Reikia peržiūrėti darbo skelbimus ir pabandyti suprasti prie kokių projektų dirba darbuotojų ieškančios įmonės ir tuomet sukurti to projekto mini versiją. Pavyzdžiui, prieš daug metų draugas buvo pasamdytas į interneto svetainių kūrimo agentūrą, nes sukūrė savo CMS. Sukurdamas mini projektą, tu ne tik mokiniesi programuoti bet taip pat giliniesi į dalykinę sritį. Sukurtą projektą reiktų patalpinti į git ir tuomet siųsti kartu su savo CV, kad darbdavio programuotojai įvertintų kodo kokybę.
Kokia ateitis mūsų laukia?
Niekas nežino kokia ateitis mūsų laukia, bet šiandien lengviau nei bet kada anksčiau išmokti programuoti, jeigu DI bus naudojamas teisingai. Žmonės pastebėjo, kad DI kokybė kurį laiką gerėjo, bet praėjusiais metais ėmė blogėti. Ar tai reiškia, kad DI pagalba ateityje bus bevertė? Aš nežinau, bet taip gali atsitikti. Gali būti, kad ateityje neliks nemokamų DI versijų. Taigi, naudokis proga, nes ateityje viskas gali būti gerokai sudėtingiau.
Photo by Simon Abrams on Unsplash