Cracking the HackerRank Test: 100% score made easy

X

Privacy & Cookies

Deze site maakt gebruik van cookies. Door verder te gaan, gaat u akkoord met het gebruik ervan. Meer informatie, inclusief hoe u cookies kunt beheren.

Got It!

Advertenties

Het is algemeen bekend dat de meeste programmeurs wannabees niet uit een papieren zak kunnen coderen. Als gevolg daarvan dringt de tech-industrie aan op langere, hardere en steeds extremere screening.

Het whiteboard-interview is een tijdje de standaard geweest, gevolgd door puzzels , daarna FizzBuzz.

De nieuwste rage is HackerRank. Het introduceert geautomatiseerde programmeer tests die de kandidaat moet doen voordat hij met iemand in het bedrijf mag praten.

Veel zeer goede bedrijven gebruiken HackerRank als een pre-screening tool. Als we het niet kunnen vermijden, moeten we het omarmen.

Wat vind je in een HackerRank-test?

Er zijn 3 soorten vragen die je in een test kunt tegenkomen:

  • Meerkeuzevragen: “Wat is de tijdscomplexiteit om een element te vinden in een rode en zwarte boom?” -A- -B- -C- -D-
  • Codeeroefening: “<Lange beschrijving van een op te lossen probleem>, <input data formaat>, <output data formaat>.” Begin met het coderen van een oplossing.
  • SudoRank Oefening: “Uw ssh-referenties zijn tester:[email protected] <lange beschrijving van wat er mis is met die server>.” SSH naar de server en begin met repareren.

Elke vraag kan in elke volgorde worden samengevoegd tot een complete test. Een bedrijf zou enkele aanwijzingen moeten geven over wat het in zijn test kan verwachten.

HackerRank biedt een bibliotheek met honderden vragen en oefeningen die klaar zijn voor gebruik. Het is ook mogelijk voor een bedrijf om hun eigen (en aanbevolen) te schrijven.

Vervluchtende meerkeuzevraag

Het merendeel van de meerkeuzevragen kan worden opgelost door een geschikte Google-zoekopdracht. Meestal op de titel, soms op een paar geselecteerde woorden uit de tekst.

hr question dropping privileges
Select Text => Rechtsklik => Snel zoeken
hr google dropping privileges
Google has spoken! =>allemaal ten gunste van setuid()

Verraderlijke coderingsoefeningen

Zoeken naar een 10 regels lange paragraaf in Google is geen acceptabele optie. Om nog maar te zwijgen van het feit dat de HackerRank-website copy/paste in het beschrijvingsgebied uitschakelt.

De workaround is om te zoeken op de titel van de oefening. Een titel identificeert een vraag uniek op HackerRank. Het zal worden genoemd in gerelateerde oplossingen en blog posts. Perfect om door Google te worden geïndexeerd.

hr question lonely integer
Select Text => Rechtsklik => Snel zoeken
hr google lonely integer.png
Touché!

Het eerste resultaat is de vraag, het tweede resultaat is de oplossing. Nou, dat was makkelijk.

Bonus: Die google-oplossing is eigenlijk fout… en toch geeft het alle punten.

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

Deze oplossing is alleen correct als de dubbele getallen in paren staan. Alle HackerRank unit tests voldoen aan dit criterium door puur toeval.

Oorspronkelijk zetten we deze simpele vraag aan het begin van een test om op te warmen. We kregen dat antwoord van een kandidaat in onze eerste lichting sollicitanten. Het was nogal raadselachtig, hoe groot is de kans dat iemand met zo’n ingewikkeld algoritme zou komen als hij alleen de tekst van de vraag zou krijgen? Een snel onderzoek onthulde al snel de bron.

Addendum:

De “Eenzame Integer” vraag is iets anders geformuleerd in de publieke HackerRank site en de prive HackerRank bibliotheek, maar de input, output en unit tests zijn hetzelfde. Vandaar dat de oplossing niet klopt, maar wel werkt. HackerRank kopieert duidelijk vragen van de gemeenschap naar de professionele bibliotheek. Dat is weer een kopie-kat opgepakt!

Recruiter Insights: Cheating brought to the next level

We hebben veel kandidaten die van recruiters komen. Hoe verhouden zij zich tot kandidaten uit andere bronnen?

Laten we de statistieken eens bekijken van een moeilijke vraag.

hr insights stock maximize distribution
Distributie over alle pogingen, door alle bedrijven (logschaal). 1234 nul vs 303 volledige score.

De meeste kandidaten krijgen 0 punten: te weinig tijd, geen antwoord, verkeerd algoritme, of onvolledige/gedeeltelijke oplossingen (d.w.z. goed begin maar nog niet genoeg om een eenheidstest te doorstaan).

We wilden dezelfde verdeling over onze pool van kandidaten laten zien, maar HackerRank biedt die grafiek niet meer. Vroeger wel.

Hoe dan ook, we herinneren ons geschatte getallen. De verdeling voor onze kandidaten is ongeveer 50/50% aan elk uiteinde. Dat is aanzienlijk beter dan de 75/17% van de algemene bevolking. We kunnen dat getal correleren met de tijd die aan de vraag en een visuele code review wordt besteed.

Het resultaat is dat kandidaten die van recruiters komen beter presteren, vooral op moeilijke oefeningen. In feite is het ongelooflijk hoeveel beter ze presteren! (Speciale kudos voor de jongens die in staat zijn om een probleem op te lossen -met een perfect geoptimaliseerde oplossing- in minder tijd dan het zou kosten om het daadwerkelijk te lezen =D).

De conclusie is duidelijk en eenvoudig: Onze recruiters geven de test weg aan de kandidaten.

iedereen doet het, het is alleen dat niemand erover praat
Geven recruiters je vragen weg? Natuurlijk!

Les geleerd:

  • Voor kandidaten: Vergeet niet om de recruiter om ondersteuning te vragen voor de test.
  • Voor recruiters: Denk eraan de kandidaat te coachen voor de test en hem te instrueren (eventuele) wijzigingen op te schrijven.
  • Voor bedrijven: Pas op voor kandidaten met hoge scores afkomstig van recruiters! Vooral geen scores kalibreren op basis van uitersten scores van enkele valsspelers.

Challenge: Hoe lang doet u erover om een trading challenge op te lossen?

Aangepaste HackerRank-tests

Bedrijven kunnen aangepaste oefeningen schrijven en dat zouden ze ook moeten doen. Het is moeilijk en het vereist bepaalde vaardigheden, maar het is zeker de moeite waard.

Het is de enige effectieve oplossing tegen Google, mits zorgvuldig gedaan. (Het is eigenlijk verrassend moeilijk om oefeningen te maken die zowel eenvoudig zijn EN niet gemakkelijk te vinden zijn met Google op 1000 tutorials en coderingsforums).

Treurig genoeg zal het niet helpen tegen recruiters. (Met uitzondering van de eerste lichting kandidaten die zullen worden opgeofferd als scouts).

Conclusie

Hebben we zojuist HackerRank pre-screening verpest? Natuurlijk niet. Er is een oneindige hoeveelheid dombo’s die het verschil niet kunnen zien tussen Internet en Internet Explorer.

We zouden een boek kunnen schrijven met de antwoorden op 90% van de programmeerproblemen, maar 99% van de werkzoekenden zou het nooit lezen. Hell, het is al een tijdje geschreven en het had geen enkele impact.

Alleen het handjevol devs dat blogs/nieuws volgt of zoekt op “Wat is HackerRank?” zal beter voorbereid kunnen komen.

Als er iets is, maakt dit artikel HackerRank beter en relevanter. Nu gaat een test over het zoeken naar hulp op Google en het repareren van subtiel gebroken stukjes code zonder inspringen, geschreven in de verkeerde taal.

HackerRank screent eindelijk op capaciteiten die relevant zijn voor de baan!

cracking the coding interview book cover

Een laatste woord van advies. Je zult training nodig hebben als je bij goede techbedrijven door de sollicitatiebalk probeert te komen en je hebt niet de kans gehad om naar MIT te gaan. Dit boek is de gouden standaard als het gaat om vragen over datastructuren en algoritmen. Een echte aanrader. Het bevat honderden vragen die je keer op keer gesteld zullen worden, in elk bedrijf. Lees op zijn minst de gratis preview op Amazon.

Leave a Reply