fbpx

Interviul tehnic pentru un job în IT

Interviul tehnic în IT este la fel ca oricare alt interviu de HR. Inițial se urmăresc aceleași aspecte generale ca pentru oricare altă poziție:

  • de ce ți-a ales acest domeniu;
  • de ce îți dorești o schimbare în carieră;
  • ce te motivează ;
  • ce așteptări ai de la noul angajator;
  • aspectele financiare și pachetul de beneficii;

 

Cu 10 de ani în urmă procesul de recrutare nu era atât de complex, însă acum totul s-a schimbat fundamental din cauza globalizării, a tehnologizării, a factorilor educaționali, economici și sociali.

Ceea ce diferenţiază un interviu pentru o poziţie tehnică faţă de o poziţie non-tehnică este acea etapă din interviu despre detaliile tehnice legate de proiectele la care candidatul a lucrat în trecut vs. proiectul pe care va lucra în viitor. E o modalitate bună de a vedea ce îşi doreşte de la această carieră, ce îşi doreşte să exploreze sau să înveţe.

Interviul tehnic poate fi desfăşurat în diferite moduri: unii angajatori preferă ca interviul tehnic să fie susţinut de o persoană tehnică împreună cu reprezentantul HR, alţii preferă ca testarea tehnică să fie prima probă eliminatorie şi apoi să urmeze discuţia cu HR-ul.

In timpul interviului tehnic se discută despre proiectele în care a fost ai fost implicat, principalele realizări din punct de vedere tehnic. Tot în cadrul acestei etape se discută care va fi rolul tău în cadrul echipei.

Apoi urmează testul scris, în care trebuie să rezolvi probleme practice pe tehnologia solicitată. Unele companii pot cere un exemplu de cod scris de candidat pentru a evalua cât de “curat” este scris. Intrebările tehnice sunt specifice pentru tehnologiile din rubrica “Job Description” a anunțului de angajare.

Este bine de ştiut că din ce în ce mai mult, în ultima vreme, angajatorul apreciază nu neapărat numărul de ani într-o anumită tehnologie, cât calitatea şi complexitatea proiectelor în care ai fost implicat. Așa că nu uita să îți aranjezi și să îți organizez portofoliul pe Git cu toate proiecte la care ai lucrat până în prezent.

Pe partea de soft skills, seriozitatea, atitudinea pozitivă şi bunul simţ fac diferenţa între potenţialii candidaţi. Angajatorii preferă din ce în ce mai mult persoanele care se integrează uşor în echipă şi care sunt suficient de flexibile în ceea ce priveşte tehnologiile abordate, în funcţie de necesităţile fiecărui proiect.

În industria IT, cele mai solicitate tehnologii rămân în continuare Java, C++ și Python urmate de Javascript, SQL, Go, Ruby.

De asemenea, în topul obiectivelor profesionale ale candidaților ce se orientează către domeniul IT&C se numără posibilitatea de a deveni specialist, pachetul salarial atractiv și echilibrul viaţă profesională versus viaţă privată, iar criteriile principale în alegerea angajatorului includ beneficiile şi pachetul salarial, programul de lucru flexibil si mediul de lucru.

Din punct de vedere al exercițiilor tehnice, dificultatea acestora variează în primul rând în funcție de nivelul pentru vei susține interviul.

Dacă discutăm despre poziții de junior, discuțiile vor începe de la nivel teoretic, legate de noțiunile de bază, indiferent de domeniu: programare, networking, testare etc. Nu se urmărește cunoașterea definițiilor tehnice din spatele fiecărei noțiuni în parte, ci mai degrabă nivelul de înțelegere de care dai dovadă în legătură cu acestea. În ansamblu, aprecierea crește dacă noțiunile pot fi explicate cu propriile cuvinte (eventual și cu exemple), în detrimentul recitării unor paragrafe din cursuri.

În funcție de răspunsurile date, discuțiile progresează mai departe spre noțiuni din ce în ce mai avansate, depinzând și de ceea ce vei declara că ai parcurs și ai trecut în CV. Mai exact, dacă ai menționat parcurgerea unui curs de programare ce acoperă subiecte de clase, obiecte, design patterns și colecții de date – se va face cel mai probabil trecerea prin fiecare dintre acestea.

În cazul în care sunt trecute și proiecte pe care le-ai implementat, detaliile despre acestea vor face diferența. Nu este suficientă o enumerare a tehnologiilor folosite (ex: ”Am folosit HTML pentru pagina web și Python pentru logica din spate”) ci mai degrabă o explicare a logicii de implementare pentru fiecare componentă în parte, urmată de modul în care acestea se îmbină într-un produs final.

Pentru a merge pe exemple concrete vom discuta despre 3 poziții din domeniul IT&C în care veți fi supus unui test practic în cadrul procesului de recrutare:

  1. Dacă discutăm despre un interviu pe o poziție de Networkingtrebuie să cunoști lucruri precum:
  • detalierea nivelelor din stiva ISO/OSI – ce se întamplă la fiecare nivel, adresările realizate
  • explicarea modului în care un router și un switch iau decizii în momentul procesării traficului – nivelul OSI la care acestea lucrează, tipurile de adresare cunoscute, tabelele folosite și modul de populare a tabelelor în sine
  • detalierea cu un grad cât mai ridicat de amănunte a unui proces simplu de comunicare (ping între două calculatoare care se află în două rețele diferite, conectate prin unul sau mai multe routere) – ce procese sunt folosite, cum se realizează ARP, în ce situații pachetele nu pot ajunge la destinație etc.
  • diferența dintre protocoale care lucrează la același nivel al stivei OSI – ex: între TCP și UDP, care este logica urmată în procesul de retransmisie, ce procedee de retransmisie există etc.

Dacă treci cu succes prin aceste noțiuni, în funcție de nivelul tău poți merge mai departe în noțiuni de VLANs, STP, OSPF, EIGRP etc. Anumite firme pot alege să dea și o probă practică concretă care presupune configurarea de la zero a unei topologii într-un mediu de lucru virtual sau identificarea și repararea unor probleme într-o topologie existentă.

 

  1. Interviurile de juniori (sau internship-uri) când vine vorba de programare, vor avea aceeași structură teoretică la bază, indiferent de limbajul cu care se lucreză, urmând să se intre în noțiuni particulare pe măsură ce se progresează.
  • enumerarea și explicarea modului în care funcționează structurile de control – situații în care se alege o structură în detrimetrul alteia
  • colecțiile de date – liste, dicționare (JSONs), seturi – ce avantaje au fiecare dintre ele și când se folosesc
  • definirea claselor și a obiectelor – ce conține o clasă, ce reprezintă o instanță, modul în care se pot folosi componentele din cadrul clasei
  • ce sunt excepțiile, când apar acestea și cum putem să le tratăm în cadrul codului scris de noi
  • când este eficient să folosim fire de execuție și care sunt avantajele aduse de acestea dar și ce probleme pot crea

Pe lângă aceste capitole care sunt comune dar pot avea răspunsuri diferite în funcție de limbajul la care facem referire, mai pot apărea și întrebări specifice (ex: ce înseamnă event-based events, cum se pot alinia anumite elemente într-o pagină HTML, de ce se preferă programarea funcțională în detrimentul celei OOP etc.).

Este posibil să existe și o componentă practică a interviului, care să presupună scrierea de cod în limbajul important pentru proiect/firmă. Chiar și în mediul online, candidatul poate avea la dispoziție un timp de 1-2 ore să rezolve pe cont propriu o problemă și să se revină cu explicații legate de implementare sau să scrie cod chiar în timp real pe o platformă cum ar fi CodePile. Dificultatea problemelor ce se rezolvă în mod direct de față cu intervievatorul nu este foarte ridicată, dar se urmărește mai degrabă modul de gândire (e bine să explicați cu voce tare tot ceea ce faceți) – ordonări de liste, intercalări de elemente din mai multe liste, adăugarea și parcurgerea elementelor dintr-un dicționar, implementarea și instanțierea unei clase și apelul diverselor metode din cadrul acesteia.

Merită menționat că deși unele limbaje au la dispoziție metode din bibliotecile built-in pentru rezolvarea unor cerințe (ex: ordonare crescătoare de elemente, verificarea dacă un șir de caractere este palindrom sau nu), acestea pot să fie menționate, dar modul de rezolvare să fie independent de acestea – cu tot riscul să pară ca reinventați roata. În acest fel este dovedită logica și înțelegerea componentelor din limbaj.

  1. Legat de testare, interviul tehnic poate avea o structură mai neconvențională, mai ales când vine vorba despre persoane care nu au experiență explicită în domeniu. În primul rând, este apreciată cunoașterea unor noțiuni teoretice de bază:
  • ce este un test și care sunt componentele ce îl alcătuie
  • cum putem forma un plan de test
  • ce tipuri de testare putem avea în cadrul unui proiect și când este executată fiecare dintre acestea
  • ce reprezintă regresia și care sunt momentele în care aceasta trebuie să fie executată

Mai departe, întrebările pot varia – de la întrebări specifice domeniului pentru care se face testarea (networking, banking, web applications etc.) la cum ar aborda candidatul testarea pentru un obiect folosit de zi cu zi: scaun, frigider, monitor, televizor etc. În astfel de discuții se urmărește imaginația pe care o are candidatul legat de procesul de testare, în paralel cu urmărirea noțiunilor teoretice descrise mai devreme și capacitatea de organizare a acestuia.

Așadar, alocă timp de pregătire pentru fiecare interviu la care urmează să participi, ordonează-ți portofoliul de aplicații și recapitulează noțiunile tehnice. Asigură-te că știi foarte clar pentru ce poziție aplici și care sunt cerințele angajatorului pentru poziția respectivă.

Sponsori și parteneri