Sempre più aziende utilizzano la sfida HackerRank per elaborare i loro candidati ingegneri. Se non avete familiarità con HackerRank, fornisce sfide di programmazione competitive in cui gli sviluppatori competono cercando di programmare secondo le specifiche fornite. La presentazione dei partecipanti è classificata in base alla precisione del suo output.
Data la sua natura, ci sono molti problemi intrinseci se l’azienda si basa troppo pesantemente su HackerRank per lo screening. HackerRank è come il tuo test standardizzato – ti mette alla prova più sulle tue “capacità d’esame” che sulla tua conoscenza sostanziale.
Mi sono imbattuto in un articolo di Linkedin che aveva messo eloquentemente (uno dei) maggiori svantaggi di HackerRack:
Il mio risultato da tutto questo è che HackerRank è un povero indicatore delle capacità di problem solving di uno sviluppatore, e come molte di queste cose è solo veramente buono a valutare una cosa, cioè quanto è bravo il candidato a completare i test HackerRank. – Diffidate di HackerRank, Richard Linnell
Lo stesso vale per Kaggle. Ho appena parlato con un candidato di come ha fatto una sfida ben al di sopra della media senza in realtà capire affatto la scienza dei dati.
Ci sono molti altri articoli che coprono gli svantaggi dell’uso di HackerRank (compreso uno su come l’uso di HackerRank (e altre piattaforme simili) può rovinare la possibilità di assumere un buon sviluppatore senior).
Detto questo, è comprensibile che le aziende lo adottino per i test iniziali: è veloce, meno costoso e può schermare le persone che non si preoccuperebbero nemmeno di farlo.
Dato che rimarrebbe e probabilmente continuerebbe a crescere come un modo per le aziende di selezionare i talenti, il nostro team ha elaborato una lista di cose che puoi fare per prepararti alla sfida HackerRank:
- Le sfide sono a tempo, assicurati di non essere disturbato e concentrato.
- 20-30% del tuo successo deriva dalla familiarità del sistema. Prima di iniziare la sfida di codifica vera e propria, provane altre, per esempio il riscaldamento degli algoritmi. Assicurati di sapere come eseguire e presentare il tuo codice.
- Conosci i linguaggi di programmazione consentiti per il test. Se il tuo linguaggio preferito non è disponibile, esercitati con un altro.
- Di solito ci sono più problemi da risolvere in ogni sfida ed è un errore iniziare con il più difficile. Un buon approccio è quello di risolvere i problemi in ordine crescente di difficoltà/tempo. Leggili brevemente prima e decidi l’ordine di implementazione.
- Cerca di ridurre al minimo il tempo di passaggio tra i problemi dopo l’implementazione. Potresti spendere del tempo extra per assicurarti che sia un’implementazione “finale” e non tornarci più.
- Ogni problema ha casi di prova pubblici e privati. Il tuo punteggio si basa su entrambi. Se l’implementazione del codice ha passato tutti i casi di test pubblici, non significa che passerà tutti i casi di test privati. Pensate alle situazioni di bordo, ad esempio ingresso vuoto, ingresso di un elemento, due elementi, molti elementi, ecc. L’ambiente HackeRank ti permette di eseguire il codice sui tuoi test personalizzati.
- Presenta almeno qualcosa per ogni problema. È facile catturare alcuni punti anche se non sai come risolvere il problema. Tuttavia, se non sapete come risolvere tutti i problemi, cercate di capirne almeno uno.
- La preparazione a casa fa la differenza: alcuni modelli potrebbero aiutarvi perché potreste copiarli e incollarli durante la sfida. Per esempio, BFS/DFS/ricerca binaria.
- Praticare prima il più possibile. Potresti provare a risolvere almeno un problema di ogni sottodominio algoritmico.
- Un buon risultato non è una magia, è pratica e sudore.
La forza sia con te! 💪
Bonus:
- Come ottenere il badge per l’apprendimento automatico su HackerRank (dal nostro Kirill Pavlov!)
- Cracking the HackerRank Test: 100% score made easy – the HFT guy.