Strpljenje, mladi Padavane
Super 8 saveta kako do „džedaj“ programera
Mislim da sam dostigao tačku u svojoj karijeri kada bih mogao da podelim malo mudrosti i smernica za mlade programere. Mnoge stvari koje će biti spomenute u ovom tekstu su u osnovi retrospektiva grešaka (i nekih dobrih izbora) koje sam napravio kada sam ja bio u toj situaciji. Stoga, evo liste stvari koje bih rekao mlađem sebi, kada bih imao priliku:
1. Jednostavan kôd
Junior programeri često imaju tendenciju da preterano dizajniraju jednostavno rešenje i da koriste neki fensi kôd. Takođe, možete videti da imaju tendenciju da pišu što je moguće manje kôda koristeći jednolinijske kôdove koji zamenjuju nekoliko linija kôda, teški su za razumevanje i nemoguće ih je debug-ovati. Ovo je verovatno rezultat želje junior programera da impresioniraju starije kolege svojim razvojnim veštinama.
Ne morate to da radite! Sledite jedan od glavnih principa programiranja – KISS: Keep it simple stupid. Pisanje jednostavnog i razumljivog kôda nije lako. To zahteva iskustvo i mnogo planiranja i razmišljanja unapred: možda će ga neko drugi održavati, možda će neko drugi morati da ga koristi itd.
2. Ono što nas čini ljudima su greške
Shvatite i prihvatite činjenicu da možete da pogrešite i da ćete grešiti. Kada vam stariji kolega ponudi konstruktivnu kritiku u vezi sa vašim stilom kodiranja ili primenjenim pattern-om, ne shvatajte to lično ili kao uvredu. Oni verovatno samo pokušavaju da vam pomognu da učite i rastete postavljanjem teških pitanja i ukazivanjem na potencijalne probleme koji su prisutni ili se mogu pojaviti u budućnosti.
Najbolji način da ubrzate način kojim ćete steći nedostajuće znanje je izlaganjem svog neznanja. To se takođe odnosi i na senior programere. Ako nešto ne znate, možda je neko drugi već imao slične probleme i može vam skratiti vreme koje biste proveli u njihovom rešavanju. Najvažnije pravilo je – ako vam je potrebno više od tri sata da nešto smislite, zatražite pomoć. Međutim, budite sigurni da su vaša pitanja pametna i strukturirana i da nećete dobiti odgovor RTFM tj. Pročitaj *** uputstvo.
3. Nemojte se žaliti
Junior programeri se obično uvode u kompaniju radeći na nekom postojećem projektu. Neki od tih projekata mogu da sadrže kôd i obrasce koji možda nisu najbolje praksa, o kojima mladi programeri prvo nauče. Nemojte ukazivati na greške i ne formirajte mišljenje da ljudi koji su to napisali ne znaju ništa. Možda je to bilo najbolje što su mogli da urade u određenim vremenskim rokovima i okolnostima. Kada steknete malo iskustva i pogledate kôd koji ste napisali pre nekoliko godina, postoji šansa da ćete ga mrzeti.
4. Sledite stil kodiranja
Nakon nekog vremena, tim programera koji radi na sličnim projektima sklon je tome da se složi oko stila kodiranja i do toga obično dolazi nakon mnogo rasprava i verzija stila kôdova. Ne pokušavajte da pišete kôd u svom stilu ili, još gore, da kritikujte već postavljeni stil. Izrazite zabrinutost, postavljajte pitanja, ali sledite smernice dok se ne promene.
5. Čitajte. Mnogo čitajte
Senior programeri i arhitekte nisu dobili te titule zbog svojih godina. Mnoga znanja su stekli čitajući mnogo knjiga, blogova, članaka… i to ne samo o programiranju. Proširite svoje poslovno znanje čitajući o osnovnim međuljudskim odnosima, menadžmentu, itd.
Počnite sa čitanjem o osnovama softverskog razvoja. Usredsredite se na specifične programske jezike i platforme koji vam najviše odgovaraju i izgradite snažnu osnovu. Nakon toga, pređite na arhitekturu softvera, pattern-e, performanse, sigurnost itd.
Neće vam naneti štetu ukoliko pokrenete nekoliko sporednih projekata koji će vam pomoći da poboljšate svoje veštine. Možete dati svoj doprinos tako što ćete nuditi ove projekte open source zajednici. Takođe, možete da pišete blog 🙂
6. Nađite mentora
Kada započinjete posao junior programera, obično vam se dodeljuje stariji kolega koji će vam pomoći oko nove pozicije. Ne prihvatajte ovo zdravo za gotovo i ne bojte se da pitate kolegu o programskoj dilemi koju možda imate. Ako je moguće, tražite nekoliko sesija programiranja u paru sa vašim mentorom. Vi pišete kôd i dok pišete objašnjavate svoj pristup i zašto to radite na taj način. Tako vaš mentor neće pregledati samo vaš kôd, već i vaš način razmišljanja i dobićete povratnu informaciju u trenutku.
Imajte na umu da stavljanje svih jaja u jednu korpu, što znači da se oslanjate samo na savete mentora, može da vam se obije o glavu. Ukoliko sledite ono što je rečeno u odeljku #5, možete proceniti da li je ono što vaš mentor kaže tačno i da li je to pravi put kojim treba da idete.
7. Komentari
Uvek postoji sukob mišljenja kada se govori o komentarima u kôdu. Neki kažu da bi vaš kôd trebalo da bude samo-objašnjiv, a drugi misle da nijedan kôd ne može da govori sam za sebe, bez obzira koliko dobro je napisan i trebalo bi da bude dokumentovan kroz komentare.
Po mom skromnom mišljenju, programeri bi uvek trebali da pišu kratke metode, metode koje su odgovorne samo za jednu stvar i koje je lako razumeti čak i bez komentara. Međutim, ne bojte se da stavite komentar za složeni deo kôda ili ukoliko nešto proglasite kao zastarelo, samo u slučaju ako neko drugi treba da shvati zašto ste to učinili na taj način. Dobri komentari objašnjavaju zašto, a ne šta.
8. Budite temeljni
Čak i ako vaša kompanija/tim ima odeljenje za kontrolu kvaliteta, uradite sopstvenu proveru kvaliteta napisanog softvera pre nego što komitujete promene. Napišite automatizovane testove ili uradite ručno testiranje za svaku promenu koju napravite. Pokušajte da pogledate iz drugačije perspektive i predvidite mogući uticaj koje će vaše promene imati na druge komponente i funkcionalnosti i testirajte ih takođe. To će smanjiti ponovnu obradu i otklanjanje grešaka za vas i za ceo projekat.
Nakon svega rečenog, dodaću samo moju omiljenu frazu koja se može primeniti na sve programere: „Uvek kodirajte tako kao da će tip koji radi na održavanju vašeg kôda biti nasilni psihopata koji zna gde živite“.