Postati viši programer nešto je čemu mnogi od nas teže dok nastavljamo putovanje kodovima i gradimo svoju karijeru. Ali što zapravo znači biti "stariji" programer?
Što biti viši programer nije
Prije nego što započnemo, maknimo ovo s puta. Suprotno onome što ćete vidjeti na 95% + oglasa za posao na mreži, viši programer nije strogo povezan samo s brojem godina vašeg životopisa.
Istina je, češće nego ne, da mnogo godina na poslu sa sobom obično donosi puno iskustva. A kod nekih tvrtki možete se snaći i samo s tim. Ali nije jedina kvaliteta koja s pravom dokazuje da je netko na višoj razini.
To je čest problem u svijetu softvera i može dovesti do velikih očekivanja s niskom isporukom. To također može dovesti do sukoba unutar tima kada vaš novi 15-godišnji 10x stariji programer odbije raditi s drugima.
Pa što možemo učiniti da se pripremimo za tu ulogu?
Što čini višeg programera?
Osvrćući se na svoju karijeru kod programera u mom timu kojima sam se najviše divio i poštovao, to se zaista svodi na četiri kvalitete:
- Iskustvo
- Rukovodstvo
- Mentorstvo
- Tehnička sposobnost
Nije dovoljno dobro na bilo koji od njih gledati kao na jedini prikaz kako će netko nastupiti u timu. Svaki programer je jedinstven i može biti jači s jednom kvalitetom od druge. Ali važno je vidjeti kako se te osobine spajaju kako bi se utvrdilo kako će netko pomoći vašem timu da raste.
Hajde da ih malo razbijemo.
Iskustvo
Iskustvo se obično smatra godinama na poslu i premda nije potpuno netočno, ne govori cijelu priču.
Baš kao što je svaki programer jedinstven, tako je i njihovo iskustvo. Iako je jedan programer možda proveo pet godina u intenzivnom položaju gdje su svakodnevno radili na rješavanju teških tehničkih izazova. A drugi bi mogao dizati noge u lokalnoj trgovini gdje je njihova jedina odgovornost bila ažurirati web stranicu svaki tjedan.
A to nije nužno loše! Svatko ima svoje putovanje i trebamo uravnotežiti svoje živote kako bismo ga uklopili. Ali nije realno reći da je tih 5 godina bilo isto.
Što onda zapravo znači iskustvo?
Prepoznavanje obrazaca iz prethodnog rada
Svaki programer ima priču (sjećaju li se toga ili ne) o slučajnoj pogrešci u koju je nabasao kroz svoje razvojno iskustvo. To bi moglo biti nešto što se odnosi na Javascript, webpack ili čak vaš operativni sustav, ali to jednostavno nema smisla!
No, bilo putem vršnjaka ili pretraživanjem na Googleu, shvatite. A tri mjeseca kasnije, kada radite na drugom projektu i naletite na istu stvar, ne morate ga ni guglati ili već znate što Googleu. Već znate u čemu je problem i možete ga brzo prebroditi i krenuti dalje.
Ovo je vrsta iskustva koja čini razliku. Sposobnost prepoznavanja obrazaca bilo zbog pogreške ili zato što je bila super uspješna ono je što pomaže svakom od nas rasti. To su iskustva koja pomažu timu da raste kad drugi zapnu i kad ih možete izvući iz veze.
Prepoznavanje onoga što ne znaš
Također je važno razumjeti ono što ne znate. Mislim da je dio onoga što pridonosi mojoj osobnoj borbi sa sindromom samozvanca to što što više učim, to više shvaćam da ne znam.
Ali na ovo ne treba gledati kao na lošu ili zastrašujuću stvar. Ovo bi trebalo biti inspirativno. To znači da vaš zanat na kojem ste radili ima još puno cool stvari za istražiti!
Junior programeri:
"Nemam pojma kako riješiti ovaj jedan problem; nikad se neću popraviti ako samo potražim Googling za odgovor
Viši programeri:
(46 kartica otvorenih za Google i StackOverflow zbog jednog problema)
- David K.? (@DavidKPiano) 29. travnja 2020Važno je shvatiti kako to utječe na vaš rad i ostatak tima. Na primjer, nikome ne pomaže ako se ponašate kao da sve znate i predate se ogromnim količinama posla. Kad se posvetite tom poslu i zapravo ga ne razumijete, to bi moglo izbaciti vaš sprint sa staze što može frustrirati cijeli tim (i klijenta).
Bez obzira planirate li to ili tijekom razvoja, nemojte se bojati tražiti pomoć. Dođite na zrak i podignite ruke! To što ste jedini stariji programer, ne znači da ne možete naučiti nešto od člana juniorskog tima.
Pokušajte dobro pogledati gdje ste bili, što razumijete i gdje biste mogli iskoristiti više kopanja.
Rukovodstvo
Kao stariji član tima, očekivao bih da programer ima prirodnu tendenciju da vodi. Iako to ne znači da morate biti stvarni tehnički voditelj na projektu ili donijeti bilo koju od konačnih odluka, to znači da biste trebali imati osnovnu razinu moći pomoći u promicanju projekta
Razumijevanje šire slike
Ako ste na projektima radili s članovima tima, trebali biste znati da svaki projekt ili značajka obično ima hrpu priča koje treba razraditi kako bi to bilo gotovo. Svaka bi priča trebala biti usmjeren dio koji pomaže u postizanju većeg cilja.
To postaje izazovno ako nitko u timu ne razumije kako svaka od ovih priča pomaže u postizanju tog većeg cilja. Kao stariji programer trebali biste biti u mogućnosti vidjeti kako se svaki dio uklapa u slagalicu i zašto je priča napisana s određenim kriterijima prihvaćanja. A ako ne znate, znat ćete kako dobiti odgovore i pobrinuti se da se tim priopći.
Ako niste sigurni u smjeru, pokušajte napraviti korak unatrag. Pokušajte vidjeti gdje se to uklapa. Pomozite voditi projektni tim do tog krajnjeg cilja.
Pomažemo u usmjeravanju manje iskusnih članova tima
To se prirodno pojavljuje u sposobnosti da pomognemo voditi one iz našeg tima koji su mlađi ili manje iskusni. Uobičajeno je da programeri gube fokus na veliku sliku. No, kao što smo upravo razgovarali, stariji programer trebao bi moći neprekidno imati dobru ideju o cjelokupnom projektu i o tome gdje se različite priče uklapaju u veći ep.
Pomozite usmjeravati druge u svom timu da ih dovedu na pravi put. Iako bi svima bilo korisno shvatiti kako se sve uklapa u širu sliku, ponekad ima smisla pomoći pojedincu da se usredotoči na to kako se njegov specifični zadatak uklapa.
Pokušajte prepoznati tu borbu u radu s drugima potičući ih da postavljaju više pitanja ili pomažući im u usmjeravanju ako nisu na dobrom putu dok pregledavate njihov kôd.
Mentorstvo
Često je prikladnije biti bez razmišljanja o svom poslu i ne brinuti se o tome što bilo tko drugi radi, ali je li to nekome stvarno korisno?
Pomaže u izgradnji ostalih članova tima
Možda ste takozvani 10x programer, ali radeći sve sami i ne pomažući drugima može samo usporiti cjelokupni tim. Često ćete zaglaviti uzimajući dijelove koje biste lako mogli uhvatiti ako ste proveli dodatnu sekundu u paru s nekim drugim u svom timu.
To je također loše za moral. Nitko se ne želi osjećati sam na projektu, a još više kao junior. Softver je veliki zastrašujući svijet, malo smjernica može uvelike pomoći u pomaganju drugima da postanu produktivniji, a potom i u poticanju sretnijeg, manje stresnog okruženja.
Lako je zaboraviti da smo svi u jednom trenutku bili juniorski tim. Iako biste stvari mogli uzimati zdravo za gotovo, koncepti bi drugima mogli biti zaista izazovni.
Imajte na umu da smo svi zajedno u tome. Proslavite pobjede bilo velike ili male. Ako se netko muči, obratite se za pomoć.
Dijeljenje znanja
Razmjena znanja nešto je s čime se bore mnogi timovi. Iako se svi obično nadamo da postoji način da se to postigne, većinu vremena to jednostavno ostane neriješeno. Pa što možemo učiniti?
Uzmite na sebe da podijelite ono što znate. Jeste li upravo preradili osnovnu poslovnu logiku? Ponudite 30 minuta da sve prošetate kroz šifru. Uparite i podijelite zaslon s preglednikom koda ako im je teško razumjeti.
To je nešto na što možemo potaknuti sve. Prirodno ćete naučiti više predstavljajući svoj rad pojačavanjem onoga na čemu ste upravo radili. Ovo je korisno bez obzira jeste li stariji ili prvi put otvarate uređivač koda.
Tehnička sposobnost
Namjerno sam ovo želio ostaviti do kraja. To je zato što, iako je važno, na vašem putu ka tome da postanete viši programer ima više aspekata, nego samo biti stvarno, jako dobar u nečemu.
Sposobnost brzog kretanja
Kao stariji programer, očekivao bih da će drugi stariji programer postati produktivan u nečem bržem od mlađeg programera. Ako su stručnjak za Javascript, očekivao bih da razumiju temeljna načela i obrasce jezika.
No, natrag na ideju prepoznavanja onoga što ne znate, nije razumno očekivati da svi stariji programeri znaju sve. Ne bih smatrao stručnjaka za Ruby ni manje starijim programerom jer ne znaju Javascript, ali očekivao bih da će razumjeti kako primijeniti ono što znaju prilikom ugradnje i učenja drugog jezika.
Promicanje softverskih obrazaca
Češće nego ne, obrazac koda koji ste upravo smislili nije nov. I to je u redu! Cilj izgradnje izvrsnog softvera ne mora nužno biti jedinstven sa svakim rješenjem.
I zbog toga možemo učiti na prošlom radu videći što je uspjelo, a što možda nije prošlo tako dobro da bismo pronašli obrasce koji rade za vas i vaš tim.
Obrasci poput MVC (Model View Controller) nisu postali popularni bez razloga. Programeri su učili iz prošlosti i učili od svojih vršnjaka koji su riješili velike softverske izazove. S tim znanjem mogu primijeniti rješenja na vlastiti rad. Ne radi se o novom pronalaženju kotača, već o rješavanju izazova i izradi dobrog proizvoda.
Svi imamo svoja jedinstvena putovanja
Bez obzira što vam bilo tko rekao, svi imamo svoja jedinstvena putovanja s kodovima. Ovo vam želi potaknuti i nadahnuti vas da postanete bolji cjeloviti programer i shvatite kako vaš rad utječe na ostatak tima.
Iako biste zasigurno mogli uspjeti bez uzimanja ovih stvari u obzir, mogli biste propustiti ključne osobine koje bi mogle učiniti da ljudi ne žele surađivati s vama iz perspektive čovjeka.
Bez obzira na vaše putovanje, imajte na umu ove stvari kako odrastate u boljeg programera!
Što mislite da je dobar Senior Developer?
Mislite li da sam na mjestu ili na putu? Podijelite sa mnom na Twitteru!
- ? Slijedite me na Twitteru
- ? Pretplatite se na moj Youtube
- Up Prijavite se za moj bilten