Plan de carieră Frontend Developer – 3 niveluri și peste 10 tehnologii

Ce trebuie să știi când ai decis să lucrezi în IT?

Pentru că citești acest articol, voi presupune că vrei să lucrezi ca Frontend Developer. Probabil că ai citit pe internet despre diferitele poziții din IT, despre limbajele de programare pe care trebuie să  le stăpânești și chiar despre salariile oferite. Totuși, sunt atât de multe informații disponibile pe internet, încât este dificil să înțelegi exact cum funcționează lucrurile.

Vom discuta despre ce trebuie sa înveți (atât abilități tehnice, de programare, cât și “soft skills”), despre pozițiile prin care vei trece în primii ani de carieră, despre salariu și multe altele.

Frontend Developer road map

Dacă te-ai întrebat vreodată ce limbaje de programare și tool-uri trebuie să stăpânești ca să fii un programator bun, răspunsul îl găsești pe link-ul de mai sus. În acest articol îl vom sparge în bucăți mici și-l vom discuta în detaliu.

https://roadmap.sh/frontend

Înainte de primul job

Nu este niciun secret că nu poți să mergi pur și simplu într-o companie de IT, să te așezi la birou și să începi să lucrezi pentru foarte mulți bani. Înainte să te poți angaja, trebuie să dezvolți un set minim de abilități care să-ți permită să construiești site-uri și aplicații web.

După cum vedeți și în developer roadmap (imaginea de mai sus), piatra de temelie pentru orice programator web este reprezentată de:

HTML: Limbaj care îți permite să definești structura unui website (“aici vreau un buton”, “aici o să apară un tabel”, “în partea cealaltă avem un formular unde utilizatorii completează nume, prenume și data nașterii”).

CSS: Este folosit pentru stilizarea site-ului, adică pentru definirea culorilor, fontului de scris, mărimii textului, poziționarea elementelor etc. (butonul de “Adaugă în coș” are background albastru și scris alb, cu font de 14px).

JavaScript: Transformă un site static într-un site interactiv. Îl folosim ca să definim ce se întâmplă când un utilizator dă click pe un buton sau când vrem să verificăm dacă adresa de email și parola introduse de utilizator sunt corecte. Pe scurt, fără Javascript site-ul nostru doar afișează informații, dar “nu face nimic”. Asta poate să fie util dacă avem un site de prezentare (de exemplu cu poze și informații despre o destinație turistică), dar nu este suficient dacă vrem ca turiștii să poată cumpăra bilete pentru atracțiile turistice sau să posteze review-uri etc.

Abilitățile de mai sus (HTML, CSS, JavaScript) intră la categoria “hard skills” (adică abilități tehnice, care îți permit să realizezi lucruri concrete). Pe toate le vom studia în cadrul cursului nostru. Îți recomand să verifici structura cursului, iar dacă sună tentant, să completezi formularul de înscriere.

Pe lângă acestea, dat fiind faptul că în IT lucrezi cu diferiți colegi și clienți din toată lumea, limba engleză este aproape obligatorie. Există și companii mici care lucrează doar pentru clienți din România, unde vei putea scăpa fără să cunoști engleza, dar este păcat să te limitezi singur. Nu-ți cere nimeni să cunoști gramatica la perfecție, dar trebuie să te descurci când vine vorba de o conversație cu un coleg sau de un email.

Tot în categoria hard skills, pe lângă limbajele de programare, intră și cunoașterea diferitelor tool-uri folosite în industrie. Te poți gândi la ele ca la programele pe care le folosești deja ca să fii productiv. De exemplu, Word pentru scrierea textelor, Excel pentru calcule financiare sau Outlook/Gmail pentru trimiterea e-mailurilor. Pentru un Frontend Developer la început de carieră, tool-urile de bază sunt:

Github: Un fel de Google Docs pentru cod (doar că ceva mai complex). La fel cum mai mulți oameni pot scrie într-un document în același timp, mai mulți programatori pot lucra împreună la o aplicație, iar codul ajunge într-un loc comun, unde este salvat în siguranță.

 – Jira: Folosit pentru Task Management. Te poți gândi la el ca la o listă cu toate lucrurile pe care trebuie să le facă echipa, unde tai de pe listă câte un lucru pe măsură ce-l finalizezi. Probabil că n-o să-i vezi rostul la început sau poate chiar o să te enerveze, dar Jira este util pentru oamenii care coordonează proiectele și care trebuie să se încadreze în termene limită.

– Visual Studio Code, Webstorm sau alt editor de text/IDE (Integrated development environment): Dacă ai mai scris până acum o linie de cod evident că înțelegi de ce programatorii nu scriu codul în Word sau Notepad. Există dezbateri întregi pe tema “Care este cel mai bun IDE ?”, iar eu îți recomand să încerci mai multe și să vezi care îți place cel mai mult.

O altă categorie de competențe este cea de Soft Skills. Aici intră abilitatea de a lucra în echipă, de a comunica în mod eficient, de a te descurca în situații stresante etc. De multe ori oamenii ignoră aceste abilități și se concentrează foarte mult pe cele tehnice, dar adevărul este că lucrăm în echipe, iar ca să fim programatori buni trebuie obligatoriu să fim și colegi la fel de buni.

După cum vezi sunt destule lucruri de învățat. Când consideri că le stăpânești pe majoritatea destul de bine este momentul să te gândești la primul job.

Internship/Stagiu de practică

Experiență anterioară: 0 (nu se cere experiență)

Hard skills: HTML, CSS, JS + engleză + tool-uri (Github, Jira, un IDE)

Soft skills: Abilități de lucru în echipă și comunicare

Așteptări de la tine: Ești aici să înveți. Așteptarea de la tine este să depui efort și să întrebi de fiecare dată când nu înțelegi ceva. Nu există întrebări stupide și nu se supără nimeni când spui că ceva nu îți este clar.

Durată: De obicei 3 luni, dar variază în funcție de companie

Salariu: De la minimul pe economie și până la 4500 RON

Internship-urile sunt cel mai de jos nivel de la care poate să pornească un programator în cariera sa. Cel mai adesea, studenții sunt cei care aplică la astfel de programare pe perioada verii, dar asta nu înseamnă că programele de internship nu sunt deschise oricui vrea să învețe.

Scopul unui internship este să absorbi cât mai multă informație și să te formezi, nu să produci bani pentru companie. Într-o companie bună vei avea un mentor care te va sprijini și te va ajuta să înveți și vei lucra împreună cu alți interni. De regulă, durata unui internship este de 3 luni, la finalul cărora compania îți poate propune să rămâi angajatul lor pe o poziție de Junior Frontend Developer (evident, pe un salariu mai mare decât în cele 3 luni de Internship).

Ce înveți pe durata unui internship ?

Printre altele, vei învăța să lucrezi cu un framework. În ziua de astăzi, ca să dezvoltăm aplicații complexe cât mai rapid și calitativ, există o mulțime de framework-uri. Ele se bazează tot pe HTML, CSS și Javascript, dar ne permit să reutilizăm codul pe care l-am scris deja și ne obligă să respectăm niște standarde de calitate. Cel mai folosit framework de frontend la momentul actual este React.js (https://reactjs.org/), dezvoltat de Facebook (acum Meta), pe care îl vom studia în profunzime în cea de-a 2-a parte a cursului nostru.

 De cele mai multe ori, după stagiul de practică vei primi propunerea din partea companiei să rămâi pe termen lung ca Junior Frontend Developer. Asta e momentul în care, după ce te bucuri că munca ta a fost apreciată, trebuie să te întrebi dacă experiența ultimelor luni a fost una plăcută pentru tine și dacă îți vrei să rămâi în companie sau nu.

Junior Frontend Developer

Experiență anterioară: <1 an (o persoană fără experiență sau eventual cu un internship de câteva luni)

Hard skills: cerințe Internship + să cunoști un framework la un nivel rezonabil.

Soft skills: Abilități de lucru în echipă și comunicare

Așteptări de la tine: Ești tot în cadrul unui proces de învățare, dar începi să ai și responsabilități. Vei avea de rezolvat task-uri simple și de dezvoltat funcționalități mici, sub îndrumarea colegilor cu mai multă experiență.

Durată: 1 – 3 ani

Salariu: Întrucât poți să rămâi Junior mai mulți ani, salariul variază între 4500 RON și 7000 RON. Cu cât ai mai multă experiență, cu atât salariul este unul mai bun.

Unii oameni încep direct pe o poziție de Junior, în timp ce alții trec mai întâi printr-un internship de câteva luni. Aceasta este etapa în care înveți cele mai multe lucruri și capeți încredere în tine. Lucrurile teoretice pe care le-ai studiat capătă sens și începi să prinzi încredere în tine. Până la urmă, cu ajutor din partea colegilor cu experiență, te descurci să rezolvi sarcini simple, iar codul scris de tine ajunge parte din aplicație. Tot acum programatorii confortabil cu munca în format Agile (sprint-uri cu o durată de 2-4 săptămâni, task-uri estimate în storypoints, ședințe precum Daily Standup, Demo, Retrospective, Grooming etc). A doua parte a cursului nostru se va desfășura în format Agile pentru ca vouă să vă fie mai ușor să vă adaptați la modul de lucru din industrie. Nu este greu, dar necesită o perioadă de acomodare.

Vei rămâne Junior developer o perioadă, până când atât tu, cât și compania considerați ca te-ai dezvoltat suficient cât să ajungi Middle Frontend Developer. Totuși, nu este nicio grabă.

Middle Frontend Developer

 Experiență anterioară: 3-5 ani 

Hard skills: Deja începe să conteze mai mult să aprofundezi lucrurile pe care deja le cunoști la un nivel de bază. 

Soft skills: Abilități de lucru în echipă și comunicare

Așteptări de la tine: Diferența principală față de poziția de Junior este că acum lumea se așteaptă de la tine să poți lucra independent. Vor exista momente când vei mai avea nevoie de ajutor din partea colegilor, dar în majoritatea cazurilor poți să iei o funcționalitate de dimensiune medie și să o dezvolți fără “să te țină cineva de mână”. 

Durată: în medie 2 ani, dar depinde foarte mult de tine. 

Salariu: 7000 RON – 10.000 RON.

Acum ești un programator cu experiență deja. Ai contribuit la dezvoltarea mai multor aplicații, ai lucrat cu o gamă variată de clienți din țări diferite și ai încredere în tine și în abilitățile tale. Uneori te lovești de task-uri mai dificile, dar acolo unde nu găsești singur răspunsul, apelezi cu încredere la colegii de muncă. Poți merge încrezător la un interviu să povestești despre cum ai dezvoltat aplicații folosite de milioane de utilizatori, dar mai ales, poți să vorbești în detaliu despre subiecte mai grele precum securitatea unei aplicații web sau accesibilitate (construirea unui site care să poată fi folosit și de persoane cu diferite dizabilități).

Senior Frontend Developer

Experiență anterioară: 5+ ani de experiență

Hard skills: experiență cu mai multe framework-uri, librării și tool-uri. Poți să faci o comparație între ele și să recomanzi cele mai bune alegeri pentru fiecare proiect în parte.

Soft skills: Abilități de lucru în echipă și comunicare

Așteptări de la tine: Programatorul senior este cel care nu doar că-și face munca foarte bine pe cont propriu, dar este capabil să fie mentor pentru ceilalți colegi.

Durată: oricât 

Salariu: 10000+ RON

Fără să-ți dai dea seama, anii au trecut, iar acum ești un Senior Frontend Developer. La tine vin colegii cu mai puțină experiență când au nevoie de ajutor. Tot tu ești cel care are inițiativă, care vine constant cu idei de îmbunătățire a modului de lucru sau a calității codului. Colegii și clienții știu că se pot baza pe tine și că în general când spui ceva, atunci chiar așa este. Cu toate acestea, mereu avem lucruri noi de învățat. Îți recomand să rămâi la curent cu cele mai noi tehnologii apărute, să participi la conferințe și citește articole tehnice.

Ce urmează după Senior?

Dacă până acum evoluția în carieră a fost una clară și liniară: Junior –> Medior –> Senior, de acum alegerile se ramifică în funcție de preferințele tale.

Unele persoane vor ajunge Team Leader, altele Full Stack Web Developer sau Software Architect. Probabil unii dintre voi veți decide că vă place mai mult să lucrați cu oamenii decât să scrieți cod și veți merge către Management. 

Lumea este mare și opțiunile sunt nelimitate.  De la Freelancer sau CTO, ai ce face fără să te plictisești o viață întreagă. 

Despre evoluția după Senior vom discuta într-un articol viitor. Dacă aveți alte subiecte care vă interesează în mod special, lăsați în comentarii.

Author avatar
Alexandru Tapirdea

Adaugă un comentariu:

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *