Ce și-ar fi dorit să știe programatorii, atunci când au ales o carieră în IT
În programare, la fel ca în multe alte domenii, cum alegi să te specializezi după facultate poate fi definitoriu pentru a identifica ce zonă te pasionează și care va fi traseul tău profesional. Fie că vorbim de un program de master, de un internship, de lucrul pe cont propriu la un proiect, acestea sunt de multe ori primele opțiuni prin care un student intră în contact cu realitatea din piața muncii, realitate ce poate fi mult diferită de ceea ce își imagina când și-a ales specializarea în facultate.
Am vrut să aflăm care sunt lucrurile pe care programatorii și-ar fi dorit să le știe și să le aplice când erau la început de drum, în primele luni după facultate, așa că am discutat cu trei specialiști IT din ING Tech care au făcut primii pași pe piața muncii printr-un internship sau un program de învățare.
Dana Maria Nica, software engineer
Dana lucrează în ING Tech România de peste doi ani și este developer în aria de canale și platforme digitale. Și-a început cariera în programare imediat după terminarea Facultății de Automatică și Calculatoare, secția de Calculatoare și Tehnologia Informației.
„Prima linie de cod am scris-o în clasa a VII-a, în C++. Pe atunci eram pasionată de matematică și mă bucuram că puteam traduce părți din matematică în cod. Ulterior în facultate am învățat C, apoi am trecut la Java și în anul 3 am învățat Python, pentru că a început să mă pasioneze Machine Learning și am ales să particip la diverse evenimente de profil”, ne povestește Dana.
A ajuns în ING Tech printr-o ediție DevSchool, un program educațional dezvoltat de ING Tech special pentru studenți, unde traineri sunt colegii din companie.
Despre primii pași în DevSchool
„Am ales să urmez un astfel de program într-o ediție de Java, pentru că asta mă interesa la acel moment, în plus, mi s-a părut un mediu deschis, de unde pot afla răspunsurile la multe dintre întrebările pe care le aveam înainte să aleg să lucrez într-o companie. Ca mod de predare, toate conceptele sunt aplicate pe tehnologiile din producție, am lucrat pe multe exemple și am simțit o diferență față de lucrurile învățate în facultate. Eu am făcut Java și în facultate, dar nu am folosit un framework, nu am exersat tot procesul prin care poți să construiești o aplicație”, adaugă Dana.
Tocmai din acest motiv, Dana a ales să se întoarcă în acest program împreună cu alți 2 colegi, de această dată în calitate de trainer, ajutând studenți la început de drum să își dea seama mai ușor ce le place din domeniul programării, ce tehnologii ar fi cel mai util să aprofundeze și cum să lucreze pe aspecte practice, în echipă.
„Încă de mică, mi-a plăcut ideea de a-i învăța pe alții și de a da mai departe. Din acest motiv, în timpul liber sunt și asistent la facultate la o materie numită Paradigme de programare, de trei ani deja. Așa am început și cu DevSchool, am fost trainer împreună cu alți doi colegi mai experimentați pentru două ediții și lucrez în prezent la cea de a treia”, ne explică ea.
Întrebată ce îi învață în aceste luni pe studenți, Dana ne explică faptul că ei au creat programa și o actualizează la fiecare ediție, pornind de la cum lucrează și ei în companie, cu ce framework-uri, cu ce tehnologii. Ne povestește că încearcă să pornească împreună cu studenții selectați pentru program de la zero și trec prin mai multe etape treptat, cu toată grupa. La final, participanții dezvoltă un API pentru o aplicație de Internet banking și astfel își consolidează toate noțiunile învățate, lucrează singuri la dezvoltarea aplicației și văd cum ar funcționa lucrurile în producție. Mai mult decât atât, totul se întâmplă în echipă, un aspect pe care nu mulți studenți ajung să îl exerseze cu adevărat în facultate.
Sfaturi pentru cei la început de drum
„Cred că cel mai important când ieși de pe băncile facultății este să te expui la multe experiențe: hackatoane, internship-uri, programe. Și să înveți să lucrezi în echipă, pentru că oricât de bun ai fi individual, în orice proiect și la orice loc de muncă scopul e să dezvolți împreună cu echipa un produs sau o aplicație”, ne explică Dana.
Ea ne precizează că programarea este un job în care trebuie să înveți constant, deci mereu e parte dintr-un program de învățare, chiar dacă acum nu mai este unul formal. În prezent, ea ne povestește că lucrează cu Java, Kotlin, Spring Boot și Maven, dar crede că nu trebuie niciodată să te complaci și să rămâi pe aceleași tehnologii. Ea subliniază că e important să îți găsești mereu ceva nou care să te facă să te simți la început de drum.
„În echipa mea ne alocăm constant timp pentru învățare, dezvoltare personală și experimentare cu noi trenduri din IT: folosim framework-uri diferite în proiecte, lucrăm și pe partea de front-end de exemplu, chiar dacă în prezent în jobul meu eu lucrez ca back-end developer. Participăm la meet-up-uri și sesiuni tehnice, ne găsim mereu ceva nou. În plus, atunci când mă implic în calitate de trainer învăț constant, pentru că dincolo de a cunoaște un termen sau o tehnologie, acum trebuie să și explic aceste aspecte altor oameni”, menționează ea.
Într-un final, încheie spunându-ne că sunt multe lucruri pe care nu știi de unde să le iei când ești în primele luni la un job și care acum ei îi ies în evidență. De exemplu, la început oamenii își reprimă deschiderea de a pune întrebări și de a accepta că nu ai cum să știi totul, dar ea își amintește încă din facultate primul curs în care i s-a spus că Google este prietenul lor, al studenților și e important să caute mereu lucruri, păreri, pentru că partea de învățare și cercetare nu se termină niciodată.
Sursă foto: Freepik
Răzvan Socol, Team lead
Răzvan este de patru ani în ING Tech, în departamentul de Data Management, în zona de Data Lake Foundation și conduce de câteva luni o echipă formată din 11 colegi.
A terminat Facultatea de statistică, Informatică și Cibernetică economică la ASE și și-a dorit să înceapă să profeseze măcar part-time, încă din timpul facultății, așa că a ales un internship la o companie americană de automotive, unde se ocupa de crearea de procese și fluxuri de lucru, practic un instrument de aprobare și revizuire a contractelor.
„La facultatea pe care am ales-o eu faci programare, dar și multă economie. Am lucrat cu SQL, Node.js, Python, C++ etc. Astfel, mi-am dat seamă că îmi place zona de Data management, dar că am nevoie să experimentez, să văd ce mi se potrivește și așa am ajuns să mă înscriu acum patru ani la o ediție DevSchool, pe Data Management, SQL”, ne povestește Răzvan.
El ne precizează că în programul ING Tech, de la început până la final totul a fost un mini-proiect, o aplicație cu exemple practice din domeniul bancar. Asta i-a atras atenția, dar și faptul că atmosfera era informală, trainerii erau deschiși și nu îți era frică să pui întrebări.
„Ulterior, am fost și eu printre cursanții care au primit o ofertă de angajare de la ING Tech și am început să lucrez ca developer, pe atunci foloseam Linux și Bash scripting. Apoi am lucrat pe mai multe scripturi pentru Data Lake, ulterior în zona de Data stage, pe un tool de procesare de date automatizate. Pot să spun ca am avut ocazia să încerc mai multe lucruri și să învăț continuu.”
În programare mereu apare ceva nou
Răzvan nu s-a întors ca trainer în Devschool, dar lucrează alături de colegii din echipa pe care o coordonează, pentru a se lovi mereu de lucruri noi și a continua procesul de învățare. Ne mărturisește că el a făcut constant rotații de proiect, o dată la jumătate de an și a ajuns așa să lucreze pe toate proiectele din zona de Data Lake, ETL, data quality etc.
„În programare mereu apare ceva nou, un limbaj cu o versiune nouă, un alt framework, cel puțin o dată la câteva luni. Apar funcționalități noi care îți ușurează munca și de aceea trebuie să fii mereu la curent cu nivelul pieței și cu standardele și practicile care apar. Pentru că am schimbat constant proiectele, am avut ocazia să mă lovesc de tehnologii noi și astfel să intru pe documentație, să înțeleg în profunzime anumite aspecte. Asta promovez și în echipa din care fac parte, pentru că eu cred că partea de învățare nu se oprește niciodată, se schimbă cel mult modul în care înveți”, ne explică el.
Uitându-se înapoi la el acum patru ani, Răzvan ne spune că acum conștientizează anumite aspecte importante, pe care atunci, când era la început în programare, nu le vedea ca esențiale. Ne vorbește despre lucruri care par de bază, cum ar fi denumirea corectă și coerentă a variabilelor, care într-un proiect cu zeci de oameni are o importanță foarte mare. De asemenea, ne povestește că lucrând în echipe diverse, a învățat practica de a împărți codul în mai multe scripturi, astfel încât să poată fi organizate într-un set și să nu ajungi să lucrezi cu 2000 sau 3000 de linii de cod din care apoi nu mai înțelegi nimic.
Despre individualitate versus muncă în echipă
„La început eram foarte concentrat pe mine, pe ce pot eu să învăț și cum pot eu să schimb un proiect. Acum, sunt parte dintr-o echipă sudată și am început să mă gândesc și la cei din echipă și la cum funcționăm cu toții într-un proiect. În facultate ești tu pentru tine, lupți pentru note și pentru a face bine proiectele, nu ești învățat cât de important e să fii conștient de echipă și de cum lucrați ca un tot unitar”, povestește Răzvan.
El ne explică și că, în timp ce ca developer începi să te responsabilizezi, programarea nu mai e doar despre cum poți să scrii cel mai interesant bloc de cod, ci despre cum să scrii cod mai bun pentru a rezolva o problemă. Răzvan precizează că dacă nu te gândești la asta de la început, ajungi să pierzi mai mult timp ulterior să rezolvi situația creată și încurci și alți colegi care lucrează împreună cu tine.
„Cred că și în programare, la fel ca în alte domenii, e important să descoperi ce îți place cel mai mult. DevSchool pe mine m-a ajutat în această direcție și aș sfătui pe oricine să înceapă cu un astfel de program sau cu un internship, un proiect practic care să îi ofere o imagine de ansamblu și acces la ariile majore pe care s-ar putea axa mai departe”, încheie Răzvan.
Eduard-Gabriel Manda, software engineer
Eduard s-a alăturat echipei ING Tech acum patru ani, tot în zona de canale și platforme digitale. Legătura lui cu programarea a început încă din liceu, când îi plăceau matematica și fizica și când, inspirat de fratele unui coleg mai mare, a ales să urmeze Facultatea de Automatică și Calculatoare, specializarea Ingineria sistemelor.
„Deși la Ingineria sistemelor nu făceam așa multă programare, aveam o materie care se axa doar pe asta și am început să fur câte puțin de la colegii mai experimentați. În anul trei am mers la un internship pe PHP și mi-am dat seama că îmi place. Am continuat cu un curs de Java pe Udemy și cu pași mici am început să realizez că programarea era pentru mine”, adaugă el.
Eduard a ajuns în ING Tech tot prin programul DevSchool, ediția de Java and Web components, unde timp de trei luni a trecut prin proiecte practice. Ne mărturisește că i-a plăcut modul de organizare, tehnica și atmosfera.
Sursă foto: Freepik
„La DevSchool am avut ocazia să înțeleg impactul a ceea ce fac în realitatea de zi cu zi”
„Față de facultate unde am dat examen de Java și pe hârtie, în programul coordonat de ING Tech am avut ocazia să lucrez integrat un proiect și să înțeleg impactul a ceea ce fac în realitatea de zi cu zi. Cred că din acest motiv m-am și întors ca trainer în acest program, pentru că mi-am dat seama că îmi face plăcere să lucrez cu oameni de vârsta mea și să le ofer o altă perspectivă de învățare, așa cum mi s-a oferit și mie”, punctează Eduard.
El ne povestește că a fost trainer împreună cu alți colegi în cinci sesiuni ale programului și urmează să o pregătească pe a șasea. Lucrează la programa după care se predă și încearcă permanent să înlocuiască lucrurile care încep să nu mai fie folosite de companii, cum au înlocuit de exemplu predarea Java Enterprise Edition, cu Spring Web.
„Cred că în niciun domeniu nu ar trebui să te oprești din învățat, iar programarea e mai dinamică decât orice. Eu de exemplu lucrez acum cu Kotlin și încerc să fiu la curent cu versiuni noi sau cu cele mai actuale frameworks, dar și să înțeleg totodată partea de Blockchain, care începe să atragă tot mai mulți oameni”, ne precizează Eduard.
Totuși, ce i-ar fi plăcut să știe când era la început e faptul că nu poți să cunoști tot dintr-un domeniu și că e în regulă să îți stabilești niște priorități, lucruri care te atrag și să te dezvolți în acea direcție. Când începuse programarea, ne mărturisește că îl stresa aproape orice: că nu știa algoritmică, suficientă matematică și ajungea să caute de toate, fără să rețină multe lucruri.
„Răspunsul întrebării tale sigur a fost dat de cineva deja”
„E important să știi să cauți lucruri la început, dar strategic. La un moment dat, răspunsul întrebării tale sigur a fost dat de cineva deja. În plus, cred că trebuie să ceri ajutorul, să nu te închizi în tine și să înțelegi că ceilalți din echipă sunt acolo și pentru a te ajuta când treci prin aceleași situații prin care probabil au trecut și ei. În plus, când am început să predau mi-am dat seama că am început și eu să înțeleg mult mai bine anumite aspecte pe care eu înainte le abstractizam”, ne mărturisește el.
Într-un final, programarea este o călătorie, ne explică Eduard. La început când ai un user story, te grăbești să îl termini, când cel mai important e ce înveți din acel story și cum ajungi la cea mai bună soluție. Ulterior, după ce trec anii, aceste story-uri mici ajung să fie automatisme, deci toate aspectele ar trebui apreciate la momentul în care ai mult timp să le diseci și să le întorci pe toate părțile.
Este clar că învățarea pare să fie un proces continuu când alegi meseria de programator și asta poate fi câteodată copleșitor, mai ales când ești la început de drum. Începi să studiezi multe tehnologii, frameworks, te întorci la algoritmică, la matematică, ceea ce face cu atât mai importantă alegerea primului internship, primei companii în care ajungi să lucrezi, deoarece contribuie mult la oferirea unei imagini de ansamblu și a unei direcții, când nu știi pe ce ar trebui să te concentrezi mai departe.
Sunt multe greșeli pe care le vei face când vei scrie primele linii de cod ca angajat, așa cum ne-au explicat și cei trei programatori și multe alte dificultăți de care te vei lovi: de la a te simți stingher când trebuie să pui întrebări, la a aborda lucrurile mai mult individual decât din perspectiva întregii echipe și până la a testa lucrurile din facultate în munca de zi cu zi, pentru a vedea cât impact poate avea și denumirea greșită a unei variabile.
La final, evoluția are loc și când greșești și descoperi ce poți face mai bine, ideea e să alegi proiectul, compania, internship-ul sau masterul care să îți permită în primele tale luni să descoperi cât mai multe aspecte din programare, în timp ce treci peste toate aceste greșeli de început care te transformă într-un final în programatorul de azi.