Privind dincolo de CV: Ce atuuri și abilități ar trebui să aibă un tânăr inginer software?
De la start-up-uri promițătoare care deschid noi căi de dezvoltare cu aplicații inovatoare până la giganți tehnologici consacrați, care conturează noi orizonturi prin prisma tehnologiilor viitorului, industria tech și de dezvoltare de software rămâne unul dintre lideri când vine vorba…
De la start-up-uri promițătoare care deschid noi căi de dezvoltare cu aplicații inovatoare până la giganți tehnologici consacrați, care conturează noi orizonturi prin prisma tehnologiilor viitorului, industria tech și de dezvoltare de software rămâne unul dintre lideri când vine vorba de nevoia și cererea de forță de muncă, iar găsirea inginerilor de software talentați aduce provocări pentru toți jucătorii din ecosistem. Ce atuuri și abilități ar trebui să aibă un tânăr inginer care pășește pe piața muncii în acest domeniu, în paralel cu pregătirea tehnică de bază?
În ceea ce privește abilitățile tehnice, un inginer software la începutul carierei ar trebui să aibă o înțelegere fermă a unuia sau mai multor limbaje de programare. Acestea ar putea include cele utilizate pe scară largă precum Python, JavaScript, Java sau CĂĂ. Alegerea limbajului de programare va depinde, desigur, de cerințele postului și de aria de specializare a inginerului. Aceste limbaje de programare sunt instrumentele brute cu care inginerii software creează și modelează soluții digitale”, a spus într-un interviu pentru BUSINESS Magazin Manuela Șerban, director HR în cadrul companiei locale Rinf Outsourcing Solutions (rinf.tech), specializată în dezvoltare de software, consultanță și BPO, cu afaceri de 29,3 mil. euro în 2022, plus 30% față de 2021.
În plus, o înțelegere fundamentală a structurilor de date și a algoritmilor este esențială pentru un tânăr inginer software, consideră reprezetanta
rinf.tech, adăugând că aceste cunoștințe reprezintă piatra de temelie a rezolvării eficiente a problemelor și permite programatorilor să-și optimizeze performanța și să producă linii cod curate și organizate.
„La fel de importantă este stăpânirea așa- numitelor version control systems, în special Git. Version control este un skill esențial în programare, în special pentru cei care lucrează în cadrul unei echipe în care modificările la codul sursă trebuie gestionate într-o manieră structurată și ușor de urmărit. Mai mult, programatorii începători ar trebui să fie adepți în testarea și remedierea muncii lor. Scrierea de teste solide și diagnosticarea defecțiunilor programelor fac parte din rutina unui programator, ajutând la asigurarea livrării de produse software de calitate. În plus, familiarizarea cu frameworkurile și librăriile relevante pentru limbajul de programare ales poate fi un impuls semnificativ, sporind adesea productivitatea și oferind componente preconstruite care accelerează dezvoltarea de software.”
Abilitățile nontehnice, la fel de importante ca cele tehnice
Dincolo de cunoștințele tehnice, programatorii trebuie, de asemenea, să dețină și să își îmbunătățească constant soft skillurile, adaugă Manuela Șerban. „Rezolvarea problemelor este principalul skill de care aceștia au nevoie pentru că se vor confrunta frecvent cu provocări care necesită soluții inovatoare și practice. O bună comunicare este un alt pilon al succesului în acest domeniu, permițând colaborarea eficientă cu membrii echipei, eliminând diferențele dintre părțile tehnice și nontehnice. Time managementul este crucial datorită felului rapid în care se dezvoltă tehnologia. Abilitatea de a jongla cu mai multe taskuri, de a stabili priorități în mod eficient și de a respecta termenele limită poate face diferența între un inginer bun și unul excepțional. În plus, peisajul tehnologic este în continuă evoluție, făcând din abilitatea de a învăța continuu un skill necesar pentru a rămâne în contact cu noile limbaje, tehnologii și metodologii de programare.”
Tehnologiile vechi își păstrează relevanța
De asemenea, reprezentanta Rinf notează că și înțelegerea tehnologiilor software mai vechi rămâne crucială pentru tineri, în ciuda ritmului rapid de inovare pe care l-au avut în ultimii ani, acestea fiind importante din mai multe motive. Spre exemplu, în multe industrii, precum cea financiar – bancară, sistemele vechi – cele construite cu tehnologii mai vechi – sunt încă în uz și au nevoie de mentenanță. „Tehnologii mai vechi s-ar putea să nu prezinte aceeași atracție pentru programatori precum tehnologiile mai noi și mai trendy, dar formează coloana vertebrală a numeroase aplicații cheie în domenii precum finanțe sau sănătate. Aceste sisteme necesită adesea mentenanță și upgrade, creând o cerere pentru profesioniștii familiarizați cu tehnologiile software mai vechi. Totodată, multe principii și modele utilizate în programarea modernă își au rădăcinile în aceste tehnologii mai vechi. Învățarea lor poate oferi un context valoros și o înțelegere mai profundă a motivului pentru care anumite practici există astăzi. Este ca și cum ai studia istoria — îți oferă o apreciere pentru prezent prin înțelegerea trecutului”, a explicat Manuela Șerban.
Ea a punctat că în ultimii trei ani s-a observat o reactualizare a valorii unor limbaje de programare mai vechi. Spre exemplu, JavaScript, un limbaj vechi de peste două decenii, a devenit critic datorită creșterii aplicațiilor web precum React.js și Node.js. În mod similar, Python, un alt limbaj cu istorie, a crescut în relevanță odată cu creșterea tehnologiilor precum data science și machine learning.
„În plus, învățarea tehnologiilor mai vechi poate îmbunătăți abilitățile de rezolvare a problemelor. Le lipsesc adesea abstracțiile și facilitățile limbajelor mai noi, solicitând programatorilor să înțeleagă problema la un nivel mai profund și să vină cu soluții eficiente.”
„Lucrând împreună, companiile și instituțiile de învățământ pot crea un ecosistem care să sporească abilitățile tehnice ale studenților și să îi echipeze cu skillurile soft și cunoștințele practice de care au nevoie pentru a reuși în cariera lor. Această colaborare este crucială în pregătirea forței de muncă care este gata să facă față cerințelor și provocărilor industriei IT, care se află într-o continuă evoluție.“
Manuela Șerban, director HR în cadrul rinf.tech
Cele mai importante tehnologii cu care tinerii ar trebui să se familiarizeze ar depinde cu siguranță de domeniul lor specific de interes, a mai spus reprezentanta companiei locale, care numără peste 290 de angajați. Însă, există câteva domenii universale de cunoaștere care sunt benefice pentru întregul spectru al profesiilor tehnologice.
„În primul rând, abilitățile de a scrie cod au devenit fundamentale. Fie că este vorba de Python pentru data science și AI, JavaScript pentru dezvoltare web sau Java pentru aplicații enterprise, înțelegerea a cel puțin unui limbaj de programare popular deschide diverse oportunități, dar promovează și o mentalitate focusată pe rezolvarea problemelor. În al doilea rând, este important, ca programator, să fii familiarizat cu sistemele de analiză și management al bazelor de date, precum și cu principiile securității datelor. Domeniile mai avansate, cum ar fi machine learning și data science, merită explorate pentru cei înclinați către aceste domenii.”
De asemenea, cunoștințele de cloud computing sunt din ce în ce mai importante, având în vedere că furnizori mari precum Amazon Web Services (AWS), Microsoft Azure și Google Cloud Platform oferă o gamă de servicii care susțin dezvoltarea și implementarea de aplicații moderne. Astfel, înțelegerea modului de a utiliza aceste platforme este o abilitate foarte căutată. La toate acestea ar trebui adăugată cunoașterea dezvoltării web, a cadrelor front-end și back-end, a punctat Manuela Șerban. „Abilitățile de lucru cu API-uri și înțelegerea protocoalelor de rețea pot fi, de asemenea, benefice.”
Cum completăm pregătirea universitară
În plus, pe măsură ce tehnologiile digitale pătrund în toate aspectele vieții, nevoia de a proteja și securiza activele digitale crește. Pentru a ține pasul cu nevoile jucătorilor din industria și ecosistemul tech, o mulțime de universități din România și din întreaga lume și-au actualizat curricula pentru a răspunde mai bine cerințelor actuale din piața muncii. Astfel, studenții întâlnesc adesea o mare varietate de tehnologii și discipline în cadrul universităților de profil, atât vechi, cât și noi.
„Cu toate acestea, deoarece lumea ingineriei software este extrem de dinamică și versatilă, educația universitară poate să nu fie suficientă, iar studenții trebuie să urmeze cursuri externe sau să se alăture companiilor IT ca stagiari pentru a-și spori abilitățile, pentru a obține o mai bună înțelegere a businessului și pentru a-și asigura cariera în viitor.”
Provocarea de a găsi candidații și inginerii software „perfecți” este cu atât mai mare cu cât domeniul de aplicare al ingineriei software se extinde cu mult dincolo de industria IT&C, soluțiile și tehnologiile demonstrând în ultimii ani (mai ales) că pot fi implementate și utilizate în aproape toate sectoarele de activitate, dar și în viata de zi cu zi. „În sectorul sănătății, de exemplu, suntem martorii unei revoluții digitale. Dependența din ce în ce mai mare de dosarele electronice de sănătate, platformele de telemedicină, sistemele de analiză a sănătății și instrumentele de terapie digitală a intensificat cererea pentru inginerii de software care pot ține pasul cu provocările acestui domeniu vital. Sectorul financiar, de asemenea, este martorul unei transformări similare. Pe fondul creșterii serviciilor bancare mobile, a sistemelor de plată digitale și a consilierilor robotici, inginerii software devin actorii principali în revoluția FinTech”, a explicat Manuela Șerban.
Anual, aproximativ 10.000 de absolvenți STEM (Știință, Tehnologie, Inginerie și Matematică) intră pe piața forței de muncă tech din România, aceștia reprezentând 30% din întregul bazin de absolvenți din România, similar cu Finlanda, Austria și Portugalia, potrivit celor mai recente date de la Eurostat.
„Fundația pentru o carieră în STEM începe în primii ani. Prin introducerea la școală a disciplinelor STEM într-un mod distractiv și antrenant, mai mulți elevi pot fi încurajați să urmeze aceste domenii. În plus, organizarea de competiții, târguri științifice și ateliere de lucru le poate stimula și interesul. Mulți studenți nu sunt conștienți de diversele opțiuni de carieră disponibile în domeniile STEM. Oferirea de îndrumare în carieră și prezentarea cifrelor de succes din industrie poate ajuta studenții să înțeleagă oportunitățile și potențialele beneficii. Bursele, granturile și ajutorul financiar pot face programele STEM mai accesibile studenților care nu au mijloace financiare pentru a urma studiile superioare”, este de părere Manuela Șerban.
De asemenea, universitățile ar trebui să își actualizeze în mod continuu programele de studii pentru a reflecta nevoile industriei, asigurându-se că studenții dobândesc abilitățile pe care le caută angajatorii. „Colaborările cu organizații pentru stagii și pregătire practică pot fi, de asemenea, benefice. Femeile și alte grupuri subreprezentate sunt adesea mai puțin întâlnite în domeniile STEM. Inițiative specifice de sprijinire a acestor grupuri, cum ar fi programele de mentorat sau evenimentele de networking, pot contribui la creșterea incluziunii acestora. Guvernele pot juca un rol crucial investind în educația STEM, creând politici care favorizează cercetarea și inovarea STEM și oferind stimulente pentru ca studenții să intre în aceste domenii.”
Reprezentanta rinf.tech a punctat faptul că aceste strategii sunt mai eficiente atunci când sunt implementate într-o manieră cuprinzătoare, coordonată, implicând școli, universități, guvernul și sectorul privat. „Lucrând împreună, companiile și instituțiile de învățământ pot crea un ecosistem care nu numai că sporește abilitățile tehnice ale studenților, ci îi echipează și cu cunoștințele practice și skillurile soft de care au nevoie pentru a reuși în cariera lor. Această colaborare este crucială în pregătirea forței de muncă care este gata să facă față cerințelor și provocărilor industriei IT, care se află într-o continuă evoluție.”