Apsisprendus mokytis programuoti, verta apgalvoti kaip tai galėtų atrodyti ir kas iš to mokslo turėtų išeiti. Atėjus pasirinkimų metui, šie klausimai turėtų padėti nepasimesti.
# Kodėl noriu programuoti
Žinojimas kodėl ką nors darai gali būti vienas iš stipriausių motyvacijos būdų. O tos motyvacijos tikrai prireiks, nes bus ir sunku, ir painu, ir net nuobodu. Pridėkim, kad mokslai ir darbo gavimas gali užtrukti, tai tikrai pravers visa įmanoma pagalba.
Prisiminęs bet kurį savo sunkesnį periodą mokantis ar medžiojant darbą visad prisimenu ir kas padėjo juos išgyventi. Paprasčiausias noras patapti nepriklausomu nuo vietos.
Dirbti po palme, veikti įdomų darbą, dirbti su įdomiais žmonėmis, sukurti savo produktą ar startupą, pradėtit freelancinti, turėti daugiau laiko, įgyti paklausių sugebėjimų, gauti daugiau pinigų, suprasti kaip veikia internetas - atsakymų yra tiek, kiek norinčių tapti programuotojais.
Dažnai girdžių kažką panašaus į "tau turi patikti programoti, nes kitaip labai greit atsibos" argumentą. Taip, jame yra daug tiesos. Jeigu programavimas yra ir tavo hobis, bus gerokai lengviau.
Man nesvarbu ar tavo "kodėl" yra idealistiškas (patinka programuoti), ar praktiškas (nori įgyti paklausų amatą). Svarbiausia, kad jis tau ką nors reikštų ir teigiamai veiktų tave.
Ai, dar praverčia, jei tas "kodėl" yra trumpas ir labai aiškus.
Visas šitas "kodėl" tikriausia yra kažkas iš vizijos ir misijos žodynėlio. Turi kažkokią viziją ar labai laisvą planą kurių sieki, o programavimas yra tik priemonė tam pasiekti.
Turėdami pirmą atsakymą, judam link gerokai svarbesnio antrojo.
# Kaip įsivaizduoju savo programuotojo karjerą
Galima perskirti šitą į dvi dalis. Kaip atrodys mano pirmas programavimo darbas ir kaip įsivaizduoju savo programavimo karjerą tapęs mid lygio devu (3-5 metai patirties).
Jei pirmas klausimas buvo motyvacinis, šitas labiau strateginis.
Rekomenduoju jį sau užduoti dukart. Pirma tiesiog prisėdus pasvajoti, be jokio išankstinio pasirengimo. Prieš atsakant antrą kartą, verta šiek tiek paresearchinti.
Kaip atrodo entry ir junior lygio darbai, kokie skelbimai, kokios įmonės ieško, ar tie darbai man atrodo patrauklūs.
Tas pats su mid lygio darbais. Čia svarbu neapriboti savęs visokiais "kas aš toks, kad svajočiau apie tikro programuotojo darbą" arba neišsigąsti rimčiau atrodančių kompanijų.
Šio klausimo tikslas yra pagalvoti kai atrodys kompanija kurioj dirbsi, kokias technologijas naudosi, kaip atrodys darbo aplinka, žmonės su kurias dirbsi.
Ateitį įsivaizduoti sudėtinga. Ypač tada, kai nežinai ar išvis ta ateitis įmanoma. Arba nežinai kas įmanoma į ką galima pasiekti.
Vis tiek svarbu pamėginti. Turint bent šiokį tokį vaizdą, galima pradėti trauktis nuo jo ir pamėginti pažiūrėti kaip ten patekti.
Gal tavo svajonė būti sraigteliu didelėje korporacijoje, su geru atlyginimu, gražiu ofisu ir "saugiu" darbu. Tada technologijų, mokymosi būdų ir karjeros plano pasirinkimai, tikėtina, bus gerokai kitokie, nei norinčio freelancinti ir tuo pat metu keliauti.
Tekdavo atsisakyti galimybių papildomai užsidirbti darant WordPress'inius saitus. Nors šitai viliojo, bet aiškiai suvokiau kaip šitai trukdo mokytis ir siekti mano pradinio plano - gauti laisvę nuo vietos.
Verta pagalvoti ne tik apie darbą, bet ir pasikeitusį gyvenimo būdą. Gal turėsi (ar norėtum turėti) daugiau laiko, galimybių ką nors veikti ko negali dabar.
Tai irgi padės vertinant atsirasiančius pasirinkimus. Jei norėsi daugiau laisvo laiko, tikrausia neisi į darbą su neįmanomais deadline'ais (apie tai dažniausia skelbime užsimenama).
Atsakymai į šį klausimą svarbūs, nes padės kaskart kai teks pasirinkti. Atsakyti kurį frameworką rinktis bus gerokai lengviau, kai žinosi kaip pasirinkimas padeda (ar trukdo) tavo tikslui.
# Ko atsisakysiu dėl programavimo
Visoks ten energijos tvermės dėsnis, nes sugalvoję programouti mes automatiškai negausim papildomų jėgų ir/ar laiko. Kažko teks atsisakyti.
Tikriausia tai bus kokia nors laisvalaikio veikla. Atsimenu, kad programavimas savo laiką gavo iš kompiuterinių žaidimų, filmų ir serialų.
Šis klausimas nėra toks platus ir svarbus kaip ankstesni. Jo tikslas yra tiesiog suvokti, kad nauja veiklai reiks duoti nemažai dėmesio, kurį teks iš kažko atimti.
Kartais atrodo, kad mes neturim jokio laisvo laiko arba veiklos kurią galėtume pakeisti programavimu. Tada prieš pradedant mokytis programuoti teks pramokti planuoti ir valdyti savo laiką.
Galbūt teks apturėti sudėtingų sprendimų ir pokalbių.
Buvo gan nesmagu buvusiam darbe paprašyti nedirbti ilgiau nei standartinės darbo valandos. Vėliau buvo gan nedrąsu paprašyti dirbti po pusę savaitės (kad turėčiau laiko mokytis programuoti ir medžioti darbą).
Taip pat svarbus pokalbis su antra puse ir visais kartu gyvenančiais žmonėmis. Gal bus periodas kai galėsi mažiau prisidėti prie bendro gerbūvio, gal skirsi mažiau dėmesio, gal kas nors turės perimti dalį tavo pareigų etc.
Ne tik mokymuisi reiks daug laiko ir energijos. Pirmas darbas irgi gali pareikalauti atsisakyti dalykų.
Pats akivaizdžiausias pasikeitimas yra pozicija ir statusas. Nesvarbu kokias pareigas iki šiol užėmei ir kiek patirties turi esamoje karjeroje, programuoti teks pradėti nuo žemiausio laiptelio. Gal buvai pasaulio valdovas, bet dabar esi praktikantas arba entry lygio programuotojas.
Visai įmanoma, kad su tuo ateis ir mažesnis atlyginimas, prastesnės darbo privilegijos (perks) ir šiaip, kažkas panašaus į pažeminimą pareigose.
Man dėl pirmo darbo teko keltis gyventi į kitą miestą. Tapau savaitiniu commuteriu, nes žmona pasiliko savo darbe ir, bent jau iš pradžių, nesiruošė keltis su manim.
Laikini sunkumai atrodo daug paprasčiau, jei būni nuoširdžiai atsakęs į du pirmesnius klausimus. Tada pažeminimas pareigose ir laisvalaikio atsisakymas įgauna prasmę. Tampa lyg kokia investicija į tai kas bus.
# Kaip ir kada mokysiuosi programuoti
Konkretų būdą, laiką ir vietą duodam, kad tikrai ateitume ir veiktume. Jei programuosi tik "kai turėsi laiko", tai tikriausia taip ir neišmoksi programuoti.
Mano galva svarbu būti kuo tikslesniam: "[pavadinimas] online tutorialas iš [puslapis] po pusvalandį nuo 8 kasdien ir nuo 8 iki 8 sekmadieniais".
Toks aiškumas gali padėti ir aplinkiniams. Mano žmona žinojo, kad sekmadienis man šventas (no pun intended), todėl savo dieną planuodavo be manęs.
Galbūt sunku mokytis, nes aplink zuja vaikai. Tada gerai suplanuoti ir vietą. Tarkim neturiu galimybės mokytis namie, bet gyvenu netoli bibliotekos, kur turi greitą internetą.
Atsakymai į šį klausimą turbūt keisis su laiku. Ilgainiui bus gerokai paprasčiau suvokti koks mokymosi būdas tau labiausia tinka. Pabandžius mokytis bus aiškiau kuris informacijos pasisavinimo būdas tau labiausia tinka.
Tutorialai, knygos, kursai, profesinė ar aukštoji mokykla - visi šie būdai turi savo privalumus ir auditoriją. Dar kartą atsispirdami nuo ankstesnių klausimų galim apsispręsti kaip ir kada mokysimės.
Jeigu tavo svajonių darbas niekaip nepriima kandidatų be universitetinio išsilavinimo, tai akivaizdžiai teks mokslus universitete kaip nors įterpti į artimiausių keletos metų planą.
Galbūt greičiausias būdas į tavo norimą karjerą yra išsilaikyti kokį nors sertifikatą. Mokymosi būdas ir priemonės irgi bus atitinkami.
Šiam klausimui dar galima pridėti būdą įvertinti progresui. Kaip besimokydamas suprasi, kad judi gera linkme. Ar tai bus kokių nors projektų įgyvendinimas, ar tutorialų ar kursų pabaigimas.
Nėra toks svarbus klausimas, bet padės per daug savęs nespausti. Išmokti programuoti užtrunka. Būtų labai blogai, jei rodytum realų progresą, bet vis tiek atrodytų, kad darai per mažai ar judi per lėtai.
# Ar pažįstu nors vieną programuotoją
Atsakymai į ankstesnius klausimus padės susidaryti šiek tiek aiškesnį vaizdą. Bėda ta, kad atsakyti į juos gan sudėtinga, kai nežinai nei ko tikėtis, nei kaip iš tikro galėtų būti.
Aš pats bijojau svajoti tapsiąs "tikru programuotoju." Man atrodė per sunku, neaišku kaip. Vos ne savisabotažas.
Tik pirmam darbe susipažinęs su kitais programuotojais pradėjau po truputį suvokti, kad nėra viskas čia taip sudėtinga. Reikia turėti planą, stengtis ir judėti pirmyn, kol pasieki tikslo.
Jei tik būčiau pažinojęs kokį programuotoją anksčiau, visai tikėtina, kad būčiau galėjęs daug greičiau suprasti ką mokytis, ko reikalauja ir kaip nusitaikyti į savo tikslą būti profesonaliu kodo rašytoju.
Visai geras būdas paprašyti pažįstamo programuotojo pagalbos yra papasakoti jam tai, ką apie sužinojai atsakęs į ankstesnius klausimus.
Hey, Vytautai, noriu mokytis programuoti. Žie, galvoju per pusmetį pasidaryt freeCodeCamp'ą ir tada eit ieškot praktikos. Ką manai?
Labai realu, kad jūsų planą sukritikuos, parodydami silnesnes jo vietas. Gal duos kokį patarimą, kuris sutaupys krūvas laiko ir energijos.
Kartu, pažįstamas programuotojas gali papasakoti apie patį darbą, jo kasdienybę, sunkumus ir dalykus apie kuriuos įprastai nekalbama su ne tos pačios profesijos žmonėmis.
Gal tik nereiktų užpulti pažįstamo programuotojo su "žie, noriu programuot, nes geras darbas, ką čia man daryt dabar." Pasiruošk namų darbus.
# Laikas veikti
Kuo labiausia rekomenduoju prisėsti ir pagalvoti apie savo mokslus ir karjeros pasikeitimą. Patapimo programuotoju procesas turi daug neaiškumų ir iš pažiūros nelengvų pasirinkimų.
Kelias bus gerokai paprastesnis, jei bet kokį iškilusį klausimą galėsim perleisti per savo išankstinio apsisprendimo filtrus.