ITSimplified: Cât de tare e un programator de la Facebook/Google/Microsoft?

În 2009, Brian Acton, unul din fondatorii WhatsApp a fost refuzat de Facebook în urma unui interviu de angajare.

Foarte mulți au considerat-o a fi una din cele mai costisitoare greșeli ale Facebook. Eu unul nu o consider deloc așa, ci o consider o oportunitate de a cumpăra, cinci ani mai târziu, ceva ce a meritat din punctul lui Facebook de vedere un miliard de dolari.

Un alt aspect e important aici: ce s-ar fi întâmplat dacă nu ar fi fost rejectat la interviu? Ce ar fi reușit să realizeze în interiorul Facebook? Cât credeți că a câștigat în Facebook cel care a făcut Messenger-ul, cel care conduce „divizia”? Îi știți măcar numele? Credeți că a făcut (la banii lui Facebook) mai mult de o cifră cu 7 zerouri? Eu mă îndoiesc. Asta pentru că înțeleg ceva mai bine acum cum funcționează o firmă mare, și de ce e imposibil să fii un star-developer în interiorul unei astfel de firme. Este Brian Acton un programator bun? Habar nu am, dar în mod sigur e sau a devenit un antreprenor abil. În momentul în care Facebook l-a refuzat, asta s-a întâmplat pentru că în dubiu erau calitățile lui de programator, nu abilitățile lui antreprenoriale.

Pentru că programatorii care ajung la firmele astea mari trebuie să dovedească faptul că sunt foarte buni programatori, cu multă experiență, cu profunzime în gândire. Nu oricine ajunge programator la o firmă de genul acesta, și în mod sigur pragul pentru admitere e foarte înalt. Azi, de exemplu, e foarte greu să fii luat în seamă dacă nu ai un portofoliu serios, împănat eventual cu multe proiecte open-source pe github sau în locuri similare.

Am putea presupune că programatorii din interiorul firmelor mari sunt foarte tari, însă până acum am vorbit numai despre pragul de la intrare. Ca să intri trebuie să dovedești că poți sări acel prag, însă odată trecut acel prag calitățile de programator încep să se tocească, fiind înlocuite cu alte măiestrii. Motivul pentru care se întâmplă acest lucru este faptul că nu sunt esențiale calitățile de scriitor de cod. Ele sunt foarte repede eclipsate de așa numitele „soft-skills”, calități ce țin de integrarea în echipă, de viziune de ansamblu, de capacitatea de înțelegere.

Primul șoc pe care îl are programatorul în firmele mari este că toate lucrurile pe care el crede că le va implementa, algoritmii complecși despre care a discutat la angajare, design-ul aplicațiilor, tot e deja făcut. Lucrurile merg și merg bine, pentru că de-asta firma aia e firmă mare. Așa că primul șoc va veni de la primul task, care va fi mult sub orice a mai făcut până atunci. La fel cu al doilea sau al treilea task, pentru că în mare parte munca de programare e făcută din lucruri pe care le-ar putea rezolva și un elev de clasa a IX-a dacă i se explică clar ce trebuie făcut. Șocul de substanță pentru mulți dintre tinerii angajați care nu au mai lucrat în firme mari până atunci e dat de cât de prost e făcută implementarea programelor care fac lumea IT să funcționeze.

După câțiva ani de programat într-o firmă mare e imposibil să nu te rutinezi pentru că 90% din lucrurile pe care le faci ar merita făcute de un junior, copiii proaspăt ieșiți de pe băncile facultăților, cei care cred că adevărata măiestrie stă în datul cu dalta și ciocanul fără să le pese de imaginea de ansamblu. Așa că în câțiva ani de programat într-o firmă mare începi să te uiți în alte părți, spre zona de management, spre zona de design, încep să îți placă conferințele și să discuți despre teme mai largi, mai generale.

O carieră lungă de programator într-o firmă mare e nocivă. Esențial e să crești, să ajungi în cele din urmă în management. Cel mai probabil, cu experiența cumulată în firma mare îți vei construi propria firmă cu ideile tale proprii, multe inspirate din cultura organizațională a mamuților pe care îi părăsești.

Dar ca și calități de programator, ceva se ‘strică’, ireversibil. Devine mult mai neimportant codul, mult mai neinteresant programul în sine, și mult mai importantă imaginea de ansamblu. Așa că suspiciunea mea pe care încă nu mi-am confirmat-o e că programatorii de la firmele mari sunt niște programatori mediocri puși în probleme ceva mai dificile din cauza circumstanțelor (firmă mare, proiecte enorme cu milioane de clienți și așa mai departe). Cei care rămân buni rămân pentru că se concentrează pe un subiect din ce în ce mai îngust.

Invariabil, lucrurile care te-au făcut bun la angajare nu te pot ține în jobul respectiv. De altfel, interviul acela de angajare e doar un punct pe un checklist; cred însă ferm faptul că oamenii din spatele procesului de achiziție de resurse umane înțeleg că ei aduc doar oameni care „au fost la un moment dat buni la chestia asta”, cu știința clară a faptului că se vor transforma în programatori mediocri.

O concluzie. Un programator într-o firmă mare nu e întotdeauna mai bun ca unul din afară, însă în mod cert va avea un plus de viziune, asta în afară de cazul în care devine o lipitoare și va rămâne mediocru, genul acela de mediocritate care însă te va face neangajabil în 5-10 ani. Însă nu, programatorii de la firmele mari nu sunt neapărat niște programatori extraordinari, și e posibil ca după o experiență la Google, Facebook sau Microsoft oamenilor să le fie din ce în ce mai greu să se adapteze la lucrul în echipe mai mici, cu resurse mai mici și pe proiecte unde calitățile individuale sunt mai importante.