Ce detalii ar trebui să conțină un anunț de angajare?

Ii tot dai cu exemple extreme - chimie cuantica. Doar nu te astepti ca developerii si testerii sa fie doctori in chimie, pentru aia ai domain experts, business analysts si alte roluri care sa reduca gap-ul de domain knowledge. La fel cum nu m-as astepta ca un expert in chimie cuantica, sau si mai simplu, un medic, sa se faca dintr-o data programator. E o reprofilare profesionala pe care putini o cauta.

Cand ma refer la faptul ca domeniul conteaza, sunt 2 aspecte:

  1. Produsul sa fie intr-un domeniu cu conotatii pozitive pentru viata umana, mediu, etc. Am dat un exemplu simplu mai devreme: AI guided transportation vs AI guided weapons. De exemplu in Cluj e cunoscuta firma Betfair care plateste bine, dar care este ocolita de destui programatori din cauza ca se ocupa cu jocuri de noroc.
  2. Cunostintele de domeniu te ajuta sa intelegi mai in profunzime solutia, piata in care se adreseaza, ca sa poti sa vii cu idei de imbunatatire. Asta se invata greu, in timp, de-aia multe firme nici nu-si fac iluzii ca gasesc oameni cu experienta strict pe domeniul lor, mai ales cand e ceva de nisa. E trist ca programator cu experienta sa te intereseze doar taskul de azi, cel de maine, sa nu fii interesat de perspectiva de viitor a produsului in care lucrezi si sa nu cauti sa intelegi business-ul pentru care scrii cod.
3 Likes

Am lucrat prima data in domeniul IT-retail si acum lucrez in telecom.
In retail a trebuit sa am ceva cunostinte in domeniu, suficient cat sa pot implementa ceea ce s-a cerut. Am avut de implementat un mecanism de promotii pentru anagajatii unui lant de magazine. Am facut tot felul de rapoarte. Am avut nevoie sa intelg cate ceva de modul cum aplicatia de gestiune a magazinului proceseaza datele care veneau de la pos-uri, cum le agrega. Sa nu mai zic ca am prins si parte din marele proiect, jurnalul electronic, unde vedeam ca trebuia studiata legislatia plus aspectele tehnice.

Acum lucrez in telecom. Am fost surprins ca am nevoie de minime cunostinte in domeniu ca sa imi fac treaba, mai ales in domeniul operational. Mai ales cum sunt organizatae statisticile in fisirele de statisitic produse de echipmente, sau cu diferite scripturi.

A fost doar un exemplu, pentru ca e ceva la care ma pricep oarecum. Dar situatia e la fel in foarte multe alte cazuri.

Nu e nici un exemplu ‘extrem’. Sunt foarte multe cazuri unde e nevoie de domain knowledge si unde ‘programatorul java’ se poate uita ca boul decerebrat la poarta noua, pentru ca nu are notiuni elementare pe domeniul ala.

Degeaba ii ai daca vorbesc limba chineza pentru ‘programatorul java’. Tot n-ai prins ideea, nu?
Si ca sa ii scolesti sa vorbeasca aceeasi limba dureaza mult mai mult decat sa invete java.

Angajatorul fraierestean: Sa stie java, ca-l scolim noi in chimie cuantica, mecanica fluidelor, whatever.
Angajatorul care si gandeste: sa fie ok la programare si bun si pe ‘domain knowledge’. Nu trebuie sa stie limbajul X particular si libraria Y bloatware particulara, ca poate sa le invete.

Eu lucrez in fintech, si pot sa zic ca cunostiintele de domeniu sunt foarte importante mai ales pt ca specificatiile de multe ori sunt gresite, team lead-ul nu era foarte strong tehnic dar cunostea domeniul mai bine ca business analist-istii, care de multe ori greseau din, nici nu prea aveau cu ce sa lucreze doar chestii vagi, vrem x in schimb altii, vrem - y care se bat cap in cap, nu neaparat tehnic, ci business.

Eu lucrez tot în fintech, și aplicația de acum e efectiv construită pe nevoie clienților precum Big 4 și cele mai mari corporații din lume. Nu e domain knowledge de matematică/fizică, e domain knowledge de contabilitate, planuire și rapoarte pentru a scoate la iveală răspunsuri din date. Aplicația în sine e atât de complexă încât îți trebuie cam o săptămână să înțelegi cum faci modele pentru rapoarte simple, după vin feature-urile complexe care selectează datele în funcție de context, formule.

Fără un PO și QA bun ești mort ca developer. Cel mai mare challenge tehnic e permutatia de feature-uri care sunt afectate de fiecare schimbare. Matematica e simplă, matrici, formule și produsul cartezian.

La mate, fizică, chimie, grafică iei ecuația, o introduci în matlab/octave/numpy/geogebra, desenezi rezultatul pe un anumit input și îți dai seama ce face. Nu trebuie să îl inventezi… în cel mai rău caz rescrii un integral parțial sau sub altă formă.