De ce au firmele din IT criza de “programatori”?

Tot citesc în stânga și dreapta că nu se găsesc programatori buni. Mă uit pe site-urile de locuri de muncă și văd o mulțime de poziții libere. Ba mai mult, pentru o parte din ele, m-am și dus la interviuri. Ce se întâmplă în realitate de „lumea nu își găsește oameni”?

Cum se desfășoară interviurile pentru un job de programator?

Multă lume scria că a aplicat la un anume post și a fost la interviu și nu a primit răspuns cu lunile după. Lucrul acesta este fals. De la toate interviurile am primit răspuns într-o săptămână după ce am fost la ei.

Doar o singură firmă nu mi-a mai scris, deși nu o iau ca exemplu fiindcă am plecat de acolo știind, ambele părți, că nu am să lucrez pentru ei.

Tot ce am făcut a fost să trimit intenția mea pentru un post pe site-ul anume și majoritatea mi-au scris un e-mail sau m-au telefonat pentru a stabili o primă întâlnire.

Ce fac greșit firmele la prima întâlnire de interviu?

În marea majoritate a cazurilor primul interviu e marketing. Te țin să-ți povestească despre firmă, despre echipă, despre tot felul de facilități pe care le-ai avea dacă lucrezi pentru ei. Adică: marketing.

Acest marketing nu interesează programatorii pragmatici. De ce? Pentru că:

  1. Nu se poate verifica. Dacă firma zice că are contract pe 10 ani de 5 milioane de euro, tu unde poți să verifici așa ceva? Nu ai. Trebuie să te bazezi pe încredere că ce spun e adevărat. Și de obicei e, însă:
  2. Nu interesează. Ca și potențial client al serviciului numit „căutăm programator” (denumire de prost gust, dar treacă), pe tine te interesează ce trebuie să faci pentru firmă. E complet irelevant ce reducere la sală îți dau sau ce programe pentru copii cu dizabilități a făcut firma-mamă. Tu nu ești angajat de-al lor.
  3. Un om serios nu se angajează de dragul renumelui. Că e Google sau Microsoft sau ceva firmă mică și obscură. Contează proiectele și contează renumerația.

Și că tot vorbeam de renumerație, te mai întreabă aici cât vrei. Complet irelevant în acest moment al discuției pentru că ție nu ți s-au dat datele problemei: Ce trebuie să faci pe postul cutare.

Pasul 2, interviul tehnic

Spre surprinderea mea la partea tehnică întrebările sunt identice indiferent la ce firmă te duci. Identice și luate de pe net. Așa că dacă te uiți pe 10 site-uri cu intrebări pentru interviu, șansele sunt să fii pregătit pentru un interviu.

Marea problemă a interviurilor și esența problemei: De ce nu se găsesc programatori calificați?

Aici e partea interesantă. Te duci cu idea că vei vorbi despre o tehnologie. Că scria în titlul anunțului: căutăm oameni pentru tehnologia Pisică. Numai că, după ce întrebările astea de duzină sunt epuizate, încep întrebările despre alte tehnologii: Câine, Rață, Șoarece, Cal.

Unele au de-a face cu tehnologia inițială, altele nu.

Problema nu ține de dificultate, sau de nepotrivire între ceea ce așteptai și ceea ce întreabă, ține de un oarecare simț al penibilității.

Ok, știi tehnologiile astea, ce țin de alte posturi, de alți oameni. Te simți prost că iei mâncarea altuia și te simți prost fiindcă trebuie să crești suma de bani pe care o ceri pentru că ajungi să faci de unul singur munca a 2, 3 oameni. Sau așa reiese.

Și asta e cercul vicios: arăți că știi și ceri pe măsură. Ca apoi, pentru mine așa a fost, te lovești de răspunsul din urmă: Sunteți bine pregătit dar nu putem oferi suma cerută.

Problema cu tehnologia actuală: Supraspecializarea

Momentul în care să știi un limbaj de programare era criteriul necesar și suficient a trecut. Din motive de eficiență acum la modă sunt „framework-uri”. Și aici stă marea problemă: există o multitudine de astfel de comasări de funcții toate sub umbrela unui termen simplu, însă fiecare firmă lucrează cu altul.

Să luăm PHP-ul, în acest moment sunt 28 de framework-uri (http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP). Și fiecare firmă cere experiență în altul.

În momentul ăsta ai eliminat din start pe toți care știu acel limbaj de programare, dar nu framework-ul și pe toți cei care știu unul sau mai multe astfel de framework-uri din restul de 27. Și am întâlnit firmă care negru pe alb vroia să angajeze pe cineva care știa exact acel framework.

De ce nu se găsesc programatori/dezvoltatori software buni?

  1. Cerințe ce nu au de-a face cu piața. Oamenii sunt deja angajați. Să vină la tine înseamnă să aibă un motiv. Dacă deja sunt plătiți fără să știe ceva framework, de ce să-l învețe?
  2. Compensații ce nu au cum să acopere pregătirea unui om care are cunoștințele de supraspecializare cerute
  3. Lumea e din ce în ce mai dezinteresată de programare în general și din cauza asta
  4. Facultățile nu vor avea vreodată cursuri care să cuprindă astfel de subiecte. Din facultate vor ieși tot programatori care știu limbajul pur și atât.

La punctul 3 iau un exemplu simplu, un tutorial de dezvoltare Android. Primul clip din serie (seria de 200 de episoade se poate vedea aici: https://www.youtube.com/watch?v=SUOWNXGRc6g&list=PL2F07DBCDCC01493A) are peste 1 300 000 de vizualizări, pe la jumătatea numărul este pe la 50 000. Tutorial din 2011 care are, deci, 3-4 ani de existență.

Lumea nu e atât de interesată de domeniul ăsta. Știu oameni din jurul meu care nu s-ar apuca nici în ruptul capului să învețe fiindcă: e prea complicat. Chiar dacă ei învață lucruri de mii de ori mai complicate decât să scrii o aplicație.

Care ar fi strategia corectă?

Adevărata problemă e că firmele sunt leneșe. Am învățat și învăț tehnologii noi în fiecare lună. Timpul necesar între „nu știu nimic despre asta” și momentul când lucrez consistent dezvoltând o parte nouă a unui proiect rareori depășește 2 săptămâni.

O firmă inteligentă și-ar lua (și unele asta și fac) oameni care știu doar limbajul de programare, și atât, ar angaja un antrenor pentru 20 – 30 de dolari pe oră, și în 8 – 10 ore ar avea oameni care să lucreze în tehnologia anume. Atât de simplu.

Pe de altă parte am văzut anunțuri cu același job la care am fost și eu la interviu adăugat lună de lună până când nu se mai arăta nimeni interesat.

Interviul eficient pentru un programator/dezvoltator software

Surprinzător, am auzit de o modalitate excelentă pentru a testa un candidat. Fără întrebări fără rost din cele mai ascunse părți ale unui limbaj: să lucrezi pentru 2 – 3 ore împreună cu echipa din firmă la ce problemă actuală au de rezolvat.

În felul ăsta, pe lângă faptul că arăți exact ce știi și cum scrii codul sursă, vezi și care este atmosfera grupului în care poate vei ajunge.

11 thoughts on “De ce au firmele din IT criza de “programatori”?

    1. admin Post author

      Da. Însă gândindu-mă, o să păstrez greșeala :) Totuși varianta corectă e: remunerație.

      Reply
  1. sorin

    Ai atins puncte importante. La modul cum vad lucrurile:
    – companiile se tem sa investeasca in oameni (in invatarea juniorilor sau formarea seniorilor pe o alta tehnologie) pentru ca vine competitia si ii “fura” deja pregatiti. in felul asta o firma ii pregateste si altii ii atrag, obtinand un avantaj competitiv. asa ca strategia firmelor e sa angajeze oameni care se pregatesc singuri, fara interventia companiei, sau care stiu fix tehnologia dorita.
    – sunt superficiali in evaluare, nu au incredere in oameni
    – IT-ul s-a complicat si este in general evitat

    mai pe larg aici
    http://calciusorin.blogspot.com/2014/05/de-ce-nu-cred-in-criza-de-programatori.html

    Reply
    1. admin Post author

      Mersi de link. Sunt de acord cu ce spui cu mențiunea că totul văd că se reduce la cost. Am povestit și cu un britanic care mi-a vorbit o mulțime de câtă nevoie are de un om bun, i-am arătat ce am realizat, am acceptat și condițiile lui destul de jalnice, dar am zis să fac o faptă bună. Și după toate… a dispărut.

      Poate de aia am început să mă gândesc la o platformă prin care să testez seriozitatea și punctualitatea. Există neîncredere și dintr-o parte și din alta (pe lângă cele enumerate în ambele articole).

      Reply
  2. sms

    Chiar dacă ei învață lucruri de mii de ori mai complicate decât să scrii o aplicație. -> la ce te referi, mai exact? Ce fac oamenii aia?

    Reply
    1. admin Post author

      Doctorii învață biochimie, de pildă. Numai mecanismul de deplasare și de recunoaștere a gazdei de celulele albe e o carte în sine.

      Reply
      1. gogu ilie

        De unde stii ca doctorii invata biochimie? Te-ai uitat cumva pe programa facultatii de medicina?
        Ti-au spus doctorii, studentii?
        Adevarat ca se invata (se preda, mai bine zis) imunologie, dar d-ta crezi ca sunt multi care sa stie ce e acolo?

        Reply
        1. admin Post author

          Am de-a face destul de mult cu domeniul medical, studenți și spitale.

          Cât se învață la medicină e foarte mult comparat cu dezvoltarea software. Ca dezvoltator stau 2 ore și citesc documentația unui limbaj nou/tehnologii noi și într-o zi știu deja să fac o gramadă de lucruri cu ea (desigur, bazându-mă pe experiența anterioară). Însă ca medic nu văd cine ar fi luat în serios făcând la fel. O să particip la diferitele lor simpozioane și voi vedea care e pulsul educației continue.

          Însă una peste alta, în facultate nu am avut de învățat pe cât e de învățat la medicină.

          Și că vorbim de domeniul medical, spre deosebire de domeniul dezvoltării software, în medicina românească se pune accentul pe acoperirea greșelilor altora. În dezvoltarea soft din asta trăim: să descoperim greșelile noastre și ale altor programatori și să le corectăm. Spre deosebire de alte ginți, noi ne bucurăm din greșelile noastre și învățăm din ele.

          Reply
  3. dorinvieru

    Interesant subiectul.
    Eu le trimit soft care recunoaste partituri indiferent de calitatea imaginii.
    Si nu sunt softuri care nu se cer (http://www.musitek.com/, http://www.neuratron.com/) sau soft de OCR (http://www.xor.ro/servicii.php?pagina=captura_date).
    Dar daca nu ai ani de experienta in limbajul X, sorry. OK, dar algoritmii ce le prezint eu sunt 100% originali, nu sunt nu stiu ce engine-ui OCR sau OMR de pe net. Dar asta este, you must have … years of experience in…technology we need.

    Reply
    1. admin Post author

      Da, îmi pare rău de cazul tău.

      După cum scria Sorin în articolul său, firmele au nevoie de oameni inteligenți dar care nu știu/nu vor mare lucru de la viață.

      Reply
  4. George Zacioianu

    Lucrurile in IT s-au complicat destul de mult la nivel de recrutare (HR). In 2016 agentiile de recrutare ar trebui sa dispara. Ideea e ca talentul trebuie cautat in … “sange” :) Eu vad o miscare generala de tip ‘refresh & reset’ in acest domeniu, un nou curent cu un nume ceva de genul “IT-Freedom”.

    Asta ar insemna ca poti sa dai masura valorii tale participand la inceput (perioada de tatonare: tu & noua firma) pe mici proiecte de tip didactic sau chiar real, prestand cateva ore pe saptamana “remote” sau la sediul firmei. Fara interviu, doar sa ta implici voluntar pentru o anume perioada de timp. Poti prezenta tu un proiect al tau sau poti rezolva probleme, parti, bug-uri din proiectele in lucru. Marea problema e ca nu exista minti deschise la un astfel de nou curent. O alta problema e rigiditatea, mediocritatea, lipsa de flexibilitate si viziune a managerilor din IT.

    Programul unui IT-ist (incepand din 2016 :)) va trebui sa fie foarte flexibil, sa poata acorda atentia necesara propriei lui vieti, familii, copil, sa fie lasat sa-si aleaga programul de lucru care i se potriveste cel mai bine, lucru onsite, la distanta, zile libere, etc. Eficienta actuala a programului invechit, care-l intalnesti la multe firme din IT, e de numai de 50-60% (real). Celalata varianta – flexibilitatea – poate ridica nivelul la 80-90%!. Legat de salarii – e foarte simplu: junior: 800-1500EUR, senior: 1500-3000EUR, valori nete!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *