Hey, čia vyksta pasikeitimai.

Yra planas supaprastinti planą. Iš penkių turi likti tik trys žingsniai. Susidomėjimas, Mokslai ir Darbas.

Prasideda viskas susidomėjimu. Šiam etape daug domimės ir sprendžiam ar sugebėsim, ar tai mums, kaip atrodytų gyvenimas tapus programuotojais.

Pasiryžus pradėti, prasideda mokslai. Didžiausia, plačiau ir tikrai sudėtinga dalis. Realiai turim įgyti pakankamai sugebėjimų programuoti, kad gautume darbą.

Ir galiausia bandymai gauti pirmą darbą. Jei patyrusių programerių visi visur laukia, tai naujokai niekam neįdomūs. Gauti pirmą darbą yra tikras iššūkis, kurį mėginsim kartu išspręsti.

Šiandienai palieku seną, artimiausiu metu lauk atnaujinimo.

Cheers,
Eligijus
2019 07 15

Sutrumpinimas tiesiai į "veiksmą":


Kelias link programerio gyvenimo yra vingiuotas, keistas ir sudėtingas. Beveik garantuoju, kad kaip tik dėl to čia atsidūrei.

Aš visaip blaškiausi, nes iš pradžių nežinojau ar sugebėsiu bent pramokti programuoti. Tada nežinojau kiek mokėti jau užteks, kad ieškočiau darbo. Vėliau nežinojau ko iš manęs tikėsis pirmas darbdavys ir kaip tam pasirengti.

Pagrindinis šio blogo tikslas buvo (ir yra) dalintis dalykais, kurie padėtų kiekvienam skaitančiam greičiau pasiekti programuotojo amato. Įrašai būna padriki, už tai noriu čia surinkti ir išdėlioti juos kažkokiu tai loginiu būdu. Kad galėtum skaityti, sekti ir tada jau patapti programeriu.

# Kas šitas sąrašas yra

Labai norėčiau, kad žvelgdamas į šitą sarašą rastum planą kaip tapti programuotoju. Čia turėtų būti surašyti:

  • Ko ir kaip mokytis
  • Kada mokytis dalykų
  • Į ką kreipti dėmesį, į ką ne
  • Kokias technologijas ir kalbas rinktis
  • Ko iš tavęs reikalaus darbdaviai, kaip tai įgyti
  • Kaip susitvarkyti su emociniais dalykais mokantis (jop, that's a thing)

# Kas šitas sąrašas nėra

Galiu kalbėti tik apie dalykus kuriuos žinau. Esu frontenderis, JavaScriptų programuotojas. Jūsų patirtis ir tikslas gali skirtis.

Šitas sąrašas (ir pats blogas) nebūtinai tiks tiems, kas sugalvojo būti PHP, Androidų, Žaidimų ir kitokių dalykų programuotojais.

Tikiuosi, kad dauguma informacijos ir patarimų yra universalūs. O šiaip, tai jie visi bus kažkiek šališki ir pilni meilės Javascriptams 😃

# Kaip atrodys procesas

Pirmiausia noriu surinkti ir gal šiek tiek patobulinti jau esamus įrašus. Gali būti, kad jau esu prirašęs kažko naudingo, tiesiog sunku tai rasti.

Tada visaip stengsiuosi atsiminti žingsnelius ir juose ištinkačius sunkumus. Atsiminęs parašysiu postą ir jį pridėsiu į tinkamą etapą.

Labiausia padeda gauti emailai ir komentarai. Kai jūs parašot su realiu tuo metu kamuojančiu sunkumu. Tada nereikia fantazuoti ir mėginti atsimint dalykų.

Manau postai, kur tiesiog atsakau į klausimus būna naudingiausi. Todėl jei tik turit klausimą kurio čia dar neaptarinėjom arba kažkas vis tiek liko neaišku, plyz, parašykit komentarą arba emailą.

# Jei dar neprenumeruoji emailo

Dabar yra pats laikas pradėti jį gauti. Dažniausia su žinute apie naują postą.

# Planas

Taigi taigi, pasikeitimo ir virsmo programuotoju procesas nėra toks jau greitas. Mėginsiu suskirstyti jį į etapus. Nuo susidomėjimo iki pirmo darbo arba pingus mokančio kliento.

Kitados rašiau apie šitai, čia perrašau, gal pavyks tiksliau.

# #1 Susidomėjimas

Galbūt koks delfių straipsnis priminė, kad programavimas yra "svajonių profesija", gal draugas, gal šiaip noras nuveikti ką nors geresnio su savo gyvenimu... Nesvarbu kas, faktas, kad susidomėjai programavimu.

Dažniausia iš čia esančių žmonių girdžiu: "kuriuos kursus rinktis", "kuri kalba geriausia", "man nelabai su matematika, ar verta mokytis programuoti", "kur mokytis programuoti", "man 39 metai, ar galiu išmokti", "noriu uždirbti 4000, kaip greitai pavyks", "gal gali mane išmokyt programuoti", "esu daręs HTML prieš 15 metų, ar labai pasikeitė".

Šiame etape programavimas atrodo visišku kosmosu, neaišku net kur žengti pirmus žingsnius. Labai gali būti, kad tai tėra dar vienas new shiny object ir susidomėjimas greit išnyks. Taip pat realu, kad programavimas tau bus nuobodus, sudėtingas ir net neįdomus.

Geriausia, ką dabar gali nuveikti, tai išmėginti programavimą parašant šiek tiek kodo. Visas pasaulio skaitymas, domėjimasis, kalbų palyginimai ir kitoks bullcrapas neparodys tiesios. Reikia sėsti ir rašyti kodą.

# Pirmo etapo planas

  1. Išmėginti kodą. Pabaigti bent keletą vietų kur laiko už rankutės ir reikia kažką parašyti. Nuoroda į įrašą žemiau.
  2. Nesiblaškyti. Šiuo metu informacijos yra daugiau nei įmanoma suvokti. Svarbu neapkrauti savęs nereikalinga info.

# Pirmo etapo įrašai

# Pirmo etapo sėkmė

Matau du galimus sėkmingus rezultatus. Išmėginti programavimą ir suvokti ar tau jis patinka. Dabar jau gali nuspręsti ar nori investuoti į šią veiklą ar ieškosi toliau.

Kažkas buvo visaip susižavėjęs programavimu, daug kalbėjo koks geras amatas ir kaip jis jo mokysis. Pabandęs suprato, kad jam gerokai nuobodu dėlioti kabliataškius, rašinėti tuos pačius dalykus ir šiaip sedėti prie kompo ekrano visą dieną.

Kartu jis suprato, kad jau turi visai gerą darbą kur gali atskleisti geriausias savo savybes. Tikriausia yra kažkokia kita jo svajonių veikla, bet ji tikrai nėra programavimas.

Kažkas kitas visai nesidomėjo programavimu. Dabar gal jau net nelabai aišku kodėl pamėgino.

Gi nėra tiek daug programuojančių merginų, ne taip gerai sekėsi matematikos ir fizikos, o ir laiko mokytis nebūna labai daug. Bet kai aplinkui tiek hype'o, sugalvojo pamėgint ir užsikabino.

Abudu veikėjai sėkmingai įveikė pirmą etapą. Vienas sužinojo, kad visai nenori programuoti, kitas, kad nori. Done. Great Success!

# #2 Perrašinėjimas

Taigi, jau žinai ir apsisprendei, kad nori mokytis programuoti. Belieka lengviausia dalis - išmokti.

Visuose etapuose labai sunku suprasti ką mokytis, bet šiam sunkiausia. Kuo daugiau skaitai, tuo sužinai kiek daug dalykų turi mokėti.

Lengva pasimesti ir visai nieko nedaryti. Dar lengviau skaitinėti visokius tau dar nereikalingus dalykus ir taip procrastinatinti.

Manau greičiausias kelias įveikti šį etapą yra tiesiog žiūrėti tutorialus ir perrašinėti sprendimus. Žiūri kaip bičas karpo dizainą, pasistabdai ir perrašai. Žiūri kaip kodina kokį eshopą ir seki kartu. Perrašai, stengiesi suprasti kas ir kodėl vyksta, po kiekvienos pamokos šiek tiek pasižaidi, pažiūri kas atsitiks pakeitus dalyką, atlieki papildomas užduotis.

Jokių stebuklų. Svarbu nekvaršinti savęs nereikalinga informacija. Koks skirtumas kas geriau kuris frameworkas ar kalba geresnis. Ar tau tikrai reikia žinoti kaip naudoti ekspermentinius CSS featurus?

# Antro etapo planas

  1. Pereiti prie sudėtingesnių pamokų.
  2. Užbaigti jas 100%. Suvokti kas vyksta. Kitam etape darysim tą patį, tik beveik savarankiškai.

# Antro etapo įrašai

  • Programavimo kalbos ir framework'o pasirinkimas - žinau, sakiau, kad nesvarbu kuri kalba geresnė ir etc, bet vis tiek svarbu pasirinkti vieną. Mano (labai šališka) rekomendacija imti frontendą (HTML, CSS ir Javascriptas), praktiškai apie tai čia ir rašau.
  • Supratau, kad šiam etapui turiu lygiai 0 įrašų...
  • Įkvėpiantys žmonės - Travis Neilson - Travis turi tutorialų, kur tiesiog sėdi ir sukarpto dizainus. Jie ilgi, bet labai gerai parodo kaip iš tikro atrodo procesas.
  • Idėja įrašui: Kažkiek vietų, kur pilna gerų tutorialų (Team Treehouse, Lynda, Udemy, Pluralsight, Egghead, Udacity, etc.).
  • Vieninteliai programavimo kursai kurių tau reikės - įrašas apie freeCodeCamp. Čia gal net gi turėtų būti viso kelio pradžių pradžia.

# Antro etapo sėkmė

Keletas įveiktų tutorialų. Visiškai iki galo, 100%.

Tada kai pajusi, kad nori ir gali mėginti daryti kažką panašaus tik savo. Kai savo problemai gali išsigūglinti kitą tutorialą arba StackOverflow atsakymą.

# #3 Veiksmas (The Meat)

Iš esmės čia vyksta pagrindinis progresas. Darant tikrą projektą. Susiduriant su tikromis programavimo problemomis.

Dauguma tutorialų moko kaip padaryti labai paprastus puslapiukus ar programėles. Mes norim išmokti kaip iš tikro atrodo programuotojo darbas. Kaip kodo rašymu mes galim išspręsti tikras problemas. O gal tiesiog sukurpti ką nors įdomaus ir smagaus.

Turi keletą pasirinkimų. Pirmas, tiesiog parašyti kokio nors realaus projekto kloną. Privalumų tikrai daug. Svarbiausia, nereikia pačiam galvoti apie funkcionalumo ir dizaino reikalavimus. Gali susikoncetruoti į programvimą.

Antras, padaryti tikrą saitą kokiam pažįstamui, non profitui ar kilniam tikslui. Smagumas čia tame, kad gausi tikrą projektą, su tikrais reikalavimais. Be to jis būtinai įgis tikrą gyvenimą ir bus viešai pasiekiamas. Sudėtinga gal tik rasti gerą "klientą" ir tai, kad užduotis nebus vien grynas programavimas. Teks dar ir projektą managinti.

Taigi, pagrindinis skirtumas nuo antro etapo yra savarankiškumas. Mes jau nebeatkartojam tutorialų diktuojamų veiksmų. Esam atsakingi už savo veiksmus, sprendžiam problemas ir randam išeitis patys.

Mano galva, šis etapas vienas ilgiausių ir persidengia su vėlesniais.

# Trečio etapo planas

  1. Tvirtai apsispręsti kokio projekto imsies. Pasirinkti ir suplanuoti darbus. Pakanka paprasto veiksmų ir funkcionalumo sąrašiuko.
  2. Suprogramuoti ir padaryti viešai prieinamą.

# Trečio etapo įrašai

# Trečio etapo sėkmė

Didžiausia sėkmės dalis yra projekto viešumas. Juo privalo galėti naudotis visi. Jis privalo būti išbaigtas ir gerai veikiantis. Geriau puikiai veikiantis vienas puslapis nei neveikiantis didelis daiktas.

Šiame etape mes susikuriam įrodymus, kad esam tikri programuotojai.

# #4 Pripažinimas 🤑💸💰

Kada patampama tikru programuotoju ar programuotoja? Mano galva ne kai gauni popieriuką kuris sako, kad baigei studijas, ne tada kai prirašai krūvas nenaudojamo kodo, net ne tada kai tą kodą įkeli į Githubą.

Mano galva, bet kokios profesijos atstovu galima pradėti vadintis tada, kai sugebi duoti pakankamai naudos, kad už tą veiklą gautum pinigus.

Jei tik kas nors įtiki, kad kažką ten programuodamas padėsi jiems išspręsti jų problemą ir sutinka atsisveikinti su savo sunkiai uždirbtais pinigais, tu jau esi programeris.

Sudėtingumas čia yra savo sugebėjimų perteikime kitiems. Tenka iškomunikuoti ką jau moki ir kaip tai naudinga kitiems.

Didžiausias palengvinimas yra trečias etapas. Jei darei tikrą projektą, jau turi šiek tiek įrodymų, kad moki programuoti. Dabar tiesiog turi šitai papasakoti savo būsimiems darbdaviams arba klientams.

Gal atordys kiek keistai, bet šio etapo tikslas yra lengvai suvirškinamu būdu parodyti ką moki. Savęs pardavimas, asmeninis brandas, marketingas ir ką aš žinau kokie dar buzzwordai čia tinka.

Mūsų įrankiai yra tokia beveik šventa trejybė. CV, darbų portfelis (portfolio) ir motyvacinis laiškas. Išvardinta nuo mažiausiai iki labiausiai svarbaus.

Esu įsitikinęs (ir praktikoj patvirtinęs), kad programavimo sugebėjimai nėra svarbiausias reikalavimas gauti darbą arba klientą. Savęs pardavimas yra lygiai tiek pat svarbus reikalas, o kartais gal net svarbesnis.

# Ketvirto etapo planas

  1. Susikurti savo asmeninio marketingo medžiagą (CV, portfolio ir istoriją motyvaciniam laiškui).
  2. Parodyti tą medžiagą potencialiems darbdaviams ir/ar klientams.
  3. Gauti pirmą darbą ar mokantį pinigus klientą.

# Ketvirto etapo įrašai

# Ketvirto etapo sėkmė

Pinigai. Pinigai yra labai aiškus ir savo svorį turintis įvertinimas.

Nesvarbu tu bėgi maratonus, lankstai origamius ar programuoji. Profesionalu tampi kai pradedi už tai gauti pinigus.

Netgi daugiau. Didžioji dalis tavo pajamų turi būti gaunamos iš programavimo. Pinigų už programavimą gausi gal jau ir anskčiau, bet kol tai netaps pagrindiniu tavo pajamų šaltiniu, tikslas ir sekmė dar nebus pasiekti.

# #5 Augimas

Sveikinu, tu jau esi tikras programuotojas, gali susirasti komfortišką vietelę ir ten kiurksoti iki pensijos. NEEE!

Visi iki šiol surašyti etapai, iš tikro buvo vienas didesnis etapas. Jame patapai programuotoju. Įgyjai amatą, įrankį pasiekti tikriesiems savo tikslams.

Greit pirmo darbo honeymoon phase praeis ir jis pasidarys tokia pat kasdienybe kaip bet koks kitas. Be to, net jei pirmo darbo gavimas atrodo neįtikėtinu pasiekimu, tai tik pradžia. Dabar prasideda tikrasis mokymasis ir patirties rinkimas.

Šis etapas yra nuostabus, nes pagaliau gali visą savo laiką atiduoti programavimui, dirbi su tikrias projektais, o svarbiausia dirbi kartu su labiau patyrusiais kolegomis.

Svarbiausia išnaudoti galimybę mokytis. Turi progresuoti penkis kartus greičiau nei mokydamasis.

Teoriškai įmanoma augti nekeičiant darbų, bet mano galva job hop'inimas yra realiausias būdas paspartinti savo karjerą. Todėl dabar visos pastangos turi būti nukreiptos į pasirengimą kitam etapui (kitam darbui). Dalykai kuriuos atlikai visuose ankstesniuose etapuose, turi būti pakartoti gerokai kokybiškiau.

# Penkto etapo planas

  1. Patirties įgavimas (rašant kuo daugiau kodo ir sekant patyrusius kolegas).
  2. Pasirengimas kitam karjeros etapui.
  3. Šuolis į geresnį darbą.

# Penkto etapo įrašai

Apie šį etapą beveik nekalbėjau, teks pasitempti. Turiu minčių:

# Penkto etapo sėkmė

Prisiliesti prie kuo daugiau problemų ir spręsti jas kodu. Patapti patyrusio kolegos gizeliu ir nusikopijuoti patirties. Pasirengti kitam karjeros etapui, šuoliui į naudingesnį darbą arba poziciją.

Manau perėjimas į kitą etapą atsitinka patekus į naudingesnį ateinančiai karjerai darbą.