​În orice job din domeniul IT prezentat pe platformele de recrutare, pe LinkedIn și pe site-urile companiilor de tehnologie, regăsim de cele mai mule ori un set comun de cerințe. Se caută specialiști care au abilități de gândire critică, cunoștințe de matematică, sunt atenți la detalii, au o gândire logică și structurată, au capacitatea de a înțelege și rezolva probleme complexe, au abilități de comunicare, studii tehnice și bineînțeles cunosc cât mai multe limbaje de programare.

Cum am ajuns programator Foto: Unsplash.com

Întrebarea de la care am pornit mai departe este cât de necesar este acest set complex de cerințe în această meserie. Poți deveni un bun programator doar dacă ai studiat programarea de la o vârstă fragedă și ai urmat o serie de studii de specialitate sau e un domeniu în care poți fi autodidact și poți astfel începe de la orice vârstă?

Pentru a înțelege mai bine care sunt opțiunile pentru cineva care vrea să pornească pe acest drum fără să urmeze o cale convențională, am discutat cu trei programatori din ING Tech care nu au urmat inițial studii de specialitate și pentru care programarea nu a fost prima carieră și nici prima alegere profesională.

Răzvan Șoneriu – Team Lead, echipa de Mobile Development

Răzvan ne spune că e parte din lumea programării de peste 8 ani și deși nu a început să își urmeze interesul în acest domeniu în facultate, conduce în prezent prima echipă de mobile din ING Tech România, care se ocupă de dezvoltarea unei aplicații de mobile banking pentru mai multe țări din ING, printre care Olanda, Belgia și Germania.

„Rolul meu în prezent este să cresc echipa, să mă sincronizez cu cei în poziția de product owner din țările pentru care dezvoltăm acest produs, scriu și cod aproape în fiecare zi, în Swift sau fac code review în Kotlin.”

El ne povestește că a urmat facultatea de drept și a lucrat în afaceri externe cam șapte ani, până când și-a dat seama că nu se mai regăsește în domeniu și nu mai progresează așa cum și-ar dori.

Mărturisește că a fost mereu interesat într-un fel sau altul de programare și prima oară l-a atras iOS, așa că în jumătate de an s-a apucat să studieze singur și să-și construiască o aplicație pe care să o urce în App Store. După ce a început să se joace cu câteva aplicații și a mai căpătat puțină experiență, a încercat și partea de freelancing.

„De atunci am început să îmi dau seama că mă atrage și mă pasionează domeniul și am căutat oportunități prin care să încep să lucrez și să învăț cât mai multe. Astfel, primul meu job în IT a fost la o companie care lucra pentru America și căuta un junior pe partea de PHP. Am muncit și am tras mult de mine în acest loc unde am învățat practic bazele pentru ceea ce fac acum.”

Ulterior, Razvan a ajuns la o agenție de branding ca project manager, dar unde a avut și șansa să ajute echipa de web design, preluând partea de scripting și ocupându-se tot mai mult de zona de dezvoltare. Apoi, a ajuns să lucreze ca programator de iOS la o firma mică, unde fiind singurul developer de iOS, a învățat extraordinar de multe lucruri și crede că această experiență l-a pregătit pentru ce a urmat în cariera lui.

A lucrat și pentru o bancă, unde a dezvoltat de la zero împreună cu echipa lui aplicația lor de mobile, pentru iOS și Android. După câțiva ani a reușit să devină team lead-ul acelei echipe.

Despre prejudecăți și facultate tehnică

„Am urmat o cale mai puțin convențională și nu regret că nu am făcut facultatea de automatică și calculatoare și poate în ochii unora am pierdut startul. Traseul pe l-am avut a fost al meu și cei șapte ani de afaceri externe m-au învățat niște lucruri pe care le folosesc și astăzi: cum să comunic mai bine, cum să îmi motivez echipa, cum să explic cât mai bine ceea ce gândesc etc.”

Răzvan ne precizează că acest drum neconvențional a fost interesant și le recomandă celor care poate se gândesc să se apuce de programare, să nu creadă ca au ratat vreun tren. El crede că dacă nu îți este frică să faci o schimbare în carieră și ești suficient de pasionat și curios încât să studiezi singur, oportunități vor exista mereu.

Și el a avut șansa să găsească companii care au fost mult mai interesate de ceea ce poate face, dincolo de facultatea urmată. Dacă poți trece un test tehnic și poți arăta că rezolvi o problemă și prin algoritmul tău ajungi din punctul A în punctul B, într-un final asta e ceea ce contează.

Pentru cei la început de drum

„Eu am început cu Objective C, unde tot managementul de memorie se făcea manual și asta m-a ajutat destul de mult. Așa am înțeles cum se fac alocările de memorie, retențiile, am trecut prin multe probleme și am ajuns astfel să le și înțeleg.”

El ne povestește că la nivel de limbaje a lucrat și cu PHP, .NET, jQuery, dar apoi s-a axat pe Swift și în asta excelează. A cochetat și cu C#, Kotlin și crede că într-un final înțelegerea conceptelor de programare e importantă, pentru că altfel diferența dintre ele este dată doar de sintaxe.

„Pentru cei la început de drum cred că cel mai important este să fie curioși, să aibă o gândire logică și o capacitate de a sparge o problemă complexă în mai multe probleme mai mici și simple. Programarea este ca o limbă străină din punctul meu de vedere, iar calculatorul ca un copil pe care îl înveți să facă lucruri mici care ajung într-un final să creeze un algoritm complex.”

Adrian Istrate – Development engineer în aria de Data Management

Adrian lucrează de 8 ani în IT și este în prezent DevOps engineer pe zona de Business Intelligence. În echipa lui are diverse task-uri, se ocupă de conexiuni la baze de date, de mentenanța platformei de care răspunde echipa lui, elemente de risc și updates, feature-uri noi.

„Scriu și cod, în Python, deoarece e necesar în rolul meu să scrii cod pentru a putea să înțelegi tot ecosistemul din spate. Pentru mine cel mai interesant aspect la domeniul în care lucrez este că mereu apare ceva nou și poți îmbunătăți constant ceea ce faci, e un domeniu dinamic.”

El ne povestește că la început a lucrat în câteva call-centers, apoi la o companie care pe atunci oferea servicii de internet și e-mail, iar primul job cu tangențe în IT a fost într-o echipă de suport, pe poziția de Sysadmin. Așa a ajuns să se joace cu un server de Gitblit în Java, să exploreze această lume și ulterior a trecut la o echipă mai specializată, în zona de application support. A învățat lucruri diverse de la cum să configureze un server să ruleze PHP, cum să facă un pipeline etc.

„Am explorat multe variante la companii din Cluj și din Brașov. Am făcut și un curs de administrare servere, unde mi s-a părut interesat că puteai crea scripturi pentru a replica niște setări din interfața grafică. Trebuie să recunosc că Linux, serverele Apache și PHP, deși mi-au plăcut, nu prezintă complexitatea de care am nevoie, așa că treptat am ajuns să lucrez cu servicii Cloud, cu baze de date, cu componente în aplicații. Astfel și în echipa actuală lucrăm cu programe cu disponibilitate cât mai mare și cu conceptul de back-up.”

Despre studii și oportunități

„Facultatea pentru mine nu are o contribuție semnificativă în dezvoltarea profesională pentru că văd o diferență între ce se predă și ce există în realitate. Dar pentru că m-am lovit de prejudecăți la diverse job-uri, am început o facultate tehnică și studiez în prezent matematică-informatică, sunt student în ultimul an.”

„Din punctul meu de vedere, job-urile din prezent nu folosesc neapărat cunoștințele predate la facultate. E clar totuși că facultatea pregătește în mare parte programatori, dar domeniul IT este foarte vast și complex și astfel nu poate acoperi toate lucrurile.”

Adrian ne spune că înainte de primul lui job a fost voluntar la o sală de calculatoare, în Brașov. Acolo a descoperit componentele calculatoarelor, cu Windows 98 și așa a ajuns să studieze Linux, să se joace cu tutoriale și cursuri pe zona de security. A avut și un proiect prin care a configurat o centrală telefonică pe Linux, folosind web servere. Crede că din acel moment i s-a deschis apetitul pentru astfel de provocări și pentru domeniul IT.

Căile neconvenționale ar putea aduce mai mulți oameni pasionați

El ne menționează că cei care nu aleg metoda clasică de a urma facultatea în domeniu, vin de multe ori cu o curiozitate, care devine pasiune și apoi aceștia își urmează traseul profesional în acea direcție, depunând multă muncă și efort. Adrian crede că e foarte greu pentru un elev să își descopere pasiunile de când e la liceu, mulți ajung să își descopere cu adevărat interesele, mult mai târziu.

„Cred totodată că o cale neconvențională ar putea aduce mai mulți oameni pasionați către domeniul IT, pentru că aceștia își iau din timpul lor pentru a studia și a descoperi, au multă dorință și ambiție pentru a ajunge la același nivel cu cei care au o pregătire tehnică. Practic, motivația lor e total diferită.”

El ne precizează că nu crede că există acest termen de prea târziu pentru a alege să lucrezi în IT și în programare. Resursele care sunt acum la dispoziția oricui sunt foarte multe: cursuri de știința calculatoarelor, online, la facultăți din toată lumea, developeri care au ajuns foarte buni și explică felul în care poți ajunge și tu acolo etc. Totul până la urmă depinde de capacitatea de învățare a fiecăruia și de dorința de a cunoaște ceva nou.

De unde poți să începi?

„Cred că dacă pornești de la zero, aș spune că e important să fii un om deschis la feedback, să ai abilități de socializare și să știi cum să te faci înțeles, să ai o gândire critică și să nu te plafonezi, să îți dorești să evoluezi. Domeniul IT te forțează mereu să crești și dacă vrei să îți lărgești orizonturile, trebuie să fii dispus să înveți constant, să nu stai pe loc.”

Adrian ne spune că ce a mers pentru el, nu merge pentru toată lumea, dar crede că înainte să te apuci să studiezi, e important să îți dai seama ce îți place. Să observi dacă îți place partea de algoritmică sau de design, partea de testare și descoperire de scenarii etc. și de acolo să începi.

Dana Georgescu – Java developer

Dana are o experiență de un an în programare și ne mărturisește că s-a lovit pentru prima dată de idea de a profesa în acest domeniu acum doi ani. În ING Tech, face parte dintr-o echipa care dezvoltă un serviciu de autentificare și autorizare.

„Fac mentenanță de cod, iar alături de echipă dezvoltăm feature-uri noi și lucrăm la o migrare de pe un mediu de servere pe altul. Practic, mă lovesc și de task-uri de DevOps destul de des.”

Dana ne povestește că a urmat studii de limbi străine și apoi a lucrat 13 ani într-o organizație internațională care se ocupa cu proiecte pentru studenți și cercetători. Deși îi plăcea ceea ce făcea, a simțit la un moment dat că are un alt potențial, într-un domeniu diferit, pe care i-ar fi plăcut să îl exploreze.

„Am avut mereu o admirație pentru domeniul IT și la un moment dat am început să îmi pun întrebarea dacă e prea târziu să mă redirecționez către zona asta. Principala mea temere era legată de cunoștințele de matematică superioară.”

Primul pas: Python

Ea ne descrie că și la fostul loc de muncă devenise în mod natural persoana la care se apela pentru probleme tehnice, așa că a decis să încerce să vadă despre ce ar fi programarea. S-a sfătuit cu prieteni programatori și a aflat că există programe de învățare accelerată pentru a intra în domeniu, dar ea și-a propus să înceapă de undeva, așa că acel prim limbaj a fost Python, urmând un curs gratuit online.

„Traseul nu a fost chiar lin, am început să învăț simultan despre Python, metodologia Agile, HTML, Bash sau testare și toate aceste căi diferite mă amețeau și simțeam că nu progresez. Eram la un pas să abandonez. Apoi am decis să mă concentrez doar pe Python, mi-am luat certificarea de începător și apoi pe cea de intermediar. În plus, la fostul loc de muncă am venit cu inițiativa de a dezvolta un script prin care am automatizat un proces de descărcare de fișiere, deci simțeam încet că ce învăț are un impact.”

Ea precizează că ulterior a decis să își schimbe cariera și să caute activ un job în programare. Simțea că o provoacă, o ține mereu în priză. A ajuns la ING Tech prin programul DevSchool, Switch to Programming unde oamenii vin cu cunoștințe într-un anumit limbaj, cum era cazul ei cu Python și fac switch către Java. Au urmat 3 luni intensive de cursuri de două ori pe săptămână, plus extra pregătire și, din 200 de aplicanți, au rămas 10 la curs și apoi ea a fost printre cei care au și primit șansa unui job.

„Am început cu Java, acum fur de la colegi și Scala și Kotlin și am reușit de curând să iau examenul de Oracle Certified Associate Java Programmer. Am noroc cu colegi răbdători, care îmi dau task-uri adaptate nivelului meu și simt că ajung să cresc treptat și să învăț mereu lucruri noi.”

Despre avântul de a-ți schimba cariera

„Eu cred că la 18 ani când trebuie să îți alegi facultatea ești cam necopt și ține puțin și de noroc dacă ajungi să ți se potrivească ce vei profesa. În plus, cred că avem cu toții posibilitatea să explorăm mai multe fațete ale noastre, nu suntem buni doar la un anumit lucru sau într-un anumit domeniu, deci putem să avem mereu deschiderea și răbdarea să dezvoltăm și alte lucruri care ne plac sau ne atrag.”

Dana spune că facultatea e o cale prin care poți descoperi programarea, dar nu e singura. Ea nu șterge cu buretele tot ce a învățat în cei 13 ani în care a muncit într-un alt domeniu, sunt multe abilități care îi sunt utile și ca programator, cum ar fi organizarea, faptul că știe să scrie documentație foarte bine etc.

„Python cred că a fost un început bun, față de Java care are o sintaxă mult mai complexă. Cu Python am înțeles cum se întâmplă lucrurile și am avut o perspectivă de ansamblu și asta mi-a dat curaj, mai ales în primele luni. Am avut tendința poate să mă și descurajez, pentru că am trecut de mult de vremea facultății, am și o familie, mă gândeam că e greu să o iau de la început, dar mi-am amintit de o vorbă care spune că niciodată nu vei fi mai tânăr decât în momentul acesta. Așa că mi-am făcut curaj.”

Dana spune ca ea e încă foarte la început pe acest drum, al carierei în programare, dar tocmai de aceea își dă seama de abilitățile care pe ea au ajutat-o cel mai mult. Gândirea logică și abstractă, perseverența, autonomia, dorința de a cerceta și a căuta informații și nu în ultimul rând capacitatea de a-ți seta obiective mici, care ulterior să te ajute să atingi un scop mai mare.

„Cred că cel mai important pentru a nu te descuraja e să nu încerci să înveți multe limbaje deodată, să le iei pas cu pas, să fii deschis la oportunitățile care apar și să fii dispus să muncești mult la început.”

Deși inițial nu credea că limbile străine au ceva în comun cu programarea, ne mărturisește că a citit un articol științific care testa cât de ușor învață programarea diferite categorii de oameni, unde a descoperit că cei care au abilități lingvistice foarte dezvoltate, cum a fost și cazul ei, reușesc să învețe mai ușor o altfel de limbă străină, programarea.

Privind diferite povești și trasee profesionale, este clar că nu există o singură rețetă care să te ajute să fii un bun programator. Curiozitatea, gândirea critică, motivația și interesul pentru algoritmi, apetitul pentru rezolvarea de probleme sunt doar câteva dintre abilitățile de bază care ar fi bine să se regăsească la un om care își dorește să exploreze programarea.

În contextul în care ne aflăm astăzi, cu acces la milioane de resurse sau cursuri gratuite la universități de renume, facultatea rămâne doar una din cărămizi, iar fundația e construită până la urmă din munca, perseverența și pasiunea fiecărei persoane, indiferent de momentul din viața în care decide că poate programarea i s-ar potrivi.