Toate ghidurile

Cum te pregătești pentru primul interviu tehnic

Etapele unui proces de recrutare pentru junior, ce întrebări apar, cum exersezi live coding-ul și ce faci când nu știi un răspuns.


Primul interviu tehnic sperie mai ales pentru că nu știi la ce să te aștepți. Vestea bună este că, pentru rolurile de junior, majoritatea întrebărilor se învârt în jurul acelorași fundamente, iar felul în care gândești contează adesea la fel de mult ca răspunsul corect. Ghidul acesta descrie etapele obișnuite, ce să exersezi și cum să reacționezi când nu știi un răspuns.

Cum arată de obicei procesul

Fiecare companie are propriul proces, dar etapele de mai jos apar frecvent, în diverse combinații:

EtapăCe se verificăCum te pregătești
Screening cu recruiterulmotivația, limba, așteptările, disponibilitateapovestea ta în două minute, întrebări despre rol
Test onlinerezolvarea de probleme, de obicei cu limită de timpexerciții pe platforme de tip HackerRank sau Codility
Interviu tehnicfundamente, proiectele tale, uneori live codingrecapitulare și exersat cu voce tare
Temă pentru acasăcum lucrezi la un proiect mic, calitatea coduluiproiecte proprii terminate, cu teste și README
Interviu finalpotrivirea cu echipa, comunicarea, valorileexemple concrete din experiența ta

Întreabă recruiterul, încă de la primul apel, care sunt etapele, cât durează fiecare și ce tip de exerciții tehnice urmează. E o întrebare normală și te ajută să te pregătești țintit.

Fundamentele care apar aproape mereu

Limbajul tău principal

Trebuie să-l stăpânești la un nivel la care poți explica concepte, nu doar să le folosești. Câteva teme frecvente:

  • JavaScript/TypeScript: let, const și var, scope, closures, this, promisiuni și async/await, metodele de array, diferența dintre == și ===, tipurile din TypeScript.
  • Python: liste, dicționare, seturi, comprehensions, obiecte mutabile și imutabile, excepții, capcana argumentelor implicite mutabile.
  • Java sau C#: OOP (moștenire, interfețe, polimorfism), colecții, excepții, tipuri valoare și tipuri referință.

Web, date și unelte

  • HTTP: metode, status codes, headers, ce se întâmplă când scrii o adresă în browser.
  • REST și JSON; diferența dintre autentificare și autorizare.
  • SQL: SELECT, JOIN, GROUP BY, indecși. Dacă ai goluri aici, roadmap-ul SQL e un punct bun de pornire.
  • Git: branch, merge, rebase, rezolvarea unui conflict.

Specificul rolului

  • Frontend: DOM, layout cu CSS (flexbox, grid), accesibilitate, componente React și starea lor.
  • Backend: design de API, baze de date, caching, tratarea erorilor.
  • QA: tipuri de testare, cazuri de test, raportarea unui bug, automatizare.
  • Data: SQL avansat, curățarea datelor, interpretarea unui grafic.

Algoritmi: cât e suficient pentru un junior

Depinde mult de companie. Unele pun accent pe probleme algoritmice, altele aproape deloc și preferă discuții despre proiecte sau o temă practică. Un nivel rezonabil pentru un junior:

  • complexitatea Big-O la nivel intuitiv: de ce o buclă în buclă înseamnă O(n²);
  • array-uri, string-uri, hash maps (dicționare), seturi, stive, cozi;
  • tehnici de bază: doi pointeri, fereastră glisantă, recursivitate simplă, sortare;
  • noțiuni despre arbori și grafuri, mai ales parcurgerile.

Un exemplu clasic: găsește în listă două numere care adunate dau o valoare țintă. Soluția naivă verifică toate perechile, adică O(n²). Cu un dicționar ajungi la O(n):

def doua_numere(numere, tinta):
    vazute = {}  # valoare -> index
    for i, x in enumerate(numere):
        complement = tinta - x
        if complement in vazute:
            return vazute[complement], i
        vazute[x] = i
    return None

print(doua_numere([3, 8, 11, 5], 13))  # (1, 3)

La interviu contează să poți explica de ce a doua variantă e mai rapidă și ce cost are: memorie suplimentară pentru dicționar. Pentru un plan structurat de exersare, vezi roadmap-ul de algoritmi pentru interviuri.

Mai bine puține probleme pe care le înțelegi complet și le poți rezolva din nou peste o săptămână decât zeci de probleme rezolvate cu soluția deschisă în tab-ul de alături.

Live coding: gândește cu voce tare

La live coding, intervievatorul vrea să vadă cum abordezi o problemă. Zece minute de tăcere urmate de cod sunt cea mai proastă variantă, chiar dacă rezultatul e corect. Un proces în șase pași:

  1. Reformulează problema cu cuvintele tale și pune întrebări: ce fel de input primești, poate fi gol, există duplicate?
  2. Ia un exemplu mic și rezolvă-l de mână, pe hârtie sau în comentarii.
  3. Propune o soluție simplă, chiar dacă nu e optimă, și spune ce complexitate are.
  4. Îmbunătățește-o, dacă ai timp: „Pot evita bucla dublă folosind un dicționar.”
  5. Scrie codul, explicând ce faci pe măsură ce scrii.
  6. Testează pe exemplul tău și pe cazuri limită: listă goală, un singur element, valori negative.

Fraze utile:

  • „Înainte să încep, vreau să verific dacă am înțeles corect...”
  • „O primă variantă ar fi..., dar are complexitate O(n²). Să văd dacă pot face mai bine.”
  • „Nu sunt sigur de sintaxa exactă; în mod normal aș verifica în documentație. Pot scrie în pseudocod?”

Exersează în condiții cât mai apropiate de cele reale: cu cronometru, cu voce tare, cu cineva care te ascultă. Dacă nu ai pe cine, poți simula un interviu cu tutorul AI: cere-i o problemă de nivel junior și roagă-l să nu-ți dea soluția, ci doar indicii.

Tema pentru acasă

  • Citește cerința de două ori și pune întrebări înainte să începi. Întrebările bune arată maturitate.
  • Respectă timpul sugerat. Dacă nu termini, scrie în README ce ai lăsat deoparte și cum ai continua.
  • Pune accent pe claritate: structură, nume bune, teste pentru logica principală, instrucțiuni de rulare.
  • Explică deciziile în README, inclusiv compromisurile pe care le-ai făcut.
  • Verifică regulile legate de AI. Unele companii permit asistenții, altele nu. Dacă îi folosești, fii transparent și asigură-te că poți explica fiecare linie, pentru că de obicei urmează o discuție pe codul tău.

Întrebările despre proiectele tale

Pentru un junior care se reprofilează, proiectele personale sunt adesea subiectul principal al discuției. Pregătește, pentru fiecare proiect din CV, răspunsuri la:

  • Ce problemă rezolvă și pentru cine?
  • De ce ai ales tehnologiile respective?
  • Care a fost partea cea mai grea și cum ai depășit-o?
  • Ce ai face diferit acum?
  • Ce ar trebui schimbat dacă aplicația ar avea de o sută de ori mai mulți utilizatori?

Deschide codul înainte de interviu. E neplăcut să nu-ți recunoști propria funcție, iar intervievatorii pot cere să parcurgi pe ecran o bucată din proiect.

Partea comportamentală și povestea reprofilării

Aproape sigur vei fi întrebat „De ce IT?” și „De ce acum?”. Pregătește un răspuns de 1-2 minute, cu structura:

  1. ce făceai înainte și ce ai învățat acolo;
  2. momentul în care ai descoperit programarea;
  3. ce ai făcut concret de atunci (proiecte, cursuri, ritmul de studiu);
  4. de ce te interesează acest rol și această companie.

Pentru întrebările de tipul „Povestește-mi despre o situație în care...”, folosește metoda STAR:

LiterăÎnseamnăExemplu scurt
SSituațiaRapoartele lunare cereau două zile de muncă manuală.
TSarcinaTrebuia să reduc timpul fără să cresc riscul de erori.
AAcțiuneaAm învățat Python și am scris un script care unea fișierele și verifica totalurile.
RRezultatulRaportul se genera în câteva minute, iar echipa a început să-l folosească lunar.

Exemplele din cariera anterioară sunt perfect valide. Un conflict rezolvat, un termen strâns sau o greșeală asumată se transferă bine în orice echipă.

Întrebări pe care să le pui tu

La final, aproape mereu ți se dă cuvântul. Câteva întrebări utile:

  • Cum arată primele trei luni pentru un junior în echipa voastră?
  • Există un mentor sau un buddy desemnat?
  • Cum se face code review?
  • Ce tehnologii folosește echipa și cum se iau deciziile tehnice?
  • Care ar fi cea mai mare provocare pentru cineva nou în acest rol?

Logistica

Online: testează camera, microfonul și partajarea ecranului cu o zi înainte; oprește notificările; ține deschis un editor cu un proiect gol în limbajul tău; ai la îndemână apă și o foaie pentru notițe.

La birou: verifică traseul, ajunge cu zece minute mai devreme, ia cu tine CV-ul și lista de întrebări.

În ambele cazuri, recitește anunțul și ce ai aflat despre companie cu o oră înainte.

Când nu știi răspunsul

Se va întâmpla și e normal. Diferența o face reacția ta:

  • Nu inventa. Un răspuns greșit spus cu siguranță face o impresie mai proastă decât un „nu știu”.
  • Spune ce știi în jurul subiectului: „Nu am lucrat cu WebSockets, dar știu că păstrează o conexiune deschisă, spre deosebire de cererile HTTP obișnuite.”
  • Gândește cu voce tare spre un răspuns plauzibil și spune clar că e o presupunere.
  • Notează întrebarea și caută răspunsul după interviu.

După interviu

  • Scrie imediat toate întrebările pe care ți le amintești și ce ai răspuns.
  • Dacă primești un refuz, poți cere politicos feedback. Nu toate companiile oferă, dar unele o fac.
  • Tratează fiecare interviu ca pe o sesiune de antrenament. Primele sunt de obicei cele mai grele, iar diferența se simte după câteva încercări.

Un plan de pregătire pe patru săptămâni

SăptămânaFocus
1recapitularea limbajului principal și a conceptelor web
2probleme algoritmice de bază, rezolvate cu voce tare
3proiectele tale: recitești codul, pregătești răspunsurile și povestea reprofilării
4simulări complete de interviu, cu cronometru și cu cineva care te evaluează

Pașii următori

  1. Scrie astăzi răspunsul la „De ce IT?” și cronometrează-l.
  2. Alege o listă de probleme de bază și rezolvă câteva pe săptămână, cu voce tare.
  3. Programează o simulare de interviu cu un prieten din IT sau cu tutorul AI.
  4. După fiecare interviu real, actualizează-ți lista de teme de recapitulat.