Veterani programeri dele lekcije koje su naučili tokom godina o tome kako da se uspešno upravlja poslovanjem profesionalnog kodiranja. Ako ste se nedavno priključili svetu profesionalnih programera možda mislite da ste, zahvaljujući obrazovanju i/ili obuci u informatici i programiranju, već sve shvatili. Međutim, programeri koji se već neko vreme time bave, mogu da vam kažu da postoji mnogo toga što biste morali da znate o poslu profesionalnog pisanja koda, a što ne možete da naučite na univerzitetu ni na akademiji kodiranja. Da bih utvrdio koje su to stvari, razgovarao sam sa nekoliko iskusnih veterana u kodiranju, koji su svi bar jednu deceniju (a neki i više decenija) radili kao profesionalni softverski inženjeri i pitao sam ih šta bi oni voleli da su znali kada su tek počinjali da kodiraju za život. Bilo da ste nedavno diplomirali i počinjete na svom prvom programerskom poslu, ili ste stariji radnik koji prelazi na programiranje, koristite gornje strelice da pročitate 7 saveta za programere početnike od onih koji to rade godinama.
1. Saznajte više o sistemima u osnovi
Naravno, veliki deo razvijanja softvera je poznavanje programskih jezika. Ali, kao što mi je nekoliko ljudi napomenulo, programeri bi takođe trebalo da znaju šta se događa niže u steku.
“Mnogi jezici se apstrahuju od onoga što se događa na sistemskom nivou, a to apstrahovanje je korisno jer najčešće omogućava programerima da budu produktivniji” kaže Pet Bul, inženjer podrške u firmi Acquia. “Ali kada naletite na blokiranje, stvarno gadnu grešku, pa vam zatreba dublje shvatanje onoga što se dešava pod haubom, korisno je ako ste u stanju da raščlanite proces i ispitate sistemske pozive i stvarno vidite kako taj deo koda sarađuje sa preostallim delovima sistema”, odgovorio je putem e-pošte.
Isto tako, Robert Daglas, podpredsednik za zadovoljstvo kupaca na Platform.sh mi je rekao,“Kada sam tek počinjao da programiram, bilo je mnogo stvari koje nisam razumeo o samim računarima. Sistemi fajlova, umrežavanje i kako se stvari drže u memoriji su tri očigledna primera. To je značilo da nisam ni mogao da razumem ciljeve nekih programskih konstrukcija koje su mi se nudile”.
2. Upoznajte alatke sa komandne linije
Kao programer, velika je verovatnoća da ćete mnogo vremena provoditi radeći u kitnjastom IDE okruženju ili editoru koda. Međutim, povremeno će vam život biti lakši ako osim toga umete da obavite neke stvari sa komandne linije. “Ponekad se nađete na nekoj mašini na kojoj nešto treba uraditi odmah, a alatke su veoma ograničene” rekao mi je veteran programer sa 20 godina iskustva, koji je želeo da ostane anoniman. “Upoznajte ljusku (engl. shell) kao što umete da dišete. Alatke kao što su find, comm, diff, vi/vim, sed, awk. Kako da napišete mali skript direktno na komandnu liniju da biste pronašli fajl koji treba da se promeni ovog trena jer proizvodnja stoji, a Džo koji je zeznuo URL u navedenom nepoznatom fajlu se nalazi na letovanju na ostrvu Fidži”.
Bull, koji je najpre koristio Microsoftove alatke, a zatim polako prešao na Linux, složio se i rekao, “Ja bih naučio sve detalje komandne linije, a i sve korisne pomoćne programe koji postoje na *nix sistemima. Tačno mogu da se setim koda koji sam napisao pre mnogo godina, na kojem sam verovatno radio danima ili nedeljama, a koji je verovatno mogao bolje da se uradi sa {za}grep + awk u jednom redu”.
3. Vaš program za otklanjanje grešaka je vaš prijatelj
Koder provodi priličan deo vremena u istraživanju grešaka. Dejv Varon, bioinformatički programer u firmi Novartis, naglašava prednosti programa za otklanjanje grešaka i kako on može uštedom vašeg vremena da nadoknadi uložene troškove. “Naučite kako da koristite svoj programa za otklanjanje grešaka!” rekao mi je. “Utrošite dan ili dva na konfigurisanje. Kada ne dobijete očekivani rezultat, primenite programa za otklanjanje grešaka: postavite tačke prekida, koračajte kroz svoj kôd, a pogotovo kroz kôd drugih dobavljača. Uštedećete cele dane frustracije, a što je još bolje, naučićete o kodiranju ono što jedino možete da naučite čitajući tuđi kôd”.
4. Naučite da pišete testove
Neki programeri smatraju da je bitno jedinično testiranje, to jest, pisanje testova kojima se proverava da li male jedinice koda rade ono što treba da rade. Count Richard Handloff, programer baze podataka u firmi Strategic Power Systems, deli to mišljenje. “Ja mislim da najbolji savet koji se može dati nekome ko želi da nauči da programira je da nauči da piše dobre testove i da to nauči što ranije” napisao mi je u e-poruci.
5. Planirajte promene i učenje novih sistema
Svi znaju da se u današnje vreme tehnologija brzo menja. To se ne odnosi jedino na našu voljenu potrošačku robu, već takođe na sisteme u osnovi, na jezike i na alatke koje programeri koriste u svom poslu.
Adam Vulf, programer mobilnih uređaja i osnivač firme Milestone Made, preporučuje da novi koderi budu spremni na promene i da ne zaostaju. “Upravo sada, ja mislim da treba planirati da se iz osnova nova tehnologija uči približno svake 4 godine” kaže on. “Dobro osnovno znanje uvek može da se primeni, ali alatke i tehnologija koju ćete svakodnevno koristiti biće sasvim različiti svake 4 godine”.
“Projekti se više ne pišu samo jednim jezikom i u jednom radnom okviru” rekao je programer koji je želeo da zadrži anonimnost. “Nikad nećete da radite samo na jednoj stvari u jednom projektu, naviknite na prelaženje sa projekta na projekat i sa jednog jezika/tehnologije na drugi jezik/tehnologiju” napisao je.
6. Budite timski igrač
Uprkos stereotipu da programeri rade sami i da ne skidaju slušalice, programeri ipak moraju da rade sa drugim ljudima. Ben Miler, glavni tehnički inženjer firme Sinclair Digital Ventures, naglašava koliko je za uspešnu karijeru značajna sposobnost da se radi u timu. “Veliki projekti se sastoje od mnogo pokretnih delova koje treba sastaviti, a njihovo uklapanje i podela problema može da dovede do nemogućih inženjerskih problema ako se ne pazi” napisao je u e-poruci. “Pre nego što počnete da optimizujete taj algoritam, radite sa timom i proverite da li postoji drugačija podela problema koja će uprostiti svačije pojedinačne probleme. Kodiranje je timski sport!”
Varon ponavlja koliki je značaj saradnje sa ljudima i kaže “Ako ne možete sami da dođete do rešenja drugačijom primenom API-ja ili istraživanjem grešaka, zatražite pomoć. Samo zato što mislite da ste napisali remek-delo ne znači da to nije koješta, ili da ne može biti bolje. Isto kao u školi, i drugi imaju ista pitanja, ili pitanja na koja samo vi imate odgovor. Razvijajte odnose sa kolegama. Često se desi da čim postavite pitanje naglas, sami se setite rešenja”.
Moj anonimni izvor je takođe izrazio sličnu misao o prednostima rada u timu. “Ako ne ustuknete i ipak uradite ono što se od vas zahteva iako je to grozan posao, nećete ostati nezaposleni” kaže. Ali, u toj situaciji, upozorava, “budite obazrivi, može se desiti da vam uvek daju takve poslove”.
7. Nemojte se plašiti da kodirate tako da ostanete bez posla
Miler je imao jedan posebno zanimljiv savet koji, na prvi pogled, ne izgleda logičan. “Kodirajte tako da ostanete bez posla, i dobićete unapređenje” rekao mi je. “Pronađite najjednostavnije rešenje problema i neka vaš kôd bude samoodrživ, bez potrebe za održavanjem, pa će vam svi davati sve više posla. Čak će tražiti da naučite druge da tako rade” objasnio je. “Ukratko, ako brinete (ili ako tako kodirate) da vam uvek ostane još posla, osujetićete svoju karijeru”.