de Sun-Li Beatteay

Să vorbim despre interviurile de tip whiteboard și despre posibilele alternative

0*PbKAbM5J891Qldc2
Credit: linkedin.com

Nu este o știre pentru nimeni că mulți ingineri urăsc întrebările interviurilor pe bază de tablă albă.

Indiferent dacă este pe Twitter, Medium sau LinkedIn, este ușor să găsești pe cineva care să se ventileze. Expresia „procesul de angajare este rupt” este folosită atât de des încât a devenit un clișeu.

Din păcate, o mare parte din această frustrare cade pe auz.

În ciuda corului de mânie care o înconjoară, „tabla albă” este încă un element esențial în interviurile de inginerie software. O parte din aceasta se datorează faptului că dezvoltatorii își exprimă rapid resentimentele, dar încetinesc să ofere alternative mai bune.

Există alternative mai bune?

Această întrebare mi-a trecut în minte recent. Acum patru săptămâni, Am obținut primul meu job cu inginerie software cu normă întreagă. Deși nu sunt încă implicat în procesul de angajare, voi fi în cele din urmă.

Fiind de cealaltă parte a mesei în urmă cu doar o lună, înțeleg cât de imprecisă poate fi interviul. Când vine rândul meu să pun întrebările, vreau să mă asigur că îmi evaluez potențialii colegi cu acuratețe și corectitudine.

Această situație m-a dus la două întrebări:

  1. Sunt interviurile de tablă albă cea mai bună alegere?
  2. Dacă nu, care sunt cele mai bune alternative?

În această postare, voi încerca să răspund la aceste întrebări. Rețineți, acestea sunt opiniile mele personale care au fost modelate de propria mea experiență de intervievare.

Voi încerca să fiu cât mai obiectiv posibil abordând această sarcină într-un mod real de inginerie software: examinând toate opțiunile și cântărindu-le compromisurile.

Sunt interviurile cu tablă albă cele mai rele?

Sa vorbim despre interviurile de tip whiteboard si despre posibilele
Credit: twitter.com

Primul pas în acest proces este de a examina tabla albă.

Pro:

  1. Efort rapid și redus
  2. Nu depinde de limbă sau domeniu
  3. Știți (în general) la ce să vă așteptați
  4. Asistență comunitară (Glassdoor, LeetCode, Pramp și așa mai departe)

Contra:

  1. Norocul este un factor important (algoritm loterie)
  2. Nu testează neapărat aptitudinea inginerească
  3. Favorizează tinerii ingineri și absolvenții recenți

Pentru companiile care solicită inginerilor să înțeleagă puternic elementele fundamentale ale CS, algoritmi de nivel scăzut și care nu depind de biblioteci, interviul pentru whiteboard este perfect.

SpaceX, MacOS / Windows și Facebook React au fost construite de ingineri cu astfel de cunoștințe. Este de așteptat să obțineți un interviu de tablă de la una dintre aceste companii.

În calitate de candidat la job, îmi plac interviurile pe tablă albă. Știu la ce să mă aștept. Majoritatea întrebărilor algoritmice se încadrează în aceste subiecte generale:

  • Matrice / Șiruri
  • Copaci binari
  • Liste conectate
  • DFS / BFS
  • Backtracking
  • Programare dinamică

Știind acest lucru din timp înseamnă că pot studia pentru asta. Și există un pletoră de studiu instrumente la alege din. Pregătirea interviurilor tehnice este o întreagă industrie proprie.

Din acest motiv, interviurile de tip whiteboard nu sunt cea mai bună opțiune pentru fiecare companie. O mare parte din aceasta se reduce la noroc, memorare și oricine a petrecut cel mai mult timp studiind.

Nu toată lumea poate studia timp îndelungat pentru a stăpâni algoritmi.

Am avut norocul că am putut și l-am întrecut pe alți ingineri care nu puteau. Sunt un inginer mai bun decât toți? Poate, dar nu sunt sigur că un interviu de whiteboarding este cel mai bun mijloc de a-l dezvălui.

Deci, dacă există îndoială că interviul pentru tablă albă este cel mai bun instrument pentru job, ce ar putea fi mai bun?

Să aruncăm o privire la unele dintre alternative.

Codificarea provocărilor prin computer

1611925151 183 Sa vorbim despre interviurile de tip whiteboard si despre posibilele
Credit: lolboom.net

Pro:

  1. Folosiți un computer și un mediu de dezvoltare familiar
  2. Poate fi realizat de la distanță prin partajarea ecranului
  3. Toate celelalte avantaje ale interviurilor pe tablă albă

Contra:

  1. Mai stricte în ceea ce privește sintaxa și capacitatea de rulare.
  2. Mediul de programare și pluginurile pot juca un factor important
  3. Aceleași dezavantaje ale interviurilor pe tablă albă

Provocările de codare de pe un laptop sunt verișoarele mai puțin riguroase ale interviului de whiteboarding.

Candidații au avantajul de a utiliza propriile computere. Acestea pot fi realizate de la distanță sau într-un mediu de programare pereche.

Un lucru frumos pe care l-am observat despre acestea este că, de obicei, vor fi mai ușoare decât întrebările de la tablă albă. Majoritatea întrebărilor pe care le-am primit au implicat manipularea șirurilor sau algoritmi simpli pentru care orice inginer experimentat nu ar trebui să studieze.

Dezavantajul este că există un accent mult mai mare pe funcționalitate.

În timpul căutării de locuri de muncă, am fost întrebat de Schimbarea monedei problemă de două ori. Una ca provocare la tablă albă și cealaltă pe un editor.

Pentru provocarea cu tablă albă, am scăpat cu explicarea în principal a soluției mele. Pe laptopul meu, eram așteptat să scriu teste de caz marginale și să garantez că soluția mea a funcționat.

O parte din motivul pentru care îmi place tabla albă se datorează clemenței. Nimeni nu va rula funcția dvs. scrisă printr-un compilator. Atâta timp cât intervievatorul înțelege la ce te gândești și scrierea arată suficient de bine, primești credit complet.

Nu este așa cu provocările de cod.

Unii ar putea susține că accentul pe funcționalitate este mai bun, deoarece suntem plătiți să scriem un cod de lucru. Este adevărat, dar nu suntem plătiți să o facem în sprinturi de 30-45 de minute.

Să sperăm doar că nu vei deveni nervos în timpul interviurilor. Un mic bug care provoacă eșecul testelor și câteva minute de depanare ar putea fi diferența dintre o „angajare puternică” sau o trecere.

Provocările de cod suferă în continuare de aceleași scurtări ca și tabla albă, deoarece multe dintre ele sunt bazate pe algoritmi.

Cu presiunea suplimentară a funcționalității, poate face întrebările și mai dificile, în ciuda mediului confortabil. Dacă deja nu vă plac problemele de algoritm, provocările de cod nu vor fi mult mai bune.

Luați evaluări acasă

1611925151 0 Sa vorbim despre interviurile de tip whiteboard si despre posibilele

Pro:

  1. Poate lucra la asta în pijamale
  2. De obicei se acordă peste o săptămână pentru a lucra la sarcină
  3. Folosiți propriul editor și mediul de dezvoltare
  4. Poate fi un nou plus la portofoliu
  5. De obicei, mai distractiv decât tabla albă

Contra:

  1. Nivelul de dificultate poate varia drastic
  2. Mult mai mult efort și consum de timp decât provocările de codificare
  3. Poate fi dependent de domeniu
  4. Poate duce la creep-ul caracteristicilor din cauza concurenței
  5. Nu reprezintă munca de zi cu zi

Mulți ingineri preferă să se ocupe de acasă. Termenele pentru predarea lor sunt de obicei flexibile, iar candidații ajung să codifice efectiv. Nu este un șoc, programatorii preferă acest lucru decât să stea în fața unei tablă albă, în timp ce sunt judecați în tăcere.

Cu toate acestea, testele de acasă au unele dezavantaje majore.

În primul rând, sunt ușor de manipulat.

Multe companii își găzduiesc testele pe GitHub. Introduceți „Provocare” sau „Testare” în căutarea GitHub și veți găsi multe. Acest lucru îi va oferi candidatului priceput mult timp pentru a cerceta preventiv provocarea.

Nu este chiar o plângere. Mai mult decât un pro-tip.

Ce este o problemă este că este suficient de ușor să găsiți răspunsurile altor persoane la aceste provocări și să le copiați. O mulțime de ingineri păstrează răspunsurile pentru a lua provocări acasă pe profilurile lor GitHub.

Puteți chiar să-l testați singur. Tastați „ Provocare” în căutarea GitHub și vedeți ce găsiți.

Locuiesc lângă sediul Etsy din Brooklyn și eram curios dacă aș putea găsi răspunsurile la unele dintre testele lor. „Etsy Challenge” a dezvăluit patru. Au fost și mai multe sub „Etsy Test”.

Sa vorbim despre interviurile de tip whiteboard si despre posibilele

Este adevărat că companiile își pot schimba evaluările. Cu toate acestea, poate fi o problemă să schimbați un proces de interviu la fiecare două luni, din cauza detaliilor care au fost dezvăluite.

În al doilea rând, nivelul de dificultate și timpul necesar pentru a termina aceste provocări variază foarte mult.

În timpul ultimei mele căutări de locuri de muncă, mi s-au acordat patru misiuni de acasă. Trei dintre companii au spus că ar trebui să dureze doar 3-5 ore până la finalizare.

Toți mi-au luat mai multe zile.

Principalul motiv pentru aceasta a fost că provocările erau deseori specifice domeniului. Au fost necesare câteva ore de cercetare a documentelor API și a noilor tehnologii.

A patra companie a luat o provocare care ar putea dura cu ușurință o săptămână și mi-a dat două zile. A trebuit să construiesc un aplicație de chat funcțională care acceptă comenzi slash.

Sa vorbim despre interviurile de tip whiteboard si despre posibilele

A fost un proiect distractiv și interesant, dar mi-a cerut să renunț la tot ceea ce făceam timp de două zile pentru a-l finaliza.

Dacă un candidat are norocul de a intervieva cu mai multe companii simultan, acesta poate deveni un loc de muncă cu normă întreagă doar lucrând la aceste provocări.

În plus, dezvoltatorii profesioniști trebuie să lucreze la baze de cod vechi și să facă față termenelor. Un proiect greenfield de o săptămână nu va evalua cât de bine funcționează intervievatul într-un mediu cu ritm rapid.

În general, îmi place să iau sarcinile acasă ca un ecran inițial al abilității unui candidat. Acestea fiind spuse, acestea ar trebui să fie legate de postul la care candidează candidatul și nu ar trebui să ia un timp obscen pentru a termina.

Proiectat / Contract de închiriat

Pro:

  1. Obțineți șansa de a lucra cu candidatul / echipa
  2. Fiți plătit pentru muncă
  3. Lucrează la proiecte reale
  4. Sunt evaluați cât de bine lucrați cu echipa și codul navei

Contra:

  1. Angajament îndelungat
  2. Lucrul fără garanție de angajare
  3. Fără beneficii pentru sănătate ca antreprenor
  4. Poate pune candidatul într-o poziție proastă de negociere
  5. Limbă dependentă

Interviurile bazate pe proiecte sunt rare. Însă destul de multe companii sunt alături de ele, precum Basecamp și Automatic. Înțeleg de ce.

Aceste interviuri sunt probabil cel mai corect mod de a evalua abilitățile cuiva și de a le evalua ca membru al echipei. Compania începe să lucreze direct cu ei și să vadă cum se ocupă de sarcini în echipă.

De asemenea, candidatul are șansa de a evalua compania și de a stabili dacă acesta este tipul de mediu în care ar dori să lucreze.

Câștig-câștig. Sau cel puțin așa se pare.

Cu toate acestea, în calitate de candidat la locul de muncă, nu aș participa niciodată la interviuri bazate pe proiecte sau în roluri de contract pentru angajare. Negativele depășesc cu mult pozitivele.

Primele câteva luni ale oricărui loc de muncă sunt de obicei cele mai dificile. Te aclimatizezi cu o nouă echipă, cultură, bază de coduri. Acum imaginați-vă că lucrați la un proiect, fără să știți dacă veți avea un loc de muncă până la sfârșit.

Un bun prieten de-al meu a intervievat recent la Automatic și a confirmat cât de stresant poate fi. Totul, de la modul în care interacționați cu colegii de muncă până la întrebările pe care le puneți sunt judecate. În aceste medii, acolo este așa cum este o „întrebare stupidă”.

Mai grav este că a fost lăsat să plece după contractul de trei luni. Din fericire, nu l-a lăsat să-și afecteze stima de sine. Își cunoaște abilitatea și încarcă înainte. Nu sunt sigur dacă eu sau mulți alți ingineri am putea face același lucru atât de ușor.

Mai mult, contractele pun căutătorul de locuri de muncă într-o poziție îngrozitoare de negociere. Puterea în negocieri vine din disponibilitatea de a pleca.

Până la sfârșitul perioadei de contractare pentru angajare, potențialul candidat nu va mai avea cipuri de negociere. Nu vor mai avea alte oferte și au investit deja zeci sau sute de ore în proiectele lor, în funcție de durata contractului.

Aceștia ar fi motivați să ia poziția chiar dacă nu este alegerea lor preferată. Alternativa este să vă înscrieți pe piața muncii înapoi la primul loc.

Fallacy Cost Sunk la cele mai bune.

În timp ce interviurile pentru tablă albă pot să nu fie ideale, aș face o sută dintre ele înainte să fac vreodată un interviu bazat pe proiecte.

Deci care este cel mai bun?

După cum ați fi putut ghici: Depinde ™.

Compensările par a fi între viteză și efort versus precizie. Fiecare metodă se sacrifică una pentru cealaltă. Depinde de fiecare companie să judece singuri aceste compromisuri. SpaceX va avea cel mai probabil un proces diferit de startup-ul mic din New York.

Ceea ce este adevărat este că o companie SaaS ar trebui să solicite candidaților să scrie algoritmi de programare dinamică numai dacă îi ajută să determine abilitățile inginerului. Nu doar pentru că Google o face.

Dacă aș proiecta procesul de interviu pentru echipa mea de la DigitalOcean, aș folosi un amestec de evaluări de acasă și provocări de cod / exerciții de împerechere. De asemenea, aș evalua înțelegerea lor despre disponibilitate și sisteme distribuite printr-o sesiune de întrebări și răspunsuri și provocare de proiectare a sistemului.

Vestea bună este că echipa mea face deja acest lucru. Procesul dur, dar echitabil de interviu al DigitalOcean a fost unul dintre motivele pentru care am acceptat oferta lor. Mi-a dovedit că au trecut deja prin acest proces de autoexaminare și au aflat cum să-și evalueze corect candidații.

Vă rog să-mi spuneți care este metoda dvs. preferată de interviu în comentariile de mai jos!

În cele din urmă, pentru toți inginerii care doresc să vadă schimbarea procesului de interviu, începeți să veniți cu idei. Am văzut prea mulți ingineri disputând despre interviurile de la tablă albă doar pentru a continua procesul odată ce sunt angajați, deoarece este prea mult de lucru să-l schimbi.

Nu fi acea persoană.

Nu te mai plânge.

Găsiți soluții.