Att knäcka HackerRank-testet: 100 % poäng på ett enkelt sätt

Annonser

Det är välkänt att de flesta programmerare wannabes inte kan koda sig ur en papperspåse. Som en följd av detta driver teknikbranschen på för längre, hårdare och alltmer extrem screening.

Viteboardintervjun har varit standard ett tag, följt av pussel , sedan FizzBuzz.

Den senaste modeflugan är HackerRank. Där införs automatiserade programmeringstester som kandidaten ska göra innan han får prata med någon på företaget.

En hel del mycket bra företag använder HackerRank som ett verktyg för förhandsgranskning. Om vi inte kan undvika det måste vi omfamna det.

Vad kan man hitta i ett HackerRank-test?

Det finns tre typer av frågor som man kan stöta på i ett test:

  • Flervalsfrågor: ”Vad är tidskomplexiteten för att hitta ett element i ett rött och svart träd?” -A- -B- -C- -D-
  • Kodningsövning: ”<Lång beskrivning av ett problem som ska lösas>, <inputdataformat>, <outputdataformat>.” Börja koda en lösning.
  • SudoRank-övning: ”Dina ssh-uppgifter är tester:[email protected] <lång beskrivning av vad som är fel med den servern>.” SSH till servern och börja fixa.

Varje fråga kan sättas ihop, i vilken ordning som helst, för att skapa ett komplett test. Ett företag bör ge några indikationer på vad man kan förvänta sig i sitt test.

HackerRank tillhandahåller ett bibliotek med hundratals frågor och övningar som är redo att användas. Det är också möjligt för ett företag att skriva egna (och rekommenderas).

Defeating Multiple Choice Question

De flesta flervalsfrågorna kan lösas genom en lämplig Google-sökning. Vanligtvis på titeln, ibland på några utvalda ord från texten.

hr question dropping privileges
Select Text => Right Click => Quick Search
hr google dropping privileges
Google har talat! => allt för setuid()

Defeating Coding Exercises

Söka efter ett 10 rader långt stycke i Google är inte ett acceptabelt alternativ. För att inte tala om att HackerRank-webbplatsen inaktiverar kopiera/klistra in i beskrivningsområdet.

Den lösning som finns är att söka efter titeln på övningen. En titel identifierar unikt en fråga på HackerRank. Den kommer att nämnas i relaterade lösningar och blogginlägg. Perfekt för att indexeras av Google.

hr question lonely integer
Select Text => Right Click => Quick Search
hr google lonely integer.png
Touché!

Det första resultatet är frågan, det andra resultatet är lösningen. Tja, det var lätt.

Bonus: Denna google-lösning är faktiskt fel … ändå ger den alla poäng.

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

Den här lösningen är bara korrekt om dubblade tal är i par. Alla HackerRank-enhetstester råkar av en ren tillfällighet uppfylla detta kriterium .

Originellt placerade vi denna enkla fråga i början av ett test som uppvärmning. Vi fick detta svar från en kandidat i vår första omgång sökande. Det var ganska förbryllande, hur stor är chansen att någon skulle komma på en så invecklad algoritm om man bara fick texten från frågan? En snabb undersökning avslöjade snabbt källan.

Addendum:

Frågan ”Lonely Integer” är formulerad något annorlunda på den offentliga HackerRank-webbplatsen och i det privata HackerRank-biblioteket, men inmatningen, utmatningen och enhetstesterna är desamma. Därför är lösningen inte korrekt men fungerar. HackerRank kopierar uppenbarligen frågor från gemenskapen till det professionella biblioteket. Ännu en kopieringskatt avslöjad!

Recruiter Insights: Vi har många kandidater som kommer från rekryterare. Hur står de sig jämfört med kandidater från andra källor?

Låt oss se statistiken på en svår fråga.

hr insights stock maximize distribution
Fördelning över alla försök, av alla företag (log skala). 1234 noll mot 303 full poäng.

De flesta kandidater får 0 poäng: fick slut på tid, kunde inte svara, fel algoritm eller ofullständiga/delvisa lösningar (dvs. bra start men inte tillräckligt för att klara något enhetstest ännu).

Vi ville visa samma fördelning över vår pool av kandidater, men HackerRank tillhandahåller inte den grafen längre. Det brukade den göra.

Vi kommer i alla fall ihåg ungefärliga siffror. Fördelningen för våra kandidater är ungefär 50/50 % på varje extrem. Det är betydligt bättre än 75/17 % från den allmänna befolkningen. Vi kan korrelera detta antal med den tid som läggs ner på frågan och en visuell kodgranskning.

Resultatet är att kandidater som kommer från rekryterare presterar bättre, särskilt på svåra övningar. Det är faktiskt otroligt hur mycket bättre de presterar! (Särskild beröm till de killar som kan lösa ett problem – med en perfekt optimerad lösning – på mindre tid än vad det skulle ta att faktiskt läsa det =D).

Slutsatsen är enkel och tydlig: Våra rekryterare ger bort testet till kandidaterna.

Alla gör det, det är bara det att ingen talar om det
Ger rekryterare bort dina frågor? Självklart!

Lektion:

  • För kandidater: Kom ihåg att be rekryteraren om stöd innan testet.
  • För rekryterare: Kom ihåg att coacha kandidaten inför testet och be honom skriva ner eventuella ändringar.
  • För företag: Se upp för kandidater med höga poäng som kommer från rekryterare! I synnerhet ska du inte kalibrera poängsättningen baserat på extrempoäng från några få fuskare.

Utmaning: Hur lång tid tar det dig att lösa en handelsutmaning? .

Anpassade HackerRank-tester

Företagen kan skriva anpassade övningar och det bör de göra. Det är svårt och kräver särskilda färdigheter, men det är definitivt värt det.

Det är den enda effektiva lösningen mot Google, om den görs noggrant. (Det är faktiskt förvånansvärt svårt att göra övningar som är både enkla OCH inte lätt att hitta med Google på 1000 handledningar och kodningsforum).

Syndigt nog hjälper det inte mot rekryterare. (Med undantag för den första omgången kandidater som kommer att offras som scouter).

Slutsats

Har vi just förstört HackerRanks förundersökningar? Självklart inte! Det finns ett aldrig sinande utbud av idioter som inte kan skilja mellan Internet och Internet Explorer.

Vi skulle kunna skriva en bok där vi lär ut svaren på 90 % av problemen vid programmeringsintervjuer, men 99 % av de arbetssökande skulle aldrig läsa den. För helvete, den har skrivits ett tag och den har inte haft någon som helst inverkan.

Endast den handfull utvecklare som följer bloggar/nyheter eller söker efter ”Vad är HackerRank?” kommer att kunna komma bättre förberedda.

Om något gör den här artikeln HackerRank bättre och mer relevant. Nu handlar ett test om att söka hjälp på Google och rätta subtilt trasiga kodstycken utan indentering som är skrivna på fel språk.

HackerRank screenar äntligen efter förmågor som är relevanta för jobbet!

Cracking the coding interview book cover

Ett sista råd. Du kommer att behöva utbildning om du försöker klara intervjubarket på bra teknikföretag och du inte hade chansen att gå på MIT. Den här boken är den gyllene standarden när det gäller frågor om datastrukturer och algoritmer. Rekommenderas starkt. Den innehåller hundratals frågor som du kommer att få ställa om och om igen, på alla företag. Läs åtminstone den kostnadsfria förhandsgranskningen på Amazon.

Leave a Reply