Articolul a apărut mai întâi în varianta în limba engleză.

Dragă viitor programator,

Îți scriu acum pentru că ar fi fost minunat dacă cineva mi-a fi făcut același lucru cu ceva timp în urmă. Îți scriu ca o persoană care este implicată în domeniul dezvoltării software de 13 ani, dar care nu a avut parte de un ghid care să-i ofere îndrumare pe parcurs și a trebuit să învețe din greșeli. Să sperăm că va fi mai ușor pentru tine.

Așadar, ești pregătit pentru primul tău loc de muncă ca programator? Ai auzit probabil că programatorii sunt vedetele rock ale lumii profesionale de astăzi și te pregătești să devii și tu unul, nu? Ei bine, nu este chiar adevărat. Majoritatea programatorilor sunt muncitori obișnuiți, dezvoltând plictisiți produse neimportante și neinteresante în aceste corporații uriașe care nu diferă cu adevărat de liniile de producție industrială de acum 50-100 de ani. Dar da, tu chiar poți deveni un star rock al programării, dacă vei ști ce ai de făcut. Pentru a avea șansa de a ajunge vreodată acolo, există câteva reguli (evidente) pe care îți sugerez să le citești și să le analizezi cu atenție.

 

Căutarea și pregătirea pentru un job

Mai întâi, alege cu atenție compania pentru care vei lucra. Da, am spus “alege”, pentru că aceasta este una dintre cele mai importante decizii pe care le vei lua vreodată, deci este o alegere foarte, foarte personală. Este viața ta și tu ești cel care alege compania pentru care va lucra, nu invers. Nu aștepta ca job-ul potrivit să apară pe site-urile de locuri de muncă. Discută cu prietenii, analizează care sunt cele mai potrivite companii pentru tine și trimite-le un CV. De preferat, trimite-le deasemenea și o scrisoare de intenție, deoarece CV-ul tău este deocamdată destul de subțire.

Dacă nu ești suficient de sigur pe abilitățile tale de programare pentru a-ți alege singur compania pentru care ai vrea să lucrezi, nu ești încă pregătit să fii programator. Locuiește cu părinții o vreme, mergi și lucrează la McDonalds dacă ai nevoie de bani, dar rezervă-ți timp să devii mai bun la programare. Nu face compromisuri. Nu accepta niciun alt loc de muncă care este doar tangențial legat de programare, dar nu e într-adevăr programare 100%. Pentru că îți va fi greu să treci la cariera de programator, odată ce te-ai obișnuit cu job-ul curent. Poziția pe care o cauți trebuie să se numească “junior software developer”.

 

Pasul următor este să te gândești un pic la tipul de companie pentru care ai vrea să lucrezi. În primul rând, trebuie să cauți să te angajezi la companii specializate de dezvoltare software sau, cel puțin, care să aibă un departament de IT de cel puțin 5 programatori. Dacă nu faci asta îți va fi imposibil să înveți lucruri utile acolo, ceea ce este foarte important pentru primul loc de muncă. Apoi, pentru primul job, nu te angaja la o corporație mare, dar nici la un startup. Ai nevoie de un mediu în care să înțelegi afacerea pe care o desfășoară compania (lucru dificil într-o corporație mare), dar și să ai o structură clar definită, reguli și reglementări (de obicei nu este cazul la startup-uri).

 

Pentru a te pregăti pentru primul job, nu te baza (doar) pe lucrurile pe care le înveți la facultate. Misiunea facultății nu este de a te transforma într-un programator bun pe o anumită tehnologie, ci, mai degrabă, de a-ți arăta toate opțiunile posibile pentru a-ți permite să iei singur o decizie despre ce vrei să faci și cum să ajungi acolo. Deci, trebuie să iei problema în propriile mâini, să alegi ce să înveți și să înveți foarte bine ce ai ales. Mai întâi, decide ce ți-ar plăcea să faci: vrei să construiești aplicații web? Sau embedded? Sau aplicații mobile?

Orice ai decide, va trebui totuși să înțelegi foarte bine procesul care se întâmplă într-un calculator din momentul în care scrii o linie de cod și până când rezultatul apare pe ecran. A, da…indiferent de ce tip de programare te vei decide să faci, trebuie să înveți puțin și despre programarea embedded, dacă nu ai făcut deja asta la facultate.

Însă, pe măsură ce înveți aceste lucruri, nu intra în chestii complicate și nu învăța lucruri foarte specifice. De ce? Vezi mai jos.

 

La interviu

Îți spun un secret legat de angajarea programatorilor juniori. Niciunui angajator nu-i pasă de ce știi în prezent, deoarece probabil ceea ce știi nu este direct aplicabil în activitatea zilnică. Îi pasă doar ce poți învăța.

Deci, chiar dacă interviul pare că îți testează cunoștințele despre un anumit limbaj de programare, intervievatorul încearcă de fapt să vadă cum gândești, cum faci conexiuni logice și dacă înțelegi cum funcționează tehnologia în ansamblu.

Am un truc mic pentru tine. Când răspunzi la o întrebare foarte specifică, care ar trebui să aibă un răspuns foarte specific, nu te limita în a da răspunsul corect. În timp ce te gândești la răspuns, vorbește cu voce tare despre ce gândești. Făcând acest lucru îi permiți intervievatorului să îți urmeze firul logic și să înțeleagă modul în care gândești. Dacă gândirea ta este logică, chiar dacă ai dat un răspuns greșit pentru că îți lipsesc câteva informații sau nu ai suficientă experiență, vei avea un avantaj uriaș față de candidatul care a dat răspunsul bun, dar nu a putut justifica acel răspuns.

 

La primul tău job

Felicitări! Ai obținut primul tău job de programator. Dar am o veste proastă: există cam 29 de milioane de programatori exact ca tine în lume. Îmi pare rău să te informez că nu ești special. Dar poți deveni un programator special, dacă lucrezi inteligent către acest scop. Da, am spus “inteligent”, nu “din greu”. Lucrul din greu este de fapt un indiciu al unui programator slab, nu al unuia bun.

Regula de aur pe care trebuie să o ții minte la primul loc de muncă (de fapt la toate locurile de muncă!) este să fii mereu proactiv. Încearcă să înțelegi mai bine cerințele, să scrii cod mai bun, să discuți mai mult, să explici mai bine… Este greu de explicat ce înseamnă să fii proactiv. Cea mai bună metodă de a afla este să întrebi întotdeauna managementul (toate nivelurile), ce reprezintă “proactiv” pentru ei. Toată lumea va fi bucuroasă să ajute, și chiar atunci când întrebi asta este un semn important al “proactivității”.

 

Ce ți-aș sugera să faci în primul rând este să vii cu idei originale cu privire la modul de a rezolva probleme specifice. De asemenea, să propui tot timpul îmbunătățiri, atât tehnice, cât și de business.

În al doilea rând, derivat din primul, este să nu aștepți niciodată să vină informația la tine. Mergi tu și caut-o. Înțelege business-ul companiei și care este rolul tău în ea. Nu te baza pe faptul că oamenii îți vor spune întotdeauna ce să faci. Încearcă să găsești oportunități, să descoperi riscuri și să propui îmbunătățiri ce pot fi aplicate în munca ta. În timp ce scrii cod, mergi în profunzime. Nu fi mulțumit dacă ceva funcționează, încearcă să înțelegi de ce funcționează. Ești un junior, nimeni nu se va plânge dacă îți va lua task-ul mai mult pentru că ai petrecut timp înțelegând exact ce se întâmplă și pentru a învăța.

Pune întrebări. Tot felul de întrebări, nu doar legate de programare. Înțelege de ce s-a cerut un anumit task și care este legătura lui cu celelalte task-uri. Înțelege valoarea de business pe care o va aduce task-ul la care lucrezi. Înțelege cine sunt clienții produsului la care lucrezi. Înțelege scopul procedurilor companiei: de ce trebuie să raportezi orele lucrate, cum sunt utilizate rapoartele, etc. Fă networking cu toți oamenii din companie, înțelege bine cu ce se ocupă și cum rolul acestora ajută obiectivele globale ale organizației.

De asemenea, adu-ți aminte că ești un junior și că trebuie să-ți formezi o etică a muncii. Pentru a forma o rigoare și un mod de gândire procedural, trebuie să respecți regulile companiei. Respectă programul și procedurile companiei. Respectă standardele de scris cod și best-practice-urile impuse de companie. Desigur, pentru tine va fi ușor să faci asta, atâta timp cât ai înțeles deja de ce este nevoie de fiecare dintre ele. De asemenea, respectă promisiunile pe care le faci: deadline-uri, nivelurile ridicate de calitate, disponibilitatea pentru alții etc.

Un alt lucru important de făcut la primul loc de muncă este obținerea unei certificări cât mai curând posibil, dar doar cea mai recunoscută în industrie. Făcând acest lucru îți vei putea dovedi și în mod formal cunoștințele dobândite și va face interviurile viitoare mult mai ușoare.

 

Ok, deja lucrezi de 2-3 ani la prima companie, ai devenit foarte eficient în sarcinile tale zilnice, înțelegi cum funcționează totul, angajatorul te vede ca un angajat foarte bun datorită proactivității tale. Ce urmează? DĂ-ȚI DEMISIA! ACUM! TE ROG! În momentul în care ai atins acest punct, mai sus nu se poate, ai atins vârful în această companie. Vârful tău, nu al companiei. Compania va continua să primească din ce în ce mai multă valoare pe măsură ce continui să lucrezi acolo, dar acest lucru are un cost uriaș pentru tine. Dacă dorești să rămâi un programator relevant în industrie, singura opțiune este să pleci. Amintește-ți că în domeniul IT lucrurile se schimbă foarte repede: tehnologii, metodologii, hardware…totul. Dacă vei continua să rămâi la această primă companie, vei învăța mai multe doar despre modul în care această companie face lucrurile. Dar dacă dorești să crești, trebuie să înveți mai multe tehnologii, să experimentezi mai multe echipe și mai multe metodologii, să dezvolți produse diferite, să folosești unelte diverse, să înțelegi mai multe afaceri, să faci mai mult din orice.

Dar nu-ți face griji, îți va fi din ce în ce mai ușor să obții un job ca programator după această experiență la primul job.

 

După primul job

În regulă, acum ești un programator bun, apreciat de colegi. Ce să faci mai mult? Păi…fă mai mult!

Ești plătit să “lucrezi” pentru companie 8 ore pe zi. Majoritatea angajaților nu înțeleg că acest “lucrat” nu presupune să facă doar ce li se cere explicit, ci, mai degrabă, să-și utilizeze toate abilitățile pe care le au pentru a ajuta compania în timpul celor 8 ore. Dacă faci acest lucru, vei fi pur și simplu un angajat mai bun și un profesionist mai bun. Trebuie să realizezi că acest lucru nu numai că va ajuta compania, ci te va ajuta și pe tine prin învățare și dezvoltare personală.

Descoperă o tehnologie specifică care este se utilizează des și care consideri că va fi folosită în continuare ani și ani și încearcă să o înveți până la un nivel expert. E minunat să fii cunoscut ca un expert în ceva.

Găsește modalități de a-ți crea un brand personal. Scrie un blog tehnic, fii util, contribuie la forumuri tehnice (Ex: e vreun programator Java care nu știe cine este BalusC?). Fă totul pentru ca oamenii să îți recunoască numele și să îl legi de ceva pozitiv. De exemplu, într-un articol scris anterior pe acest blog, am inclus în mod natural și neforțat numele meu, Nicolae Andronic. Acest lucru a făcut 25 000 de persoane care au citit articolul, să-mi cunoască numele. Acum, când ai citit despre asta, există 25 001 de persoane care îmi cunosc numele 🙂

Pe măsură ce tehnologia se dezvoltă rapid, trebuie să ții ritmul. Ca ultim sfat: urmărește continuu care sunt ultimele tendințe din domeniul tău de expertiză, analizează care dintre ele au șanse să fie utilizate într-un mod profesionist și învață cât mai mult despre ele, înaintea tuturor.

Îți doresc mult succes!

Cum să devii un programator de succes

Vrei să te anunţăm când scriem ceva nou?

Politica de confidențialitate