Cum stabilești dacă ești junior, mediu sau senior în limbajul tău de programare?

Pana la urma, asta era ideea postului ce inseamna junior,etc,. Ca altfel juniorul meu stie mai multe decat juniorul X, face sa lipseasca sensul “etichetei”.

Cand ai zis de incepator, ma gandeam la ceva inainte de junior.

1 Like

Iar asta este fix ceea ce lipseste, din definitii. Un nivel la care nu esti “junior”, dar totusi stii ceva si poti rezolva “probleme” in limbajul respectiv. For when you know the bare minimum, but not enough to singlehandedly solve big problems or develop for more than a month (anything; because of the lack of experience and techniques).

Ca si senior, ma gandesc ca trebuie sa stabilesti arhitectura si pattern-urile pentru proiect, un junior intelegand aceasta arhitectura si pattern-uri sa poata sa faca mentenanta/dezvoltare pe proiect sub indrumarea celui senior.

2 Likes

La o firma unde am facut eu practica de la cineva care nu are nici o notiune de php, intr-o singura luna s-a cerut asta :
Php basic, strict procedural functii de baza…
In a doua saptamana s-a trecut la orientarea pe obiecte
In a 3 a s-a inceput cu slim framework;
In a 4 a s-a inceput cu codeigniter, sa inteleg oare ca efectiv s-a cerut prea multe de la un incepator/practicant?

3 Likes

Pentru primele 2 săptămâni parcă e OK, dar eu nu cred că la 4 săptămâni de la primul contact cu PHP-ul poți să înțelegi un framework, fie el și simpluț, cum e CI.

2 Likes

Pentru un intership, cred ca e ok (practica ai facut-o fiind la facultate, nu?) Scopul unui internship e sa iti insamanteze niste idei/principii, pe care le poti folosi ulterior, chiar daca pe moment nu intelegi absolut tot (pentru asta iti trebuie ani de lucru).

1 Like

Nu are nici o treaba cu facultate, pentru ca :

  1. La facultate se face c++/java si .net practica pe care am ales-o eu e pur simplu ceva ce am optat, prin intermediul facultati am avut alt program de practica insa acela era doar un fel de seminar de 2-3 h saptamanal + teme pentru acasa, insuficientp pentru mine.
1 Like

E foarte bine. Eu recomand o abordare de training agresiv pentru incepatori, intinsa pe 3 luni. E bine sa se abordeze un proiect, acelasi, care in prima luna va fi implementat procedural, pentru acomodarea cu stilul de scris cod, cu un editor de text (neaparat sa NU fie IDE, ci sa se vada elementele de baza).

Apoi in a 2a luna recomand reimplementarea aceluiasi proiect folosind un framework light. Da, codeigniter e foarte bun pentru asta, in principal pentru ca e foarte simplu, si apoi datorita sistemului de documentatie care permite sa tinem mai putin de mana invatacelul, pentru ca e totul detaliat in docs.

Neaparat in a 3a luna eu recomand atingerea subiectelor de deployment, impachetare cod, etc. Pentru ca e important ca si cei aflati la inceput sa vada ca lucrurile nu se termina cand au scris codul (functionalitatea), ci abia acolo incepe.

5 Likes

Rangul de “Junior” ,“Senior” etc… trebuie sa il obti la una din firmele la care ai lucrat/ lucrezi sau il poti obtine pur si simplu pe baza de experienta?Intreb asta pentru ca la mine in contractul de angajare nu scrie cum ca as fi programator junior sau ceva, scrie ajutor programator… din cauza ca nu am inca facultatea terminata.

Experienta. Sau le obtii de la un senior (in sensul de la sfarsitul postului).

Dar programatorii capabili (si seniori sau aproape seniori) sunt oarecum reticenti in a se numi seniori, exceptand cazul in care sunt constransi de anumite nevoi, sa faca asta (spre exemplu realizeaza ca trebuie sa fi lucrat ca senior pe cartea de munca, pentru cazurile in care HR-istii nu sunt acompaniati de un programator cat mai aproape de senior, in cautarea unui candidat pentru postul de senior).

Programator mediu devii dupa, in medie, 3 si 6 luni de lucru in domeniu, in cadrul unui job, ori pe proiecte.

Junior esti atunci cand ai insuficienta experienta.

S-a mai mentionat pe-aici o alta definitie, care consider ca este mai concreta:

  • Junior: Nu stii mult si nu stii ce sau unde sa cauti ce nu stii. Nu stii ce nu stii, 1 - 3 limbaje de programare diferite.
  • Mediu/Intermediate: Stii ceva si stii ce sau unde sa cauti ce nu stii. Stii ce nu stii. Minim 3 limbaje de programare diferite
  • Avansat/Ninja/Rockstar/Unicorn/Zombie: Stii prea mult si incepi sa urasti jobul, dar inca il faci cu placere. Stii suficient din orice, precum si unde sa cauti, in caz ca se intampla, printr-o minune, sa nu stii ceva din dimeniul tau. Minim 9 limbaje de programare diferite.
  • Senior/Guru/Expert: Avansat + poti conduce o firma de unul singur, de la contabilitate, la chestii legale, programare, system administrator, business management, facut curat, ninja rockstar unicorn zombie programmer. Toate joburile mentionate anterior, in acelasi timp.

Eşti senior când încasezi un salariu de senior. Ideal e să lucrezi pentru o compania care nu se ocupă de IT şi preferabil e să ai un manager care să nu se priceapă la IT. Apoi, totul depinde de “social skills”.

1 Like

Unii cred ca ani de experienta te fac senior, degeaba ai 10 ani de experienta si scrii code spagheti, eu prefer mai bine sa lucrez cu un junior care stie oop si design patterns.

1 Like

SI plata tot ca un Junior o preferi :)) ?

2 Likes

Man eu nu sunt boss, nu dau banii, sunt angajat, eu spun cu cine prefer sa lucrez.

2 Likes

7 Likes

Mai scrie cineva spaghetti code? La firmele cu care colaborez nu mai întâlnesc persoane care să programeze, ce să mai zic de modul în care scriu codul?

Singura persoană care mai scrie, scoate 10-15 linii la 2 săptămâni.

1 Like

Asta probabil la o firma romaneasca fomista dupa profit unde trebuie un om sa faca de toate. Insa din fericire nu sunt multe astfel de mizerii.

1 Like

Din ce am vazut eu i-as clasifica cam asa:

  • Junior (incepator) stie programare dar nu prea stie ce sa faca cu ea, nu vede solutii, nu stie sa explice, vede detalii marunte de implementare in care se pierde. Trebuie ghidat.
  • Mediu, are ceva experienta de programare, vede niste lucruri dar nu mare lucru, UX/UI cam de doi lei. Nu intelege (bine) necesitatile clientului. Scrie cod care doar rezolva treaba. Scrie in limbajul pe care il stie, pentru orice chiar daca se preteaza sau nu.
  • Avansat, intelege ce vrea clientul si ce i se potriveste, intelege sa aplice tehnologia si limbajul potrivit pentru taskul solicitat. Intuieste cam ce ar mai putea vrea clientul si isi lasa loc de extindere. Stie sa transforme o problema descrisa prost intr-o solutie buna. E mai mult sau mai putin poliglot.
  • Guru, ca avansatul dar in plus stie sa si predea (can speach and can teach).
6 Likes

Lucrez de cateva zile la un proiect pentru un client din Canada, desi sunt niste tehnologii complet noi cu care nu am mai lucrat WPF cu MVVM daca esti organizat si esti atent de unde iei si pui lucrurile obtii rezultate, solutia de visual studio contine vreo 50 proiecte, ca sa adaugi ceva in UI trebuie sa creezi clase in vreo 10 proiecte si totul sa se lege.

In fine nu sunt junior dar nici titlul de senior nu imi place, aspiratiile mele sunt de technical leader, trebuie sa mai lucrez la soft skills si sa mai citesc cate o carte tehnica.

1 Like

Meta question: how can anyone define any of these “classes” without venturing into pure speculation - I mean I can define what a teacher or a postgraduate is but what the hell do “guru, advanced and medium” devs. actually mean? formally if you want.

This is laughable at best, what’s next - cult leader programmer? - “He can also save your soul”.

1 Like