Descifrarea testului HackerRank: 100% scor ușor de obținut

X

Privacy & Cookies

Acest site folosește cookies. Continuând, sunteți de acord cu utilizarea acestora. Aflați mai multe, inclusiv cum să controlați modulele cookie.

Am reușit!

Publicitate

Este bine cunoscut faptul că majoritatea aspiranților la programare nu pot codifica nici măcar o pungă de hârtie. În consecință, industria tehnologică face presiuni pentru o selecție mai lungă, mai dură și din ce în ce mai extremă.

Interviul cu tablă albă a fost standardul pentru o vreme, urmat de puzzle-uri , apoi de FizzBuzz.

Ultima modă este HackerRank. Acesta introduce teste automate de programare pe care candidatul trebuie să le facă înainte de a i se permite să vorbească cu cineva din companie.

O mulțime de companii foarte bune folosesc HackerRank ca un instrument de preselecție. Dacă nu-l putem evita, trebuie să-l îmbrățișăm.

Ce găsim într-un test HackerRank?

Există 3 tipuri de întrebări care pot fi întâlnite într-un test:

  • Întrebări cu alegere multiplă: „Care este complexitatea de timp pentru a găsi un element într-un arbore roșu și negru?”. -A- -B- -C- -C- -D-
  • Exercițiu de codificare: „<Descrierea lungă a unei probleme de rezolvat>, <formatul datelor de intrare>, <formatul datelor de ieșire>.” Începeți să codificați o soluție.
  • Exercițiu SudoRank: „Your ssh credentials are tester:[email protected] <descriere lungă a ceea ce este în neregulă cu acel server>.” SSH la server și începeți să reparați.

Orice cantitate de întrebări poate fi pusă împreună, în orice ordine, pentru a face un test complet. O companie ar trebui să dea câteva indicații cu privire la ce să se aștepte în testul său.

HackerRank oferă o bibliotecă de sute de întrebări și exerciții gata de utilizare. Este, de asemenea, posibil ca o companie să își scrie propriile întrebări (și este recomandat).

Înfrângerea întrebărilor cu alegere multiplă

Majoritatea întrebărilor cu alegere multiplă pot fi rezolvate printr-o căutare corespunzătoare pe Google. De obicei pe titlu, uneori pe câteva cuvinte selectate din text.

hr question dropping privileges
Select Text => Click dreapta => Quick Search
hr google dropping privileges
Google a vorbit! => all in favour of setuid()

Defeating Coding Exercises

Cercetarea unui paragraf de 10 rânduri în Google nu este o opțiune acceptabilă. Ca să nu mai vorbim de faptul că site-ul HackerRank dezactivează copy/paste în zona de descriere.

Ocolul este să căutați titlul exercițiului. Un titlu identifică în mod unic o întrebare pe HackerRank. Acesta va fi menționat în soluțiile aferente și în postările de pe blog. Perfect pentru a fi indexat de Google.

hr question lonely integer
Select Text => Click dreapta => Quick Search
hr google lonely integer.png
Touché!

Primul rezultat este întrebarea, al doilea rezultatul este soluția. Ei bine, asta a fost ușor.

Bonus: Această soluție google este de fapt greșită… și totuși dă toate punctele.

// int main() { int N; cin >> N; int tmp, result = 0; for (int i = 0; i < N; i++) { cin >> tmp; result ^= tmp; } cout << result; return 0;}

Această soluție este corectă doar dacă numerele duplicate sunt în perechi. Toate testele unitare HackerRank se întâmplă să se încadreze în acest criteriu din pură coincidență .

Original, am pus această întrebare simplă la începutul unui test pentru încălzire. Am primit acest răspuns de la un candidat din primul nostru lot de candidați. A fost destul de derutant, care sunt șansele ca cineva să vină cu un algoritm atât de alambicat dacă i s-ar da doar textul din întrebare? O investigație rapidă a dezvăluit rapid sursa.

Addendum:

Întrebarea „Lonely Integer” este formulată ușor diferit pe site-ul public HackerRank și în biblioteca privată HackerRank, dar intrarea, ieșirea și testele unitare sunt aceleași. De aici și motivul pentru care soluția este oprită, dar funcționează. Este evident că HackerRank copiază întrebările din comunitate în biblioteca profesională. Este un alt copy-cat arestat!

Recruiter Insights: Cheating brought to the next level

Avem o mulțime de candidați care vin de la recrutori. Cum se compară aceștia cu candidații din alte surse?

Să vedem statisticile la o întrebare grea .

hr insights stock maximizează distribuția
Distribuția pe toate încercările, de către toate companiile (scară logaritmică). 1234 zero vs. 303 punctaj complet.

Majoritatea candidaților primesc 0 puncte: au rămas fără timp, nu au putut răspunde, algoritm greșit sau soluții incomplete/parțiale (adică un început bun, dar nu suficient pentru a trece încă vreun test unitar).

Am fi vrut să arătăm aceeași distribuție pe ansamblul nostru de candidați, dar HackerRank nu mai oferă acest grafic. Obișnuia să o facă.

În orice caz, ne amintim numerele aproximative. Distribuția pentru candidații noștri este de aproximativ 50/50% pe fiecare extremă. Este semnificativ mai bună decât cea de 75/17% din populația generală. Putem corela acest număr cu timpul petrecut la întrebare și cu o revizuire vizuală a codului.

Rezultatul este că candidații care vin de la recrutori au performanțe mai bune, în special la exercițiile dificile. De fapt, este de necrezut cât de mult mai bine performează! (Felicitări speciale pentru băieții care reușesc să rezolve o problemă -cu o soluție perfect optimizată- în mai puțin timp decât ar fi nevoie pentru a o citi efectiv =D).

Concluzia este clară și simplă: Recrutorii noștri dau testul candidaților.

Toată lumea o face, doar că nimeni nu vorbește despre asta
Dăruiesc recrutorii întrebările? Bineînțeles!

Lecția învățată:

  • Pentru candidați: Nu uitați să cereți sprijinul recrutorului înainte de test.
  • Pentru recrutori: Nu uitați să antrenați candidatul pentru test și să îl instruiți să noteze modificările (dacă există).
  • Pentru companii: Feriți-vă de candidații cu punctaj mare care vin de la recrutori! În special, nu calibrați punctajul pe baza scorurilor extreme obținute de câțiva trișori.

Provocare: Cât timp vă ia să rezolvați o provocare de tranzacționare? .

Teste personalizate HackerRank

Compania poate scrie exerciții personalizate și ar trebui să o facă. Este greu și necesită abilități deosebite, dar cu siguranță merită.

Este singura soluție eficientă împotriva Google, dacă este făcută cu atenție. (De fapt, este surprinzător de dificil să faci exerciții care să fie simple ȘI să nu fie ușor de găsit cu Google pe 1000 de tutoriale și forumuri de codare).

Din păcate, nu va ajuta împotriva recrutorilor. (Cu excepția primului lot de candidați care vor fi sacrificați ca cercetași).

Concluzie

Am stricat preselecția HackerRank? Bineînțeles că nu! Există o ofertă nesfârșită de boți incapabili să facă diferența între Internet și Internet Explorer.

Am putea scrie o carte în care să învățăm răspunsurile la 90% din problemele interviurilor de programare, dar 99% dintre cei care caută un loc de muncă nu ar citi-o niciodată. La naiba, a fost scrisă de ceva vreme și nu a avut niciun fel de impact.

Doar acea mână de dezvoltatori care urmăresc blogurile/știrile sau caută „Ce este HackerRank?” vor putea veni mai bine pregătiți.

Dacă acest articol face HackerRank mai bun și mai relevant. Acum un test se referă la căutarea de ajutor pe Google și la repararea unor fragmente subtil rupte de cod neindentat scrise într-un limbaj greșit.

HackerRank face în sfârșit o selecție pentru capacități relevante pentru job!

Cracking the coding interview book cover

Un ultim sfat. Vei avea nevoie de pregătire dacă încerci să treci de baremul interviurilor la companiile bune de tehnologie și nu ai avut șansa de a participa la MIT. Această carte este standardul de aur atunci când vine vorba de întrebări despre structuri de date și algoritmi. Foarte recomandat. Conține sute de întrebări care vă vor fi puse la nesfârșit, în orice companie. Cel puțin, citiți previzualizarea gratuită de pe Amazon.

.

Leave a Reply