Mere og flere virksomheder bruger HackerRank challenge til at behandle deres ingeniørkandidater. Hvis du ikke er bekendt med HackerRank, tilbyder det konkurrerende programmeringsudfordringer, hvor udviklere konkurrerer ved at forsøge at programmere i henhold til givne specifikationer. Deltagernes indsendelser bliver bedømt efter nøjagtigheden af deres output.
Givet dens karakter er der mange iboende problemer, hvis virksomheden i for høj grad benytter HackerRank til screening. HackerRank er som din standardiserede test – den tester dig mere på dine “eksamensfærdigheder” end på din indholdsmæssige viden.
Jeg stødte på en Linkedin-artikel, der velformuleret havde sat (en af) de store ulempe(r) ved HackerRack:
Min take-away fra alt dette er, at HackerRank er en dårlig indikator for en udviklers problemløsningsevne, og som så mange af disse ting er kun rigtig god til at vurdere én ting, nemlig hvor god kandidaten er til at gennemføre HackerRank-tests. – Be ware of HackerRank, Richard Linnell
Det samme gælder for Kaggle. Jeg har lige talt med en kandidat om, hvordan han klarede en udfordring langt over gennemsnittet uden egentlig at forstå datalogi overhovedet.
Der er mange andre artikler, der dækker ulemperne ved at bruge HackerRank (herunder en om, hvordan brugen af HackerRank (og andre lignende platforme) kan ødelægge din chance for at ansætte gode seniorudviklere).
Så er det forståeligt, hvorfor virksomheder vil indføre det til indledende test: Det er hurtigt, mindst omkostningsfuldt og kan sortere folk fra, som ikke engang ville gide at gøre det.
I betragtning af at det ville forblive og sandsynligvis fortsætte med at vokse som en måde for virksomheder at screene efter talenter på, har vores team udarbejdet en liste over ting, som du kan gøre for at forberede dig på HackerRank-udfordringen:
- Udfordringer er tidsbestemt, sørg for at du ikke bliver forstyrret og fokuseret.
- 20-30% af din succes kommer fra systemkendskab. Før du går i gang med den egentlige kodningsudfordring, skal du prøve andre, f.eks. algoritmer som opvarmning. Sørg for, at du ved, hvordan du skal udføre og indsende din kode.
- Forstå de tilladte programmeringssprog til prøven. Hvis dit foretrukne sprog ikke er tilgængeligt, skal du øve dig på et andet sprog.
- Der er normalt flere problemer, der skal løses i hver udfordring, og det er en fejl at starte med det sværeste problem. En god fremgangsmåde er at løse problemerne i stigende sværhedsgrad/tidsrækkefølge. Læs dem kort først og bestem rækkefølgen for gennemførelsen.
- Forsøg at minimere tiden til at skifte mellem problemerne efter gennemførelsen. Du kan bruge ekstra tid på at sikre, at det er en “endelig” implementering, og ikke komme tilbage til den igen.
- Hvert problem har offentlige og private testcases. Din score er baseret på begge. Hvis kodeimplementationen bestod alle de offentlige testcases, er det ikke kød den ville bestå alle de private testcases. Tænk på kant situationer, f.eks. tomt input, input med ét element, to elementer, mange elementer osv. HackeRank-miljøet giver dig mulighed for at køre koden på dine brugerdefinerede tests.
- Indgiv mindst noget for hvert problem. Det er nemt at fange nogle point, selv om du ikke ved, hvordan du skal løse problemet. Men hvis du ikke ved, hvordan du skal løse alle problemerne, så prøv at finde ud af mindst ét.
- Hjemmelavet forberedelse gør forskellen: Nogle skabeloner kan hjælpe, da du kan copy-paste dem under udfordringen. F.eks. BFS/DFS/Binary search.
- Øv dig først så meget som muligt. Du kan prøve at løse mindst ét problem fra hvert algoritmisk underområde.
- Et godt resultat er ikke magi, det er øvelse og sved.
Må kraften være med dig! 💪
Bonus:
- Sådan får du top machine learning badge på HackerRank (af vores helt egen Kirill Pavlov!)
- Knæk HackerRank-testen: 100% score gjort let – HFT-fyren .