Mer och mer företag använder HackerRank challenge för att bearbeta sina ingenjörskandidater. Om du inte känner till HackerRank erbjuder det konkurrenskraftiga programmeringsutmaningar där utvecklare tävlar genom att försöka programmera enligt givna specifikationer. Deltagarnas inlämning betygsätts utifrån hur exakt resultatet är.
Med tanke på dess natur finns det många inneboende problem om företaget förlitar sig alltför mycket på HackerRank för att göra urvalet. HackerRank är som ett standardiserat prov – det testar dig mer på dina ”undersökningsfärdigheter” än på dina sakkunskaper.
Jag stötte på en Linkedin-artikel som vältaligt hade formulerat (en av) de största nackdelarna med HackerRack:
Min slutsats av allt detta är att HackerRank är en dålig indikator på en utvecklares problemlösningsförmåga, och som så många andra saker är HackerRank bara riktigt bra på att bedöma en sak, nämligen hur bra kandidaten är på att slutföra HackerRank-tester. – Be ware of HackerRank, Richard Linnell
Samma sak gäller för Kaggle. Jag pratade just med en kandidat om hur han klarade en utmaning långt över genomsnittet utan att egentligen förstå datavetenskap alls.
Det finns många andra artiklar som tar upp nackdelarna med att använda HackerRank (bland annat en om hur användningen av HackerRank (och andra liknande plattformar) kan förstöra dina chanser att anställa bra seniora utvecklare).
Det är dock förståeligt att företag använder det för inledande tester: det går snabbt, är minst kostsamt och kan sålla bort personer som inte ens skulle bry sig om att göra det.
Med tanke på att det skulle förbli och förmodligen fortsätta att växa som ett sätt för företag att screena talanger har vårt team tagit fram en lista över saker som du kan göra för att förbereda dig för HackerRank-utmaningen:
- Utmaningarna är tidsbestämda, se till att du inte blir störd och att du är fokuserad.
- 20-30 % av din framgång beror på att du känner till systemet. Innan du påbörjar den egentliga kodningsutmaningen kan du prova andra, t.ex. algoritmer som uppvärmning. Se till att du vet hur du ska utföra och skicka in din kod.
- Förstå tillåtna programmeringsspråk för testet. Om ditt valfria språk inte är tillgängligt, öva på ett annat.
- I regel finns det flera problem att lösa i varje utmaning och det är ett misstag att börja med det svåraste. Ett bra tillvägagångssätt är att lösa problemen i stigande svårighetsgrad/tidsordning. Läs dem kortfattat först och bestäm genomförandeordningen.
- Försök att minimera växlingstiden mellan problemen efter genomförandet. Du kan lägga extra tid på att se till att det är ett ”slutgiltigt” genomförande och inte komma tillbaka till det igen.
- Varje problem har offentliga och privata testfall. Din poäng är baserad på båda. Om kodimplementationen klarade alla offentliga testfall, betyder det inte kött att den skulle klara alla privata testfall. Tänk på kant situationer, t.ex. tom inmatning, inmatning med ett element, två element, många element osv. HackeRank-miljön gör det möjligt att köra koden på dina egna testfall.
- Sänd åtminstone något för varje problem. Det är lätt att fånga några poäng även om du inte vet hur du ska lösa problemet. Men om du inte vet hur du ska lösa alla problem, försök att lista ut åtminstone ett.
- Hemförberedelser gör skillnad: vissa mallar kan vara till hjälp eftersom du kan kopiera och klistra in dem under utmaningen. Till exempel BFS/DFS/Binary search.
- Öva först så mycket du kan. Du kan försöka lösa minst ett problem från varje algoritmiskt underområde.
- Ett bra resultat är ingen magi, det är övning och svett.
Må kraften vara med dig! 💪
Bonus:
- Hur man får toppbetyg för maskininlärning på HackerRank (av vår egen Kirill Pavlov!)
- Knäcka HackerRank-testet: 100 % poäng på ett enkelt sätt – HFT-killen .