Am ajuns la ultima parte a seriei noastre.
Am vorbit deja despre primii paşi în profesie.
Despre ce merită cu adevărat să înveţi. Despre Code Review, Clean Code şi munca zilnică în echipă.
A rămas o întrebare: Când, de fapt, te opreşti din a fi Junior?
Această întrebare apare foarte des.
După un an? După doi ani? După cinci? Sau poate atunci când înveţi un alt framework?
Răspunsul te poate surprinde. - Nu există un număr corect unic.
Am văzut programatori cu zece ani de experienţă care încă aveau nevoie de îndrumare în proiecte mai complexe. Am văzut şi persoane cu trei ani de experienţă care proiectau singure soluţii, susţineau colegii mai tineri şi îşi asumau responsabilitatea pentru module întregi ale sistemelor.
De aceea, în IT, anii de experienţă sunt doar unul dintre elementele puzzle-ului.
Seniorul nu ştie tot
Aceasta este probabil cea mai mare culegătoare de mituri din industrie.
Mulţi Juniori îşi imaginează Senior Developerul ca pe cineva care are răspuns la orice întrebare. Realitatea arată cu totul altfel.
Un Senior bun spune foarte des: "Nu ştiu."
Dar imediat adaugă: "Verificăm."
Aceasta este o diferenţă uriaşă.
Seniorul nu trebuie să ţină minte toată documentaţia. Nu trebuie să cunoască fiecare bibliotecă. Nu trebuie să scrie totul din memorie.
Ştie însă:
- unde să caute informaţii,
- cum să verifice o soluţie,
- ce risc implică o anumită decizie,
- când să spună "nu ştiu", în loc să ghicească.
Aceasta este una dintre cele mai importante calităţi ale unui programator matur.
Programator sau inginer?
La începutul carierei majoritatea oamenilor se concentrează pe cod.
Cum să scrii o funcţie? Cum să faci un API? Cum să conectezi baza de date?
Cu timpul începi să observi că codul este doar un instrument.
Sarcina reală este să rezolvi o problemă de business.
Clientul nu cumpără aplicaţia pentru că a fost scrisă într-un anumit limbaj. Cumpără soluţia unei probleme.
Acesta este momentul în care programatorul începe să gândească ca un inginer.
Cea mai bună funcţie e uneori cea pe care nu o scrii
Sună ciudat? Totuşi adevărat.
Imaginează-ţi că un client solicită crearea unui modul nou. Poţi începe imediat să proiectezi o soluţie. Poţi şi să pui câteva întrebări.
De ce e nevoie de această funcţionalitate?
Cât de des va fi folosită?
Există deja o soluţie similară?
Se poate obţine acelaşi rezultat într-un mod mai simplu?
Adesea se dovedeşte că problema poate fi rezolvată fără a scrie sute de linii noi de cod. Şi pentru astfel de decizii plăteşte clientul. Nu pentru numărul de commit-uri.
Responsabilitatea începe acolo unde se termină codul
Seniorul nu este responsabil doar pentru partea sa de proiect. Priveşte mai larg.
Se întreabă:
- cum va afecta schimbarea celelalte module,
- dacă soluţia va fi scalabilă,
- dacă noua funcţionalitate va fi uşor de întreţinut,
- ce risc presupune implementarea,
- dacă utilizatorii vor avea cu adevărat beneficiu.
Este un mod cu totul diferit de a gândi.
Un bun Senior creează alţi Seniori
Aceasta este una dintre cele mai frumoase lucruri din domeniul nostru.
Cei mai buni programatori pe care i-am întâlnit nu s-au temut niciodată să împărtăşească cunoştinţe. Dimpotrivă.
Se bucurau când cineva din echipă se dezvolta mai repede. Pentru că o echipă puternică câştigă întotdeauna împotriva unui erou solitar.
De peste douăzeci de ani am avut ocazia să observăm cum persoane care au început la noi ca stagiari au devenit membri cu drepturi depline ai echipei. Una dintre aceste poveşti am descris-o în prima parte a seriei.
Astăzi acea persoană conduce singură sarcini solicitante, proiectează soluţii şi susţine programatorii mai tineri.
S-a întâmplat peste noapte? Bineînţeles că nu. Este rezultatul a sute de ore de învăţare. Zeci de Code Review-uri. Nenumărate întrebări. Greşeli făcute. Şi o curiozitate imensă faţă de lume.
AI nu va înlocui un programator bun
Nu putea lipsi acest subiect. Schimbă inteligenţa artificială industria noastră? - Da. Mult.
Face ca programatorii să nu mai fie necesari? - Dimpotrivă.
Se schimbă caracterul muncii. Petrecem din ce în ce mai puţin timp scriind cod repetitiv.
Tot mai mult timp pe:
- analiza problemelor,
- proiectarea arhitecturii,
- verificarea soluţiilor,
- convorbiri cu clienţii,
- luarea deciziilor.
AI este un asistent excelent. Dar responsabilitatea pentru proiect rămâne în continuare a omului. Şi va rămâne aşa mult timp de acum înainte.
Ce nu vei trece în CV
CV-ul va arăta:
- limbaje de programare,
- framework-uri,
- certificate,
- experienţă.
Însă nu va arăta lucruri care foarte des decid succesul.
Poţi să recunoşti când greşeşti?
Ştii să ceri ajutor?
Respecţi timpul celorlalţi?
Ții promisiunile?
Ştii să rezolvi conflicte cu calm?
Îţi asumi responsabilitatea pentru deciziile tale?
Acestea sunt exact calităţile care fac ca o echipă să vrea să lucreze cu tine.
Dacă am putea da un singur sfat...
După peste douăzeci de ani de dezvoltare software am putea vorbi despre tehnologii.
Despre arhitectură. Despre framework-uri. Despre inteligenţa artificială.
Dar dacă ar trebui să-ţi lăsăm un singur sfat, ar suna aşa: Nu înceta niciodată să fii curios.
Tehnologiile se vor schimba. Limbajele de programare vor evolua. Framework-urile vor apărea şi vor dispărea.
Dar curiozitatea, umilinţa, dorinţa de a învăţa, abilitatea de a pune întrebări - sunt competenţe care vor fi mereu necesare.
Glosar de termeni
Senior Developer
Programator experimentat care nu doar scrie cod de calitate, ci şi proiectează soluţii, ia decizii tehnice, sprijină echipa şi îşi asumă responsabilitatea pentru proiectele realizate.
Arhitectura software
Modul de proiectare al aplicaţiei şi al relaţiilor dintre componentele sale, care influenţează evoluţia, performanţa şi uşurinţa de întreţinere a sistemului.
Scalabilitate
Capacitatea sistemului de a gestiona un număr tot mai mare de utilizatori, date sau procese fără a pierde din performanţă.
Commit
Înregistrarea modificărilor în sistemul de control al versiunilor Git, permiţând urmărirea istoricului dezvoltării proiectului.
Mentorat
Procesul de transmitere a cunoştinţelor şi experienţei către membrii mai puţin experimentaţi ai echipei, susţinând dezvoltarea lor profesională.
Rezumatul seriei
Dacă ai citit toate cele patru părţi, poate ai observat că rareori am discutat despre framework-uri concrete.
Intenţionat.
Pentru că tehnologiile se schimbă mai rapid ca niciodată.
Ceea ce este astăzi popular, peste câţiva ani poate fi doar o curiozitate.
În schimb, modul de gândire al unui bun programator rămâne neschimbat; Analiză. Responsabilitate. Comunicare. Munca în echipă. Curiozitate.
Acestea sunt cele care fac ca din Junior să devii Mid Developer, iar în timp Senior.
La Web24, de peste 20 de ani dezvoltăm software pentru clienţi din diverse industrii. În acest timp am ajuns la o concluzie. Cei mai buni programatori nu se recunosc după câte limbaje de programare ştiu. Se recunosc după modul în care rezolvă problemele, colaborează cu oamenii şi cât de mult le pasă de calitatea a ceea ce creează.
Dacă abia începi drumul în IT, îţi dorim să nu-ţi pierzi niciodată curiozitatea.
Pentru că orice carieră bună începe de la ea.
