Meer en meer bedrijven gebruiken de HackerRank challenge om hun engineering kandidaten te verwerken. Als u niet bekend bent met HackerRank, het biedt competitieve programmering uitdagingen waar ontwikkelaars concurreren door te proberen te programmeren volgens de verstrekte specificaties. De inzendingen van de deelnemers worden beoordeeld op basis van de nauwkeurigheid van de output.
Gezien de aard ervan, zijn er veel inherente problemen als bedrijf vertrouwt te zwaar op HackerRank voor screening. HackerRank is als je gestandaardiseerde test – het test je meer op je “examen vaardigheden” dan je inhoudelijke kennis.
Ik kwam een artikel op Linkedin tegen waarin (een van) de grootste nadelen van HackerRank treffend werd verwoord:
Mijn conclusie uit dit alles is dat HackerRank een slechte indicator is voor het probleemoplossend vermogen van een ontwikkelaar, en zoals zoveel van deze dingen maar één ding goed kan beoordelen, namelijk hoe goed de kandidaat is in het voltooien van HackerRank-tests. – Pas op voor HackerRank, Richard Linnell
Hetzelfde geldt voor Kaggle. Ik heb net met een kandidaat gesproken over hoe hij een ver bovengemiddelde challenge heeft gedaan zonder echt verstand te hebben van data science.
Er zijn veel andere artikelen over de nadelen van het gebruik van HackerRank (waaronder een artikel over hoe het gebruik van HackerRank (en andere soortgelijke platforms) je kans op het inhuren van een goede senior developer kan verpesten).
Dit gezegd hebbende, is het begrijpelijk dat bedrijven dit gebruiken voor de eerste tests: het is snel, het kost het minste en het kan mensen eruit filteren die niet eens de moeite zouden nemen om het te doen.
Gezien het zou blijven en waarschijnlijk zou blijven groeien als een manier voor bedrijven om talenten te screenen, is ons team gekomen met een lijst van dingen die je kunt doen om je voor te bereiden op de HackerRank-uitdaging:
- Challenges zijn getimed, zorg ervoor dat je niet gestoord wordt en gefocust bent.
- 20-30% van je succes komt van systeembekendheid. Voordat u aan de eigenlijke coderingsuitdaging begint, probeert u andere, bijv. algoritmen opwarmen. Zorg ervoor dat u weet hoe u uw code moet uitvoeren en indienen.
- Begrijp de toegestane programmeertalen voor de test. Als de taal van je keuze niet beschikbaar is, oefen dan een andere.
- Over het algemeen zijn er meerdere problemen op te lossen in elke uitdaging en het is een vergissing om te beginnen met de moeilijkste. Een goede aanpak is om problemen op te lossen in oplopende moeilijkheidsgraad/tijd volgorde. Lees ze eerst kort door en bepaal dan de volgorde van uitvoering.
- Probeer de schakeltijd tussen problemen na de uitvoering te minimaliseren. Je zou extra tijd kunnen besteden om ervoor te zorgen dat het een “definitieve” implementatie is en er niet meer op terugkomen.
- Elk probleem heeft publieke en private testgevallen. Je score is gebaseerd op beide. Als code implementatie geslaagd voor alle van de openbare testgevallen, het vlees niet het zou slagen voor alle van de prive-testgevallen. Denk aan randsituaties, b.v. lege invoer, invoer van één element, twee elementen, veel elementen, enz. HackeRank omgeving kunt u de code te draaien op uw aangepaste tests.
- Submit ten minste iets voor elk probleem. Het is gemakkelijk om enkele punten te halen, zelfs als u niet weet hoe u het probleem moet oplossen. Als je echter niet weet hoe je alle problemen moet oplossen, probeer er dan tenminste één uit te vogelen.
- De voorbereiding thuis maakt het verschil: sommige sjablonen kunnen helpen omdat je ze tijdens de uitdaging kunt copy-pasten. Bijvoorbeeld BFS/DFS/Binary search.
- Oefen eerst zoveel als je kunt. Je zou kunnen proberen uit elk algoritmisch subdomein minstens één probleem op te lossen.
- Een goed resultaat is geen magie, het is oefening en zweet.
Moge de kracht met je zijn! 💪
Bonus:
- Hoe krijg ik een top machine learning badge op HackerRank (door onze eigen Kirill Pavlov!)
- Cracking the HackerRank Test: 100% score makkelijk gemaakt – de HFT guy .