Cracking the HackerRank Test: 100% score made easy

X

Privacy & Cookies

Questo sito utilizza i cookies. Continuando, accetti il loro utilizzo. Per saperne di più, incluso come controllare i cookie.

Capito!

Pubblicità

È ben noto che la maggior parte degli aspiranti programmatori non sa scrivere il codice di un sacchetto di carta. Di conseguenza, l’industria tecnologica sta spingendo per uno screening più lungo, più duro e sempre più estremo.

Il colloquio alla lavagna è stato lo standard per un po’, seguito da puzzle, poi FizzBuzz.

L’ultima moda è HackerRank. Sta introducendo test di programmazione automatizzati che il candidato deve fare prima che gli sia permesso di parlare con qualcuno nell’azienda.

Molte aziende molto buone stanno usando HackerRank come strumento di pre-screening. Se non possiamo evitarlo, dobbiamo abbracciarlo.

Cosa trovare in un test HackerRank?

Ci sono 3 tipi di domande che si incontrano in un test:

  • Domande a scelta multipla: “Qual è la complessità temporale per trovare un elemento in un albero rosso e nero?” -A- -B- -C- -D-
  • Esercizio di codifica: “<Lunga descrizione di un problema da risolvere>, <formato dei dati in ingresso>, <formato dei dati in uscita>.” Inizia a codificare una soluzione.
  • Esercizio SudoRank: “Le tue credenziali ssh sono tester:[email protected] <lunga descrizione di ciò che non va con quel server>”. SSH al server e inizia a riparare.

Qualsiasi quantità di qualsiasi domanda può essere messa insieme, in qualsiasi ordine, per fare un test completo. Un’azienda dovrebbe dare alcune indicazioni su cosa aspettarsi nel suo test.

HackerRank fornisce una libreria di centinaia di domande ed esercizi pronti da usare. È anche possibile per un’azienda scrivere le proprie (e raccomandato).

Definire le domande a scelta multipla

La maggior parte delle domande a scelta multipla può essere risolta con una ricerca appropriata su Google. Di solito sul titolo, a volte su alcune parole selezionate dal testo.

hr domanda caduta privilegi
Seleziona testo => Click destro => Ricerca rapida
hr google caduta privilegi
Google ha parlato! => tutto a favore di setuid()

Defeating Coding Exercises

Cercare un paragrafo lungo 10 righe in Google non è un’opzione accettabile. Per non parlare del fatto che il sito web di HackerRank disabilita il copia/incolla nell’area della descrizione.

Il workaround è cercare il titolo dell’esercizio. Un titolo identifica in modo univoco una domanda su HackerRank. Sarà menzionato nelle soluzioni correlate e nei post del blog. Perfetto per essere indicizzato da Google.

hr question lonely integer
Seleziona il testo => Click destro => Ricerca rapida

hr google lonely integer.png
Touché!

Il primo risultato è la domanda, il secondo è la soluzione. Beh, è stato facile.

Bonus: Quella soluzione di google è effettivamente sbagliata… eppure dà tutti i punti.

// 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;}

Questa soluzione è corretta solo se i numeri duplicati sono in coppia. Tutti i test unitari di HackerRank si adattano a questo criterio per pura coincidenza.

Originariamente, abbiamo messo questa semplice domanda all’inizio di un test di riscaldamento. Abbiamo ricevuto questa risposta da un candidato nel nostro primo lotto di candidati. Era abbastanza sconcertante, quali sono le probabilità che qualcuno possa inventarsi un algoritmo così contorto se gli viene dato solo il testo della domanda? Una rapida indagine ha rapidamente rivelato la fonte.

Addendum:

La domanda “Lonely Integer” è formulata in modo leggermente diverso nel sito pubblico di HackerRank e nella libreria privata di HackerRank, ma l’input, l’output e i test di unità sono gli stessi. Ecco perché la soluzione è spenta ma funziona. HackerRank sta ovviamente copiando domande dalla comunità nella libreria professionale. Questo è un altro copy-cat beccato!

Recruiter Insights: Imbroglio portato al livello successivo

Abbiamo un sacco di candidati provenienti da reclutatori. Come sono rispetto ai candidati provenienti da altre fonti?

Vediamo le statistiche su una domanda difficile.

hr insights stock massimizza la distribuzione
Distribuzione su tutti i tentativi, da tutte le aziende (scala log). 1234 zero vs 303 punteggio pieno.

La maggior parte dei candidati ottiene 0 punti: ha finito il tempo, incapace di rispondere, algoritmo sbagliato, o soluzioni incomplete/parziali (cioè un buon inizio ma non abbastanza per passare qualsiasi test di unità ancora).

Vogliamo mostrare la stessa distribuzione sul nostro pool di candidati ma HackerRank non fornisce più quel grafico. Lo faceva.

Ad ogni modo, ricordiamo i numeri approssimativi. La distribuzione per i nostri candidati è circa 50/50% su ogni estremo. Questo è significativamente meglio del 75/17% della popolazione generale. Possiamo correlare questo numero con il tempo speso per la domanda e una revisione visiva del codice.

Il risultato è che i candidati provenienti da reclutatori hanno prestazioni migliori, soprattutto su esercizi difficili. In effetti è incredibile quanto migliori siano le loro prestazioni! (Complimenti speciali ai ragazzi che sono in grado di risolvere un problema -con una soluzione perfettamente ottimizzata- in meno tempo di quello necessario per leggerlo effettivamente =D).

La conclusione è chiara e semplice: I nostri reclutatori danno via il test ai candidati.

Tutti lo fanno, è solo che nessuno ne parla
I reclutatori danno via le domande? Certo!

La lezione imparata:

  • Per i candidati: Ricordatevi di chiedere supporto al selezionatore prima del test.
  • Per i selezionatori: Ricordatevi di allenare il candidato per il test e di istruirlo a scrivere i cambiamenti (se ci sono).
  • Per le aziende: Diffidate dei candidati con punteggi elevati provenienti dai reclutatori! In particolare, non calibrate il punteggio in base ai punteggi estremi di alcuni imbroglioni.

Sfida: Quanto tempo ci metti a risolvere una sfida di trading?

Test personalizzati HackerRank

Le aziende possono scrivere esercizi personalizzati e dovrebbero farlo. È difficile e richiede competenze particolari, ma vale sicuramente la pena.

È l’unica soluzione efficace contro Google, se fatta con attenzione. (In realtà è sorprendentemente difficile fare esercizi che siano semplici E non facilmente reperibili con Google su 1000 tutorial e forum di codifica).

Sfortunatamente, non aiuterà contro i reclutatori. (Escludendo il primo gruppo di candidati che saranno sacrificati come scout).

Conclusione

Abbiamo appena rovinato il pre-screening di HackerRank? Certo che no! C’è una fornitura infinita di idioti incapaci di dire la differenza tra Internet e Internet Explorer.

Potremmo scrivere un libro che insegna le risposte al 90% dei problemi dei colloqui di programmazione, ma il 99% di chi cerca lavoro non lo leggerebbe mai. Diavolo, è stato scritto da un po’ e non ha avuto alcun impatto.

Solo la manciata di dev che seguono i blog/news o che cercano “Cos’è HackerRank?” potranno arrivare più preparati.

Se non altro, questo articolo rende HackerRank migliore e più rilevante. Ora un test riguarda la ricerca di aiuto su Google e la correzione di frammenti di codice non indentato scritti nel linguaggio sbagliato.

HackerRank sta finalmente vagliando le capacità rilevanti per il lavoro!

cracking the coding interview book cover

Un ultimo consiglio. Avrete bisogno di formazione se state cercando di superare l’esame di colloquio in buone aziende tecnologiche e non avete avuto la possibilità di frequentare il MIT. Questo libro è il gold standard quando si tratta di strutture di dati e domande sugli algoritmi. Altamente raccomandato. Contiene centinaia di domande che vi verranno poste più e più volte, in ogni azienda. Come minimo, leggete l’anteprima gratuita su Amazon.

Leave a Reply