Cracking the HackerRank Test : 100% score made easy

Publicités

Il est bien connu que la plupart des aspirants programmeurs ne peuvent pas coder leur chemin hors d’un sac en papier. En conséquence, l’industrie technologique pousse à une sélection plus longue, plus dure et toujours plus extrême.

L’entretien sur tableau blanc a été la norme pendant un certain temps, suivi par les puzzles , puis le FizzBuzz.

La dernière lubie est HackerRank. Il s’agit d’introduire des tests de programmation automatisés à faire par le candidat avant qu’il ne soit autorisé à parler à qui que ce soit dans l’entreprise.

Beaucoup de très bonnes entreprises utilisent HackerRank comme outil de présélection. Si on ne peut pas l’éviter, il faut l’embrasser.

Qu’est-ce qu’on peut trouver dans un test de HackerRank ?

Il y a 3 types de questions à rencontrer dans un test :

  • Questions à choix multiples : « Quelle est la complexité temporelle pour trouver un élément dans un arbre rouge et noir ? ». -A- -B- -C- -D-
  • Exercice de codage : « <Longue description d’un problème à résoudre>, <format des données d’entrée>, <format des données de sortie>. » Commencez à coder une solution.
  • Exercice SudoRank : « Vos informations d’identification ssh sont tester:[email protected] <longue description de ce qui ne va pas avec ce serveur>. » SSH au serveur et commencez à réparer.

Toute quantité de toute question peut être mise ensemble, dans n’importe quel ordre, pour faire un test complet. Une entreprise devrait donner des indications sur ce que l’on peut attendre de son test.

HackerRank fournit une bibliothèque de centaines de questions et d’exercices prêts à être utilisés. Il est également possible pour une entreprise d’écrire les siens (et recommandé).

Défaire les questions à choix multiples

La majorité des questions à choix multiples peuvent être résolues par une recherche Google appropriée. Habituellement sur le titre, parfois sur quelques mots choisis du texte.

hr question abandon de privilèges
Sélection de texte => Clic droit => Recherche rapide
hr google abandon de privilèges
Google a parlé ! => tout en faveur de setuid()

Defeating Coding Exercises

Rechercher un paragraphe de 10 lignes dans Google n’est pas une option acceptable. Sans compter que le site web de HackerRank désactive le copier/coller dans la zone de description.

La solution de contournement consiste à rechercher le titre de l’exercice. Un titre identifie de manière unique une question sur HackerRank. Il sera mentionné dans les solutions et les articles de blog connexes. Parfait pour être indexé par Google.

hr question lonely integer
Sélectionner le texte => Clic droit => Recherche rapide
hr google lonely integer.png
Touché!

Le premier résultat est la question, le second la solution. Eh bien, c’était facile.

Bonus : cette solution google est en fait fausse… et pourtant elle donne tous les points.

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

Cette solution n’est correcte que si les nombres dupliqués sont par paires. Il se trouve que tous les tests unitaires de HackerRank répondent à ce critère par pure coïncidence.

À l’origine, nous mettions cette simple question au début d’un test pour nous échauffer. Nous avons reçu cette réponse d’un candidat de notre premier lot de candidats. C’était assez déroutant, quelles sont les chances que quelqu’un arrive avec un algorithme aussi alambiqué si on lui donne seulement le texte de la question ? Une enquête rapide a rapidement révélé la source.

Addendum:

La question « Lonely Integer » est formulée de manière légèrement différente sur le site public de HackerRank et dans la bibliothèque privée de HackerRank, mais l’entrée, la sortie et les tests unitaires sont les mêmes. C’est pourquoi la solution est différente mais fonctionne. HackerRank copie manifestement les questions de la communauté dans la bibliothèque professionnelle. Voilà un autre copieur démasqué !

Recruiter Insights : La tricherie portée au niveau supérieur

Nous avons beaucoup de candidats provenant de recruteurs. Comment se comparent-ils aux candidats provenant d’autres sources ?

Voyons les statistiques sur une question difficile .

hr insights stock maximiser la distribution
Distribution sur toutes les tentatives, par toutes les entreprises (échelle logarithmique). 1234 zéro vs 303 score complet.

La plupart des candidats obtiennent 0 point : manque de temps, impossibilité de répondre, mauvais algorithme ou solutions incomplètes/partielles (c’est-à-dire un bon début mais pas encore assez pour passer un test unitaire).

Nous voulions montrer la même distribution sur notre pool de candidats mais HackerRank ne fournit plus ce graphique. Il le faisait auparavant.

De toute façon, nous nous souvenons des chiffres approximatifs. La distribution pour nos candidats est d’environ 50/50% sur chaque extrême. C’est nettement mieux que les 75/17% de la population générale. Nous pouvons corréler ce chiffre avec le temps passé sur la question et une revue visuelle du code.

Le résultat est que les candidats venant de recruteurs ont de meilleures performances, surtout sur les exercices difficiles. En fait, il est incroyable de voir à quel point ils sont plus performants ! (Un coup de chapeau spécial aux gars qui sont capables de résoudre un problème -avec une solution parfaitement optimisée- en moins de temps qu’il ne faudrait pour le lire réellement =D).

La conclusion est claire et simple : Nos recruteurs donnent le test aux candidats.

Tout le monde le fait, c'est juste que personne n'en parle
Les recruteurs donnent-ils vos questions ? Bien sûr !

La leçon apprise :

  • Pour les candidats : Pensez à demander un soutien au recruteur avant l’épreuve.
  • Pour les recruteurs : N’oubliez pas de coacher le candidat pour le test et de lui demander de noter les changements (le cas échéant).
  • Pour les entreprises : Méfiez-vous des candidats à score élevé provenant des recruteurs ! En particulier, ne calibrez pas le scoring en fonction des scores extrêmes de quelques tricheurs.

Défi : Combien de temps vous faut-il pour résoudre un défi commercial ? .

Tests personnalisés HackerRank

Les entreprises peuvent écrire des exercices personnalisés et elles le devraient. C’est difficile et cela demande des compétences particulières mais cela en vaut vraiment la peine.

C’est la seule solution efficace contre Google, si elle est faite avec soin. (Il est en fait étonnamment difficile de faire des exercices qui sont à la fois simples ET pas faciles à trouver avec Google sur 1000 tutoriels et forums de codage).

Malheureusement, cela n’aidera pas contre les recruteurs. (A l’exception du premier lot de candidats qui seront sacrifiés en tant qu’éclaireurs).

Conclusion

Venons-nous de ruiner la présélection de HackerRank ? Bien sûr que non ! Il y a une réserve inépuisable de bozos incapables de faire la différence entre Internet et Internet Explorer.

Nous pourrions écrire un livre enseignant les réponses à 90% des problèmes des entretiens de programmation, pourtant 99% des demandeurs d’emploi ne le liraient jamais. Enfer, il a été écrit depuis un certain temps et il n’a pas eu le moindre impact.

Seule la poignée de devs qui suivent les blogs/news ou qui recherchent « Qu’est-ce que HackerRank ? » pourra venir mieux préparée.

Si quelque chose, cet article rend HackerRank meilleur et plus pertinent. Maintenant, un test consiste à chercher de l’aide sur Google et à réparer des bribes subtilement cassées de code non indenté écrit dans le mauvais langage.

HackerRank passe enfin au crible les capacités pertinentes pour le poste !

cracking the coding interview book cover

Un dernier conseil. Vous allez avoir besoin de formation si vous essayez de passer la barre des entretiens dans les bonnes entreprises technologiques et que vous n’avez pas eu la chance d’aller au MIT. Ce livre est l’étalon-or quand il s’agit de questions sur les structures de données et les algorithmes. Il est fortement recommandé. Il contient des centaines de questions qui vous seront posées encore et encore, dans toutes les entreprises. Au minimum, lisez l’aperçu gratuit sur Amazon.

Leave a Reply