Breaking It Down: Cum să abordați orice problemă de interviu tehnic

O rețetă sigură pentru a descoperi cum se poate gestiona orice problemă.

1. Când primiți întrebarea (înainte de a scrie o singură linie de cod)

Cel mai simplu mod de a vă asigura că înțelegeți întrebarea este să parcurgeți cazurile de testare.

Lucruri de clarificat cu intervievatorul:
Care este aportul scontat? Care este rezultatul scontat?
Orice presupuneri pe care le aveți despre anumite cazuri de testare

După parcurgerea cazurilor de testare, luați notă de orice variabile pe care ar trebui să le urmăriți și ce tip de structuri de date ar avea cel mai mult sens pentru această problemă.

Gândiți-vă întotdeauna la modalități prin care puteți rezolva problema. Există o sub-problemă mai mică, mai ușoară, pe care o puteți rezolva? Și dacă da, cum ar arăta această soluție?

2. Scrierea codului (și ce să faci dacă rămâi blocat)

După ce îți dai seama de algoritmul tău și îți explici logica, următorul lucru pe care trebuie să-l faci este să-ți transpun ideea în cod.

În acest moment, forța brută este total ok. Crearea unei soluții de lucru (chiar dacă timpul de funcționare și eficiența spațiului său nu este perfectă) este mult mai bună decât să fii blocat în încercarea de a optimiza prematur codul tău.

Pe măsură ce îți scrii codul, nu uita să:

  1. Vorbiți clar despre ce bucată de cod lucrați în prezent și de ce îl adăugați la soluția dvs.
  2. Încercați să folosiți nume variabile evidente și faceți-vă codul prietenos pentru citit
  3. Vorbeste cu intervievatorul prin procesul de gândire și despre ce pro și contra pot veni cu soluția ta
  4. Faceți codul dvs. modular atunci când este posibil (funcțiile de ajutor sunt prietenii dvs.!)

Despre manevrarea acelei tăceri incomode dacă rămâi blocat sau ai nevoie de ceva timp să te gândești ...

Ni se întâmplă tuturor și este perfect normal să întâlnim acest lucru în timpul unui interviu. În experiența mea, pentru aproape toate interviurile mele tehnice vine un moment în care trebuie să mă gândesc la mine și nu sunt în stare să vorbesc cu intervievatorul. Când se întâmplă acest lucru, spun de obicei ceva după cum urmează:

Am nevoie de o secundă să mă gândesc la soluția mea și să văd dacă are sens
Nu sunt deloc sigur dacă aceasta este abordarea corectă, permiteți-mi să îmi verific dublu activitatea
Se pare că poate (introduceți o parte din soluția propusă) s-ar putea să nu funcționeze efectiv (inserați vreun caz marginal) ... Mă gândesc la cum să abordez asta

Intervievatorul este de obicei de partea ta și vrea să te vadă să reușești - amintește-ți doar dacă îți oferă un indiciu, nu-l ignora niciodată!

3. Revizuirea soluției dvs. și adăugarea de optimizări

După ce ați terminat de scris codul, urmăriți-l cu un caz de testare pentru a vă asigura că programul dvs. se comportă așa cum vă așteptați.

În acest moment este bine să avem în vedere:

  1. Posibile cazuri de margine pe care le-ați ratat
  2. Orice eroare dezactivată (în special la indexarea sau folosirea unei bucle)
  3. Există vreo repetitivitate în codul dvs. pe care să îl puteți curăța?

Întrebări de pus atunci când încercați să optimizați:

  1. Care este timpul de rulare actual și complexitatea spațiului?
  2. Există vreun loc de îmbunătățire dacă ați utilizat o structură de date diferită sau ați modificat ușor abordarea dvs.?

Când analizați codul dvs., amintiți-vă că este complet posibil să fi făcut o eroare neintenționată - încercați să urmăriți programul ca și cum ar fi munca altcuiva pe care o vedeți pentru prima dată!

Înveliți totul

Intervievarea este o abilitate și, ca orice altă abilitate, poate fi îmbunătățită cu practica! Să lucrezi prin probleme tehnice, să te simți confortabil cu limbajul tău de alegere și cu structurile de date pot fi toate lucrurile pe care le faci înainte pentru a-ți crește șansele de performanță puternică în timpul interviului.

Pentru o listă de întrebări, structuri de date și resurse pentru revizuire, puteți vedea mai multe aici: Planul de 4 săptămâni pentru a vă lega următorul interviu tehnic

Amintiți-vă că fiecare interviu este o experiență de învățare și indiferent de rezultat, ați obținut o informație valoroasă pe care nu ați avut-o anterior. A rămâne pozitiv și a învăța din feedback este o modalitate excelentă de a vă îmbunătăți în mod continuu! Mult noroc!

Dacă acest ghid a fost în măsură să vă ajute în vreun fel, vă rugăm să trimiteți un clap sau două peste :) înseamnă cu adevărat multe pentru mine - mulțumesc și mult noroc cu călătoria dvs.!