Emil Racec este Inginer software în Machine Learning & Asistent Universitar la Facultatea de Automatică și Calculatoare, UPB – Universitatea POLITEHNICA din București, a fondat Academia IT Devmind, pe care o consideră cea mai mare realizare din cariera sa. Ca inginer software, a acumulat experiență în dezvoltarea de produse cu impact global, în companii precum: Bitdefender, București – echipa de Machine Learning; Microsoft, Washington și Bloomberg, Londra & New York – unde a contribuit la cel mai complex sistem financiar din lume.
Un luptător prin definiție, suficient de norocos să îmi fi găsit adevărata chemare în carieră; perfecționist, empatic cu cei din jur, mereu alături de fiecare persoană pentru care am reușit să aduc o schimbare în viață. Pasionat de natura umană, psihologie, complexitatea vieții în toate aspectele ei, încerc în fiecare zi să fiu schimbarea pe care doresc să o văd în lume. Aleg mereu subiectele grele, iubesc provocările de orice fel și sunt întotdeauna deschis pentru conversațiile lungi, cu sens și profunzime.
Este o poveste interesantă. Când eram pe băncile facultății și, totodată, țineam laboratoare de Programare și Structuri de Date cu studenții Facultății de Automatică și Calculatoare, câțiva prieteni m-au întrebat dacă pot participa și ei pentru a învăța programare. Din motive evidente, nu am putut să îi primesc la ore, însă le-am promis că mă voi interesa de cursuri private de programare alternative, la același nivel de performanță cu cele din UPB. După câteva săptămâni de căutare, am fost foarte surprins să descopăr că o mare parte a cursurilor private de programare pun accentul doar pe aspectele superficiale (studiul unui limbaj, înțelegerea unor concepte mult simplificate, obținerea unei diplome etc.). Toate aceste cursuri erau ușor de urmat și la fel de ușor de absolvit – însă nu îți permiteau să începi o carieră în dezvoltarea software la o companie de top, unde cerințele de interviu erau la alt nivel. Practic, nu există o alternativă dedicată programării software de elită care să ofere cursuri la standardele și exigențele cu care noi predăm în Facultatea de Automatică și Calculare – o alternativă dedicată acelor persoane cu potențial tehnic, cu abilități de logică matematică, pregătiți nu doar să obțină un job oarecare în IT, ci să fie competitivi pe poziții de Junior Developer la companii de top în software. Acesta a fost pentru mine primul impuls că ceva trebuie să se schimbe, că este responsabilitatea noastră – a celor care suntem programatori și înțelegem cum funcționează industria software, să facem ceva pentru comunitatea IT.
A fost o provocare și un pariu cu mine, pe toate planurile. În plus, lansam totul de la zero și oricâte calcule sau planificări făceam, tot exista o oarecare incertitudine. Temerea mea principală era compatibilitatea programului de formare lansat pe piață cu viitorii studenți. Știam exact ce abilități caută companiile de top la un Junior Developer, mai ales că am avut ocazia cât lucram la Microsoft SUA să mă implic și în procesul de recrutare pe România. Aveam deja experiența necesară de a crea un curs care să formeze corect un programator junior de elită, din zecile de laboratoare și teme făcute pentru studenții de la Calculatoare. Însă trebuie să recunosc – aveam temerile mele dacă viitorii studenți Devmind selectați vor avea potențialul de a parcurge un astfel de program alternativ: dacă nu este prea intensiv, prea complex, dacă pot asimila în întregime noțiunile predate în curs astfel încât după cele 8 luni să ajungă la nivelul unui programator junior competitiv în companiile de top. În final, am fost extrem de plăcut surprins să văd exact același potențial al studenților Devmind cu care eram obișnuit ca Asistent Universitar în UPB și după câteva zeci de generații pot confirma că niciodată nu este prea târziu să începi o carieră de top în industria software, mai ales dacă ai înclinație către partea tehnică și ești dispus să aloci efortul necesar pentru împlinirea visului tău.
Cred că sunt indivizibile – deoarece antreprenoriatul, în adevăratul sens, nu poate exista fără o specializare solidă în domeniul în care activezi. Sunt convins că fără să cunosc eu, în primul rând, industria din interior, ca programator software, și fără experiența de training formată într-o facultate de top, care produce anual sute de experți software, nu aș fi putut pune bazele unei academii de programare, care ulterior să producă rezultate reale pe piața software.
Dacă nu ar fi existat, probabil că nu ținteam suficient de sus. Pentru mine, obstacolele sunt o metrică de evaluare a obiectivelor propuse și sunt inevitabile atunci când dorești să obții ceva cu impact în societate.
Mi-am dorit foarte mult să ajung la Bloomberg deoarece am fost dintotdeauna atras de cum funcționează sistemele economice ale lumii. Programul lor de internship mi-a permis să particip la niște cursuri de formare în Finance și, totodată, să lucrez la un proiect central în companie. De asemenea, alte aspecte care m-au făcut să revin și chiar să refuz o ofertă de la Google în favoarea lor au fost programele lor de conectare și învățare alături de top execs din companie, precum și ocazia de a implementa un sistem bazat pe NLP (Natural Language Processing) la sediul lor central din New York.
Eu iubesc România! Și mi-am dorit foarte mult să pot pune în aplicare aici, acasă, toată experiența acumulată la nivel național și internațional. În plus, sectorul IT este unul care, deși contribuie deja semnificativ la PIB-ul național, poate crește foarte mult în viitor. Totul depinde de capacitatea României de a forma noi specialiști în industria software – iar aici un rol esențial îl au academiile IT de reconversie profesională.
Cred foarte mult în colaborare, fie că este vorba despre parteneriate între instituțiile de stat cu mediul privat, sau industrie cu mediul universitar. Astfel că pe lângă rolul meu de Teaching Asistant, există numeroase proiecte comune pe care le dezvoltăm în prezent în Academia Devmind, împreună cu Facultatea de Automatică și Calculatoare sau chiar UPB. De exemplu, îin prezent se desfășoară seria de workshop-uri live #CareerTalks, alături de companii de top din industrie unde UPB este principalul partener. De asemenea, UPB este partener oficial al seriei #amreușIT – o serie care prezinta LIVE poveștile de succes ale absolvenților noștri ca programatori juniori, o parte semnificativă dintre ei fiind studenți din UPB, care și-au dorit să devină ingineri software. Mai mult, pe lângă workshop-urile educaționale dedicate studenților, dezvoltăm alături de Alex Olteanu (profesor în cadrul ACS) și de câțiva studenți din ACS diverse proiecte de cercetare-dezvoltare în zona de EduTech (cel la care lucrăm în prezent) – o platforma de coding in timp real, LambdaChecker – care să asiste studenții Academiei Devmind și studenții UPB la teme, laboratoare și examene de coding.
Aici nu știu să răspund exact, dar cu siguranță informații de specialitate pot fi aflate în cadrul departamentului de Resurse Umane din UPB.
La finalizarea studiilor de licență din ACS ești, practic, inginer software și poți lucra pe orice poziție în crearea de software (backend, frontend, full stack, testare, devops etc). De asemenea, poți continua studiile cu specializări concrete, mai avansate, precum Inteligența Artificială, Calcul Paralel și Sisteme Distribuite, Sisteme de Operare, Game Development, Web Development, Cybersecurity, și lista poate continua. Cel mai important este să fii atras și pasionat de ceea ce faci pentru a avea o carieră de succes. Domeniul IT este vast și îți permite să lucrezi la produse care se aliniază cu obiectivele tale personale, prin urmare merită să încerci diverse variante până când găsești ceea ce ți se potrivește.
Da, categoric. Important este să vrei să înveți și să te implici în numeroasele proiecte puse la dispoziție atât de Facultatea de Automatică și Calculatoare, cât și de colaborările pe care mediul universitar le are cu industria IT și alte universități internaționale de top.
De departe, cel mai mult m-au ajutat cunoștințele dobândite în cadrul ACS la materiile studiate și proiectele în care m-am implicat. Diplomele în programare nu ocupă un loc central, pot în cel mai bun caz să-ți ofere șansa unui interviu, dar poate categoric să obții acel prim interviu și fără o diplomă de specialitate. Domeniul software este unul foarte transparent în acest sens, caracterizat de meritocrație, unde diferența este făcută întotdeauna doar de cunoștințele și deprinderile practice, de performanța candidatilor.
În prezent, pe poziții de Junior Dev se angajează aproximativ 68% dintre absolvenții noștri de top, luând în calcul și recomandările directe ale academiei către companiile partenere. Procentul fluctuează însă foarte mult de la grupă la grupă – rata de angajare depinzând efectiv de abilitățile și cunoștințele dobândite de fiecare absolvent – astfel că vedem un procent mai mare la grupele cu mai mulți studenți de top. În industria software este suficient loc să reușească toți cei care obțin rezultate, astfel că tot ce contează pentru cineva este să învețe și să participe activ la cursurile și activitățile incluse (workshop-ul de HR, hackathoane, sesiunile cu companiile etc).
Este o întrebare pe care o aud des la workshop-ul educațional „Cum să începi o carieră în IT” – la care vă invit să participați cu această ocazie. Formarea practică începe inițial cu exerciții scurte, de algoritmică în principal, pe site-uri precum cele menționate de tine la care aș adăuga și HackerRank, Infoarena. Aceste exerciții tip sprint trebuie alternate, odată cu avansarea în materie, cu proiecte care să aplice practic noțiunile studiate. În programare, este foarte important ca tot ce înveți să pui în aplicare, în cât mai multe contexte caracteristice. Deci răspunsul scurt ar fi un mix între cele două menționate de tine – cu accent în primul rand pe exerciții de algoritmica, structuri de date și programare orientată obiect. Ca o completare, din punct de vedere al angajatorilor, pentru o cariera în dezvoltarea software, cel mai important este să-ți dezvolți o gândire caracteristică unui programator. Pe aceasta se pune accentul și la interviurile de selecție în zona de Entry Level (fara experienta anterioara) – unde contează mult mai mult ce poate implementa un candidat pe partea de Algo, SD și OOP (denumit în industrie Core Programming) decât portofoliul propriu.
La interviurile de selecție se pune accent pe potențialul candidatului și pe cunoștințele de Core Programming, unde se testează în principal partea de Algoritmica, Structuri de Date și Programare Orientată Obiect. Stagiile în programare au, în primul rând, un rol de formare, de acomodare a participanților cu tehnologii specifice producției, proiecte real-world etc. Multe sfaturi utile direct din partea companiilor găsiți și în seria #CareerTalks by Devmind în parteneriat cu UPB, unde participă companii partenere de top pe diverse tematici educaționale dedicate juniorilor. Pentru internship, vă recomand în special edițiile cu Accenture și Ubisoft: „Internship – Getting the right skills and knowledge” alături de coordonatorul programelor de internship pe Java din Accenture și „Supercharging your resume & interview skills” – susținut de Ana Ruiu – Talent Aquisition Lead Ubisoft.
În general, în zona de ML/AI ai nevoie de cunoștințe solide de matematică, pentru a putea înțelege în profunzime și pentru a aplica corect diverse modelele de învățare în funcție de problema pe care o rezolvi. Cu toate acestea, vestea bună este că orice se poate învăța și există numeroase cursuri de specialitate care integrează predarea noțiunilor avansate de matematică necesare. De asemenea, este un domeniu în care găsești numeroase cursuri și cărți celebre, scrise de nume importante din Machine Learning – Geoffrey Hinton (considerat a fi părintele ML), Andrew Ng, Yann Lecun etc.
Nu am susținut multe interviuri de ML, dar consider că cel mai important aspect este gradul de înțelegere și aplicare al principalelor modele de învățare din literatura de specialitate. Totodată, ajută să ai un portofoliu care să denote experiența acumulată pe proiectele la care ai lucrat (fie ele și din perioada de studiu).
Cred că pasiunea pentru aceasta clasă de modele unice în programare – caracterizate de învățare, aproximare, adaptare – trebuie să primeze. În plus, este important să îți placă matematica și să ai capacitatea de a înțelege modele destul de complexe – care, cum spuneam, se pot învăța odată cu partea de Machine Learning. Însă și aici gradul de aprofundare variază în funcție de aria care te interesează: poți merge în zona de cercetare în care să experimentezi cu modele noi, hibrid sau în cea de aplicare a modelelor deja existente în producție. Totul se învață și aș sublinia că există oportunități de studiu în ACS – UPB, în companii care oferă internship-uri în parteneriat cu UPB și în cadrul programelor de tip student-exchange precum Erasmus+.
Dacă este vorba de studenți în ani terminali, recomand un master de specialitate. Fiind un domeniu complex, este nevoie de o înțelegere profundă a noțiunilor studiate și, mai ales, de formarea unei rețele de conexiuni în domeniu. Un master îți oferă, pe lângă cunoștințele corecte, șansa să lucrezi la proiecte mărețe, de impact, recunoscute în cercurile de cercetare din domeniu. Dacă nu ești pregatit din start pentru o carieră în acest sens și doar dorești să prospectezi domeniul, recomand cursurile online create de autori recunoscuți din ML (cum ar fi: Geoffrey Hinton, Andrew Ng, Yann Lecun etc.), care sunt disponibile pe platforme precum Coursera, Udemy, Udacity etc.
Inteligența Artificială reprezintă în continuare un procent destul de mic din industria IT, raportat la numărul total de poziții în Software Development. Însă specializarea de Machine Learning/ Artificial Intelligence a crescut mult în România în ultimii ani – unde tot mai multe companii, naționale și internaționale, și-au deschis propriile departamente de AI pentru a include modele inteligente de învățare în produsele pe care le dezvoltă. Totodată, a crescut gradul de colaborare al industriei cu mediul universitar și numărul proiectelor de cercetare și dezvoltare în parteneriat, deci cererea de experți este în continuă creștere.
Cred că lucrurile se vor schimba mult în era post-pandemie – va exista o flexibilitate mult mai mare pentru lucrul de acasă. Tendințe precum „work from home” si „work from anywhere” au devenit deja de facto în companiile software de top și prevăd o relaxare a locului de unde îți desfășori activitatea la nivel global. Inclusiv în România exista numeroase multinaționale care influențează cultura organizațională locală. Cu toate acestea, nu cred într-o variantă 100% de remote work deoarece sunt de părere că latura socială a colectivelor și echipelor ar suferi o puternică denaturare. Spiritul de echipă, sentimentul de apartenență la un obiectiv comun și interacțiunea cu colegii ar impacta viața fiecăruia dintre noi. Așadar, cred într-un work-life balance, în care să dispară rutina deplasării la birou în favoarea unor întâlniri colective centrate pe un scop concret.