Programarea este astăzi una dintre cele mai frecvent alese direcţii de dezvoltare profesională.
Unii ajung în industrie după studii informatică. Alţii termină bootcamp-uri. Şi mai sunt cei care învaţă singuri, scriind primele aplicaţii după ore.
Indiferent de cale, aproape fiecare programator începător îşi pune întrebări similare.
Ce tehnologii să aleg?
Cum îmi găsesc primul job?
Ce aşteaptă companiile?
Cum arată munca zilnică într-un software house?
Şi poate cel mai important... Când voi înceta în sfârşit să mai fiu junior?
După peste douăzeci de ani de realizare a proiectelor pentru clienţi din diverse industrii şi după ce am crescut mai multe generaţii de programatori mai tineri, putem răspunde la multe dintre aceste întrebări.
Dar atenţie. Nu va fi o listă „10 framework-uri pe care trebuie să le înveţi în 2026”.
Astfel de articole sunt mii pe internet...
În schimb vrem să arătăm cum arată programarea din interior. Adevăratul ei chip.
Fără sloganuri de marketing. Fără poveşti despre programatori care lucrează de pe plaja din Bali. În schimb cu poveşti care s-au întâmplat cu adevărat. Şi cu sfaturi pe care noi înşine le-am fi dorit când am început.
Despre ce va fi această serie?
În următoarele patru articole te vom conduce prin drumul pe care aproape fiecare programator îl parcurge.
În părţile următoare vom vorbi, între altele, despre:
- ce merită cu adevărat învăţat la începutul carierei,
- ce tehnologii sunt fundamentale şi care sunt doar o modă trecătoare,
- ce echipament şi software contează cu adevărat,
- cum arată munca zilnică într-un software house profesionist,
- de ce Code Review este una dintre cele mai bune lecţii de programare,
- cum să foloseşti AI pentru a creşte mai repede, în loc să copiezi orbeste cod,
- ce greşeli fac aproape toţi juniorii,
- de ce expresia „la mine funcţionează” a devenit unul dintre cele mai cunoscute bancuri din domeniu,
- ce diferenţă este între Junior, Mid Developer şi Senior Developer,
- de ce cei mai buni programatori nu se recunosc după numărul de limbaje cunoscute, ci după modul de gândire.
Dacă abia începi aventura cu programarea, această serie te va ajuta să eviţi multe greşeli.
Dacă lucrezi deja în industrie, probabil că vei regăsi multe situaţii pe care ţi le aminteşti foarte bine.
Fiecare Senior a fost cândva acel junior pierdut
Uneori e greu de crezut. Te uiţi la Senior Developer care găseşte într-o câteva minute o eroare la care tu te-ai gândit zile întregi. Scrie cod atât de repede, de parcă nu s-ar mai gândi la el. Cunoaşte combinaţii de taste de existenţa cărora nici nu bănuiai. Vorbeşte despre arhitectură, pattern-uri şi containere cu aceeaşi lejeritate ca despre vreme.
Este uşor atunci să crezi: "Pur şi simplu e un geniu."
Cele mai multe ori, însă, adevărul e complet diferit...
Fiecare Senior cândva:
- a uitat un semn de punctuaţie,
- a şters din greşeală o porţiune din baza de date,
- a luptat cu un bug jumătate de zi pentru a descoperi o literă greşită,
- a creat primul conflict în Git,
- a trimis un patch care... a stricat complet altceva.
Nu este vorba despre talent care îi separă pe majoritatea seniorilor de juniori. Este experienţă. Iar experienţa se dobândeşte doar prin practică.
Studii învaţă programare. Munca învaţă să fii programator.
Această afirmaţie poate părea paradoxală, dar reflectă foarte bine realitatea.
Studiile sunt un loc excelent pentru a înţelege bazele. Să înveţi algoritmi. Structuri de date. Matematică. Arhitectura calculatoarelor. Modele de funcţionare ale sistemelor de operare. Toate acestea sunt de mare valoare. Totuşi, munca de zi cu zi arată complet altfel.
Dintr-o dată descoperi că pe lângă codare mai trebuie să:
- înţelegi nevoile clientului,
- colaborezi cu UX Designerii,
- consultezi soluţii cu Project Managerul,
- te integrezi cu sisteme externe,
- citeşti documentaţie,
- scrii documentaţie,
- analizezi erorile raportate de utilizatori,
- participi la Code Review,
- îţi planifici munca,
- estimiezi timpul de realizare al task-urilor.
Şi chiar asta, cel mai adesea, nu te învaţă niciun program de studii.
Cea mai mare surpriză? Programarea este doar o parte din muncă.
Acesta e momentul care surprinde aproape orice junior.
Imaginea idealizată?
Vii la serviciu. Primeşti un task. Scrii cod. Predai. Te întorci acasă.
Realitatea este diferită...
O mare parte din zi sunt conversaţii. Planificare. Analiză. Întâlniri. Citirea codului existent. Debugging. Căutarea cauzelor problemelor.
Scrierea de cod este adesea doar una dintre etapele întregului proces.
Un bun programator nu este cineva care scrie cod cel mai repede. Un bun programator este cineva care ştie să găsească cea mai bună modalitate de rezolvare a problemei.
Uneori soluţia cea mai bună este... să nu scrii niciun rând nou de cod.
O poveste din echipa noastră
Câţiva ani în urmă, în echipa noastră a venit un ucenic pentru practică. Ne amintim acea zi foarte bine.
Entuziasm imens. Curiozitate şi mai mare. Şi mii de întrebări: De ce facem asta aşa? La ce foloseşte acest pattern? De ce nu poate fi mai simplu? Chiar trebuie să scriem teste? Cum funcţionează Git?
Fiecare dintre noi a pus cândva întrebări similare.
De aceea, în loc să ne aşteptăm ca din prima zi să construiască funcţionalităţi complexe, am mizat pe ceva complet diferit – învăţarea modului de gândire.
Nu arătam doar cum se face ceva.
Explicam, în primul rând, de ce facem lucrurile în acel mod.
După primele practici s-a întors la noi. A primit sarcini din ce în ce mai responsabile. A participat la Code Review. A învăţat tehnologii noi. A observat cum sunt conduse proiectele pentru clienţi. A învăţat să colaboreze cu întreaga echipă.
Astăzi este membru cu drepturi depline al software house-ului nostru.
Conduce singur task-uri solicitante. Proiectează soluţii. Rezolvă probleme care cu câţiva ani în urmă îi păreau imposibile.
S-a întâmplat asta pentru că a învăţat un framework în plus? – Nu.
Cea mai mare schimbare a fost învăţarea modului de gândire. Pentru că un bun programator nu ştie răspunsul la toate întrebările. Un bun programator ştie cum să caute eficient acele răspunsuri.
"La mine funcţionează..."
Nu am putea încheia prima parte fără una dintre cele mai iconice expresii din lumea programatorilor.
Oricine lucrează în IT ceva vreme ştie această expresie. - La mine funcţionează.
Această propoziţie este în acelaşi timp amuzantă...
...şi foarte periculoasă.
Pentru utilizator nu contează că funcţionează pe calculatorul tău.
Clientului nu îi pasă că a funcţionat în mediul de testare.
Serverul de producţie nici nu va citi comentariul: // la mine funcţiona :)
Un programator adevărat nu îşi încheie analiza la afirmaţia că „la mine funcţionează”.
Pune următoarea întrebare: De ce la mine funcţionează, iar la client nu?
Şi tocmai din acest moment începe învăţarea reală.
Glosar de termeni
Junior Developer
Programator care îşi începe cariera profesională. Se concentrează pe acumularea de experienţă, învăţarea bunelor practici şi pe dezvoltarea abilităţilor tehnice şi a muncii în echipă.
Code Review
Procesul de revizuire a codului de către un alt programator. Scopul său este îmbunătăţirea calităţii codului, detectarea eventualelor erori şi transferul de cunoştinţe în echipă.
Framework
Set de biblioteci şi unelte gata făcute care uşurează crearea aplicaţiilor. Framework-ul impune o anumită structură a proiectului şi accelerează dezvoltarea software-ului.
Git
Cel mai popular sistem de control al versiunilor, care permite urmărirea modificărilor în cod şi cooperarea mai multor programatori la acelaşi proiect.
Debugging (Debugging)
Procesul de căutare, analiză şi eliminare a erorilor dintr-o aplicaţie.
Concluzie
Dacă după ce ai citit această parte vei reţine un singur lucru, să fie acesta.
Programarea se poate învăţa din cursuri, cărţi şi videoclipuri.
A fi programator înveţi abia atunci când începi să rezolvi probleme reale împreună cu alţi oameni.
Acolo se nasc experienţa, responsabilitatea şi modul de gândire care, în timp, diferenţiază un bun programator de cineva care doar ştie sintaxa unui limbaj.
În partea următoare vom trece la lucruri concrete.
Vom arăta ce merită cu adevărat să înveţi, ce tehnologii constituie fundaţii solide pentru carieră, ce echipament şi software să alegi şi de ce cunoaşterea profundă a unui limbaj de programare este adesea mai valoroasă decât cunoştinţe superficiale despre cinci.



