Seniorul artificial

Desi Nicu este pe forum, dar este cam timid :slight_smile:

4 Likes

suna a “de nu ai x ani nu iti dam suma x”

Salariul e in functie de cunostinte si munca depusa nu pe titluri imaginare

In masura ce sunt deacord cu faptul ca mai toate companiile de outsourcing promoveaza lumea ca sa poata lua mai multi bani de la clienti, in aceeasi masura nu sunt deacord cu faptul ca tu, ca developer, sa nu-ti stii locul. Exemplu clar - eu. Am lucrat inainte la o companie de outsourcing unde am fost promovat ca senior - eu stiind inca dinainte ca nu sunt de nivel de senior, si uitandu-ma in jurul meu se vedea clar ca nu sunt la acel nivel.

Am decis sa plec la o companie de produs unde majoritatea developerilor sunt foarte buni si clar am fost incadrat pe o pozitie de medior. Eu niciodata nu am pus accent pe pozitii (in programare) dar tu ca developer ar trebui sa-ti stii nivelul, sa stii ce nu stii, sa te uiti in jur si sa faci o medie, o comparatie.

Am intalnit si persoane (tot la firma de outsourcing) ce se bateau cu pumnu in piept ca sunt seniori, seniori+ si defapt nu i-as fi incadrat nici macar la un medior decent. La un momendat s-au decis sa plece, la unele companii (care se respectau) au luat mare sut in gura cu realitatea DAR unde au ajuns s-a mers pe premiza de ce a zis @ionutdev si faptul ca ‘ah are x ani ii dam x salariu x incadrare’.

Concluzia -> are balta peste pt orice tip de developer, atat in romania cat si inafara tarii. Inca nu s-a ajuns in domeniu sa se cearna riguros. Probabil in 5-10 ani o sa se mai schimbe lucrurile.

1 Like
1 Like

Cu o corectie.

Asa ceva n-are ce cauta la chestiuni legate de expertiza.
O fi psihologia in mare parte pseudo-stiinta, iar amatorii de psihologie care baga asemenea ‘diagnostice’ fiind mai rau decat ghicitoarea in carti cu zero clase, dar totusi ar fi bine sa se abtina in a scoate perle de-astea fara a lectura macar articolul original: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.64.2655&rep=rep1&type=pdf
Se poate observa ca in studiul original:

  • nici vorba de nivel apropiat de expertiza, fiind mai degraba vorba de mediocritate si submediocritate, eventual cu ceva peste mediocritate, dar aia nu exagereaza asa de mult in estimare
  • exagerearea nu e pana la nivel de expertiza, ci doar pana la putin peste mediocritate
  • esantionul nu e deloc reprezentativ, fiind format din studenti (“Cornell University undergraduates”) poate cu bursa, poate cu parinti cu multi bani, pentru a plati studiile odraslelor. A generaliza asa ceva la intreaga populatie e o tampenie turbata. Nu cred ca trebuie sa explicitez de ce nu to(n)ti au aceeasi atitudine ca si copiii prosti de bani gata.

Treaba asta cu Dunning-Kruger e cam ironica, fiind aruncata de obicei de indivizi cu nivel de expertiza in asta cam egal fix cu zero, neavand macar bunul simt sa se uite peste articolul ce le (ne)fundamenteaza aiureala.

1 Like

Nu-s putine astfel de companii, din pacate. Sa cresti “artificial” nivelul developerilor pentru a-i vinde scump este o practica des intalnita. Cel mai frustrant este, cum zice articolul, pentru angajatul care vrea sa plece la un moment dat dar nu poate pentru ca nu-i prea da nimeni salariul pe care il cere la cunostintele pe care le are. In loc sa primeasca feedback onest, i se invoca tot felul de motive, iar omul acela nu are sansa sa stie ce trebuie, de fapt, sa imbunatateasca.

2 Likes

Otoh, daca vrei sa fi onest și eficient cu treabă asta, îți asumi situația, și te prezinți că atare. Nu-i nicio regula că titlul din companie trebuie sa fie același cu cel de pe LinkedIn.

Daca lucrurile sunt OK într-o companie, compensația e proporțională cu valoarea adusă. Așadar dacă vrei să te duci într-o companie mai de produs, unde nu a avut loc un title inflation, s-ar putea chiar că un “mid-level” role sa fie mai OK că unul “senior”. Se vede asta de foarte multe ori la tranziția către companii FAANMG. Senior la startul/outsourcing de transforma in midlevel, Principal/Staff in senior, sau Director in Manager. Dar sunt alte lucruri - compensația, experiența care compensează.

1 Like

Întradevăr, problema cu Seniorul despre care povestesc în articol este că nu ajunge să-și cunoască adevărata valoare decât după ce trece prin niște experiențe neplăcute și niște șanse ratate.
Dar nici nu e treaba companiei angajatoarea să-l educe și nici măcar să-i dea un feedback real, dacă asta intră în conflict cu interesele proprii.

Din ce am vazut focusul e tot timpul pe tehnologii si experienta dar din punctul meu de vedere clasificarea ar fi asa:

  • architect - face prototipizari pe tehnologii complet noi
  • senior - se descurca cu aprox. orice task se iveste
  • medium - are nevoie de ajutor/directie, se descurca cu supraveghere minima
  • junior - nu stie nici pe ce directie sa apuce

Din cele de mai sus doar la arhitect mi se pare relevanta discutia cu privire la anii de experienta deoarece acolo va face diferenta in rest e vorba de atitudine, adaptabilitate si cunostinte acumulate pana in acel moment.
Am vazut programator senior dupa 2 ani de experienta dar care lucreaza pe o nisa anume fara o experienta variata cu limbaje si tehnologii.

3 Likes

senior = stie 2+ limbaje diferite, paradigme diferite
de ex java si python
sau oop si programare functionala

nu exista ca stii doar oop, faci asta de 15 ani si esti senior; poate pe hartie, dar nu e decat un titlu, nu o reflectare a realitatii; da, esti rapid si eficient cand trebuie sa codezi ceva in acelasi stil/stack; ce faci cand se muta firma de la monolitul tau de java la microservicii? esti iar junior, si o vreme vei face aplicatii containerizate care NU SUNT microservicii

in lumea reala solutiile la probleme complexe vin de cele mai multe ori in urma unei abordari inovatoare, pe care nu poti sa o ai decat avand astfel de knowledge considerat lateral

2 Likes

Nu stiu de ce unii se agita atat cu senioritate, inseamna ca esti batran pana la urma, am mai auzit vrajeala asta cu senior pe o nisa, vad ca unii chiar bun botul, nu esti senior, esti in cel mai bun caz specialist, sau competent, mai degraba pigeonholed

De ce doar 2+ si nu 3+ sau 4+ - unde anume se trage aceasta linie arbitrara.

Daca firma are nevoie doar de un programator de acest tip care sa liveze produse intre anumiti parametri atunci din punctul de vedere al firmei esti senior developer deoarece aduci plusvaloarea respectiva. Am vazut astfel de programatori care fac solutii enterprise pe C#/Java in general la firme de outsourcing, nu vad nici o problema cu titlul de senior developer in acest caz.

La asta am facut referire cand am zis despre adaptabilitate si atitudine. Sunt care reusesc sa se adapteze la noile cerinte caz in care raman iin continuare senior developer pentru firma sau nu.

Tin minte vremurile de acuma 10 ani cand se lucra in web development (php) si era o separare clara intre cine facea de exemplu partea frontend development si partea de backend. Era o separare clara de responsabilitati si fiecare era foarte bun pe nisa lui si asta sa schimbat dupa vreo 5 ani cand cel care facea doar frontend face si backend, cel care face backend face si devops dar nu am vazut o imbunatatire a calitatii produsului rezultat. Ca urmare cunostintele fiecaruia au fost diluate (nu ai cum sa dobandesti experienta in 3+ domenii diferite la un nivel acceptabil, de obicei invatau strictul necesar sa get the job done in domeniul care nu era cel principal de expertiza) si nu mai produc calitate si viteza la nivelul unuia care e focusat strict pe un singur domeniu.
Firmele au obtinut generalisti pe care pot sa-i mute in diferite pozitii cu o flexibilitate mai mare dar fara o imbunatatire a produsului rezultat.

2 Likes

poate este offtopic, dar mi se pare sugestiv :grin:

2 Likes

Presupun că motivul stă în faptul că sunt două paradigme la modă (OOP/FP)?

As mai adauga niste chestii in plus cum ar fi niste minime cunostinte de arhitectura si system design + 3-5 proiecte la care sa fii participat activ in aproape tot software development life cycle.

Cine se limiteaza la un singur stack, indiferent cat de rapid livreaza chestii pe el, este doar un Expert Beginner. Un articol interesant este asta:

E foarte posibil ca multi sa nu fiti de acord cu acest punct de vedere. E ok. Este observatia mea dupa 10 ani de dezvoltare software in mai multe roluri(junior, senior, lead).

P.S. Fara sa vreau sa par arogant, m-ar interesa si experienta celor care au convingeri si fac afirmatii mai strong asa…aici pe forum. @tekkie stiu ce experienta are :slight_smile:

2 Likes

Si eu as mai adauga ML (ca tot e mare cerere), devops, matematici avansate … unde ne oprim!?
Realistic vorbind nu vad pe cineva capabil sa acumuleze expertiza in toate aceste domenii si sa lucreze la un nivel inalt.

Ma gasesti ca pghoratiu peste tot (linkedin/facebook, …) am lucrat cu @anon31094663 vreo 7 ani pe unix/C development la inceputul carierei dupa aceea am trecut pe programare web, am facut backend/frontend folosind php/symfony am trecut pe js/node si de vreo 2 ani fac mobile apps cu Ionic per total 20 de ani lucrati in industrie.

3 Likes

mersi @iamntz de clarificare, fix la asta ma gandeam; am si formulat ca exemple, pt ca peste 5 ani le va zice altfel, va fi la moda altceva

mesajul meu era simplu: cine stie o singura paradigma, un singur mod de abordare a problemelor, nu poate fi senior, pt ca nu are nici macar deprinderea de a gandi in afara box-ului dat de acea unica paradigma pe care o stapaneste

2 Likes

Pana la urma, totul se rezuma la niste cuvinte. Firmele pot fi darnice cu cuvintele, nu e ca si cand ar da bani pentru ca le folosesc :slight_smile:

Ma mir ca nu exista unele care dau titlul ‘Master of the Universe’ dupa doi ani lucrati la ele.

2 Likes

Multumesc pentru specificatii si again, scuze daca pare “aroganta” dar formularea unei idei in scris poate fi controversata.
Atunci…nu stiu ce sa zic…doar ca eu sunt de alta parere.

Nu as merge mai departe la ML, etc. Eu vorbesc serios si ma mai uit si “peste gard” la ce procese de verificare si validare pentru devi au altii. Fortand un pic comparatia, din informatiile mele, companiile FAANMG iti testeaza 2 lucruri: capacitatea de rezolvare a unei probleme(algoritmica) si desenarea unui sistem cap-coada. Cu cat senioritatea este mai mare cu atat partea de system design este mai importanta.

Din punctul meu de vedere nu ai cum sa dobandesti acele cunostinte decat daca ai lucrat in suficient de multe proiecte, eventual cu mai multe paradigme si/sau limbaje de programare.

Si da…e posibil sa fie nevoie de 10 ani sa ajungi acolo.

De ce crezi tu ca majoritatea companiilor de produs din vest cauta mai degraba generalisti? Oare cati java developeri cauta google, de exemplu. Cati C developeri cauta Microsoft? Poate fortez exemplul desi nu cred. Si in Romania e fix acelasi trend si anume, companie de produs cauta software developeri/software engineers care sa stie sa scrie cod intr-un limbaj cunoscut, sa stie sa rezolve probleme cu acel limbaj si sa aibe cunostinte de baza de system design(sau cunostinte mai avansate de system design, depinde de senioritate).

As dori sa stiu si opinia lui @horia141 care din informatiile mele a fost sau este intr-o pozitie de hiring manager la o companie de genul asta.

2 Likes

pe mine ma bagati in ceata rau de tot cu discutia asta :)))) cred ca orice dev viseaza sa ajunga senior candva. Acum, ce cred eu ca inseamna senior:

  • te specializezi pe un stack, full stack senior (tehnologii backend/frontend, C#/Angular, Java/React, etc), participi la proiecte de diferite tipuri, rezolvi problemele intr-un timp mai scurt, optimizari, etc. In cazul asta, daca ai proiecte complexe si lucrezi cu spor zi de zi, cred ca in 3 4 ani poti sa excelezi intr-o tehnologie. Datorita complexitatii proiectelor, mai mult ca sigur capeti si ceva experienta pe partea de devops. Un senior frontend trebuie sa aibe habar cat de cat si despre backend, pentru ca interactioneaza, iar un senior backend (include db) la fel, trebuie sa aibe ceva cunostinte de frontend si devops.
  • schimbi stackurile la 2 3 ani, dar la fel si aici, complexitatea proiectelor e cea mai importanta. Daca ai fost 2 ani C# developer si apoi incepi sa lucrezi in Java, pe acelasi tip de proiecte, e destul de greu sa avansezi in cunostinte, o sa fii doar cineva care stie sa scrie “Hello world” in mai multe limbaje.

iar “seniorul” pare doar o titulatura, pe care multe companii o dau in functie de cati ani ai intr-un anumit limbaj.

ca experienta personala, dupa cum spune @tekkie eu ar trebui sa fiu senior pentru ca:
am lucrat 2 ani cu C# (oop) dupa care am schimbat in Scala (oop/fp), deci stiu sa lucrez in 2 limbaje diferite, 2 paradigme diferite. Dar, eu am aflat ca javascript este limbaj functional abia cand am ajuns sa lucrez cu Scala … deci am multe lipsuri. Asa ca, cineva care incepe cu Java Spring/React deja lucreaza cu 2 paradigme diferite, oop pe backend si functional pe frontend. Daca nu ai proiecte diferite, in limbaje diferite in spate … e greu sa te numesti senior. CRUD’uri cred ca putem sa facem toti, in 10 limbaje, dar daca nu avem proiecte care sa ne forteze gandirea, tot juniori sau mid o sa fim pana la urma.

2 Likes