Je li programiranje za mene? Hoće li mi se svidjeti takva karijera? Jesam li ja uopće sposoban/na biti dobar programer/ka? To su legitimna pitanja koja si postavljaju mnogi koji kreću u programiranje i koji razmišljaju o karijeri u ovom polju. Nažalost, realnost je ponešto drugačija:
Ne može svako biti programer. Barem ne na duge staze. Svako može naučiti sintaksu, svako može naučiti programiranje, ali ako to ne volite ili “nemate ono nešto” što vam treba, nećete uživati u tome. A to nas vodi do idućeg – vrlo brzo biste mogli osjetiti što znači “burnout”. Zato ćemo u nastavku vidjeti što je to što odvaja programere od onih koji to nisu i zašto neki ne mogu postati dobri u ovom poslu.
1) Nedostaje vam eksperimentalne kreativnosti
Iako je temelj programiranja – logika, programiranje je većim dijelom čista kreativnost. Novi program je kao “prazno platno”, a vaš kistovi su programski jezik, frameworci i libraryji koje možete koristiti. Trebate imati viziju ako želite nešto konkretno napraviti i ako želite na tržište izbaciti produkt. Naravno, trebat ćete imati mnogo kreativnosti da viziju pretvorite u stvarnost.
Mnogi puristi u programiranju će vam reći da postoji samo jedan pravilan način kako pisati kod, ali to je daleko od istine. Kao što gradite kuću, pečete kolače ili pišete knjigu. Možete to napraviti na mnogo različitih načina. Ista stvar je s programiranjem. Ali morate konstantno biti spremni na istraživanje i eksperimentiranje da bi stvari uspjele i da bi ste ih izgurali do kraja.
Ono što želimo reći je da ako prirodno niste znatiželjni i ne volite eksperimentirati, razviti ćete tzv. “tunnel vision” i teško ćete vidjeti neke stvari. To će se odraziti na vašim programerskim vještinama i jednostavno nećete biti sretni s onim što radite.
2) Niste motivirani učiti i raditi dobar dio dana
U ničemu nećete biti uspješni ako nemate nešto u vama što vas gura naprijed, nešto što vas motivira da svaki dan budete bolji nego dan prije. To je univerzalna istina, a ni u programiranju situacija nije drugačija. Dobar programer je sposoban sam sebe motivirati. Čak i onda kada radi repetitivne zadatke. Ako to ne uspijete, vrlo brzo ćete izgorjeti, odnosno doživjet ćete “burnout”. Programiranje nije posao kao svaki drugi. Programiranje je konstantno učenje, učenje van radnog vremena … morate se jako puno posvetiti ovoj tematici ako želite biti uspješni u onome što radite.
Ako vam je cilj zaraditi par tisuća kuna mjesečno i raditi obične HTML forme i dosadne programerske zadatke, onda zanemarite ovo o čemu pričamo.
Dobar programer nikada nije zadovoljan, uvijek teži naučiti više, želi naučiti kako biti efikasniji, kako u malo vremena napraviti hrpu posla itd. Nema stajanja, nema pauzi i nema opuštanja.
Stoga ponavljamo, ako niste samo-motivirani, programiranje bi moglo biti užasno naporno i teško za raditi.
3) Ne volite rješavati logičke probleme
Za programiranje će vam mnogi reći da morate znati dobro matematiku i biti “matematički genije” da biste programirali. To je čista laž. To vam je samo prednost, ali definitivno nije nešto što morate imati da biste programirali.
Ali, definitivno ćete morati imati razvijenu logičku stranu mozga ako želite biti dobar programer. Jednostavno morate jer je programiranje često rješavanje logičkih problema, razvijanje raznih algoritama, čitanja tuđeg koda i razumijevanje istoga …
Ovo ne govorimo da vas obeshrabrimo – ovo je napisano iz iskustva. Ako nemate želju za rješavanjem teških logičkih problema, mogli biste često biti frustrirani ovim poslom. Jer kada klijent dođe i traži vas da nešto napravite, njega ne zanima je li to lagano ili teško. Klijent želi funkcionalnost X. Na vama je da taj “X” rastavite na manje korake i napravite to što trebate. I tu nastupa frustracija ako ne volite raditi takav posao. Nažalost, mnogi mladi programeri nakon godine dana shvate da to nije posao za njih, te da im se ne da svaki dan rješavati hrpu takvih problema.
4) Ne volite istraživati stvari
Nebitno koliko ste dobri u programiranju i koliko znate, uvijek ćete u jednom trenu “udariti u zid”. Možda radite na novoj web aplikaciji i koristite framework koji do sada niste koristili. Ili ste naslijediti projekt napisan u Pythonu, a do sada ste 10 godina pisali samo Javu.
Kako ćete riješiti ovaj problem? Nema jednostavno rješenja i lakog odgovora. Morati ćete zasukati rukave i krenuti istraživati. Ako je to novi framework, morat ćete skinuti dokumentaciju i početi ju istraživati. Početi eksperimentirati dok ne shvatite kako ona funkcionira. Ako je to novi jezik, počet ćete učiti novu sintaksu, učiti specifične stvari za taj jezik i tako dalje.
Morati ćete puno guglati, puno čitati, puno istraživati dok ne počnete polako rješavati probleme na koje ste navikli. Ako vam to nije “ugodno”, onda definitivno nećete uživati u ovom poslu. Jer pisanje koda nije 8 sati dnevno. Pisanje koda je možda sat ili dva. Ostalo vrijeme je istraživanje, debuggiranje i sve ovo što smo napisali.
Zapamtite, nisu najbolji programeri oni koji su najpametniji. Nego oni koji razumiju kako problem rastaviti na hrpu manjih i kako riješiti dotične. Oni koji istražuju i vole to raditi.
5) Volite normalne radne sate
Programerski posao vam daje fleksibilnost. Neki rade iz ureda, neki se vole zavaliti na kauč doma i raditi. Možete biti freelancer i raditi za klijente diljem svijeta, a možete i raditi za lokalnu IT kompaniju u vašem kvartu. No, s takvom fleksibilnošću dolazi i velika odgovornost i dediciranost. Sve one priče koje čujete o programerima koji rade do kasno u noć, o programerima koji vikendima istražuju i eksperimentiraju, o programerima koji “nemaju radno vrijeme” … su često istinite. Programiranje često zna poremetiti onu tanku liniju između privatnog i poslovnog.
Zašto? Zato što programeri najčešće imaju neki rok do kada moraju isporučiti funkcionalni softver ili neku funkcionalnost. Nekada ćete to napraviti i mnogo prije roka pa ćete imati viška vremena, a nekada ćete shvatiti da imate premalo vremena pa ćete raditi prekovremeno samo da stignete.
Još je gore ako ste freelancer i radite za više klijenata. Tada često imate potrebu raditi cijele dane, samo da budete “korak ispred konkurencije” i da vam klijenti budu zadovoljni.
Pitanje je – kada je dosta? Kada je vrijeme da zaklopite laptop i posvetite se privatnom životu i hobijima koje imate? Teško je reći, ali ako želite programirati, zaboravite fiksno radno vrijeme od 8 do 16h. Često ćete raditi i više od 50-60 sati tjedno. Ovisno o poslu, projektu i klijentu.
Ako preferirate posao s fiksnim radnim vremenom, programiranje definitivno nije za vas.
6) Fokus vam je isključivo na plaći i zaradi
Hajdemo se ne lagati – od programiranja se da vrlo lagodno živjeti. Ako pogledate prosječne plaće programera po svijetu, vidjet ćete da te plaće idu i do 6-8 tisuća eura ili dolara. Čak i u Hrvatskoj radeći za Hrvatske firme možete zaraditi 15-20 tisuća kuna mjesečno.
Pitanje je u kojem vremenskom intervalu. Ako vam je plaća bitna i želite što prije doći do “velikih” brojeva, programiranje bi mogao biti krivi put. Velike plaće u programiranju imaju seniori i oni koji stvarno vladaju tehnologijama. Ljudi koji ne poznaju poraz i koji ne odustaju dok ne riješe užasno teške probleme. Ljudi koji su team leadovi u velikim i jakim IT firmama … Juniori i mid developeri imaju solidne plaće. I u Hrvatskoj i u Europi i u Americi …
Ali to je put kojim ćete se godinama morati penjati da bi došli na neku “pristojnu” razinu. Postoje mnoge druge karijere gdje možete zaraditi više novaca u kraćem razdoblju i gdje možda nećete morati ovako raditi. Ili igrajte loto. U svakom slučaju, ne zavaravajte se – nećete se jako brzo obogatiti s programiranjem.
Piše: B.P.