A HackerRank teszt feltörése: 100%-os pontszám könnyedén

X

Adatvédelem & Sütik

Ez az oldal sütiket használ. A folytatással Ön hozzájárul ezek használatához. Tudjon meg többet, beleértve a sütik ellenőrzését.

Got It!

Hirdetések

Az köztudott, hogy a legtöbb wannabes programozó egy papírzacskóból sem tudja kivezetni magát. Ennek következtében a technológiai ipar egyre hosszabb, keményebb és egyre szélsőségesebb szűréseket szorgalmaz.

Egy ideig a whiteboard interjú volt a standard, ezt követte a rejtvények , majd a FizzBuzz.

A legújabb hóbort a HackerRank. Automatizált programozási teszteket vezet be, amelyeket a jelöltnek kell elvégeznie, mielőtt bárkivel is beszélhetne a cégnél.

Egy csomó nagyon jó cég használja a HackerRank-et előszűrő eszközként. Ha nem tudjuk elkerülni, akkor el kell fogadnunk.

Mit találunk egy HackerRank tesztben?

A tesztben 3 típusú kérdéssel találkozhatunk:

  • Többszörös választásos kérdések: “Mennyi az időbonyolultsága egy elem megtalálásának egy piros-fekete fában?”. -A- -B- -C- -D-
  • Kódolási feladat: “<megoldandó probléma hosszú leírása>, <bemeneti adatformátum>, <kimeneti adatformátum>”. Kezdje el a megoldás kódolását.
  • SudoRank gyakorlat: “Az ssh hitelesítő adatai: tester:[email protected] <hosszú leírás arról, hogy mi a baj ezzel a szerverrel>.” SSH-hozzáférés a szerverhez, és kezdje el a javítást.

Minden kérdésből bármilyen mennyiséget össze lehet rakni, bármilyen sorrendben, hogy teljes tesztet kapjunk. Egy cégnek meg kell adnia néhány támpontot arra vonatkozóan, hogy mi várható a tesztjében.

A HackerRank egy több száz kérdésből és feladatból álló könyvtárat biztosít használatra készen. Az is lehetséges, hogy egy vállalat sajátot írjon (és ajánlott).

A feleletválasztós kérdések legyőzése

A feleletválasztós kérdések többsége megfelelő Google-kereséssel megoldható. Általában a címre, néha a szöveg néhány kiválasztott szavára.

hr kérdés eldobása jogosultságok
Szöveg kiválasztása => Jobb klikk => Gyors keresés
hr google eldobása jogosultságok
A Google megszólalt! => all in favor of setuid()

Kódolási gyakorlatok legyőzése

Egy 10 soros bekezdés keresése a Google-ban nem elfogadható lehetőség. Arról nem is beszélve, hogy a HackerRank honlapja letiltja a másolást/beillesztést a leírás területén.

A megoldás az, hogy a gyakorlat címére keresünk. A cím egyértelműen azonosít egy kérdést a HackerRankon. A kapcsolódó megoldásokban és blogbejegyzésekben megemlítik. Tökéletes ahhoz, hogy a Google indexelje.

hr kérdés magányos egész szám
Select Text => Jobb klikk => Quick Search
hr google magányos egész szám.png
Touché!

Az első találat a kérdés, a második a megoldás. Hát ez könnyű volt.

Bónusz: Ez a google megoldás valójában rossz… mégis megadja az összes pontot.

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

Ez a megoldás csak akkor helyes, ha a duplikált számok párban vannak. A HackerRank összes egységtesztje véletlenül megfelel ennek a kritériumnak.

Eredetileg bemelegítésként ezt az egyszerű kérdést tettük a teszt elejére. Ezt a választ egy jelentkezőtől kaptuk az első jelentkezők közül. Eléggé elgondolkodtató volt, mekkora az esélye annak, hogy valaki ennyire összevissza algoritmussal álljon elő, ha csak a kérdés szövegét kapja meg? Egy gyors vizsgálat gyorsan feltárta a forrást.

Kiegészítés:

A “Lonely Integer” kérdés kissé másképp van megfogalmazva a nyilvános HackerRank oldalon és a privát HackerRank könyvtárban, de a bemenet, a kimenet és az egységtesztek ugyanazok. Ezért van az, hogy a megoldás off, de működik. A HackerRank nyilvánvalóan a közösségből másolja a kérdéseket a szakmai könyvtárba. Ez egy újabb másoló buktatott le!

Recruiter Insights:

Nagyszámú jelölt érkezik hozzánk a toborzóktól. Hogyan viszonyulnak a más forrásokból érkező jelöltekhez?

Lássuk a statisztikákat egy nehéz kérdésre .

hr insights stock maximize distribution
Distribution over all attempts, by all companies (log scale). 1234 nulla vs 303 teljes pontszám.

A legtöbb jelölt 0 pontot kapott: kifutott az időből, nem tudott válaszolni, rossz algoritmus, vagy hiányos/részleges megoldások (azaz jó kezdés, de még nem elégséges ahhoz, hogy átmenjen bármelyik egységteszten).

Az összes jelöltünkön szerettük volna ugyanezt az eloszlást megmutatni, de a HackerRank már nem biztosítja ezt a grafikont. Régebben volt.

Mindenesetre emlékszünk a hozzávetőleges számokra. A jelöltjeink eloszlása körülbelül 50/50% mindkét szélső értéken. Ez lényegesen jobb, mint a 75/17% az általános populációból. Ezt a számot összefüggésbe tudjuk hozni a kérdésre és a vizuális kódvizsgálatra fordított idővel.

Az eredmény az, hogy a toborzóktól érkező jelöltek jobban teljesítenek, különösen a nehéz feladatokon. Valójában hihetetlen, hogy mennyivel jobban teljesítenek! (Külön dicséret azoknak a srácoknak, akik kevesebb idő alatt képesek megoldani egy feladatot – tökéletesen optimalizált megoldással -, mint amennyi idő alatt ténylegesen elolvassák =D).

A következtetés egyszerű és világos: A toborzóink elajándékozzák a tesztet a jelölteknek.

Mindenki csinálja, csak senki nem beszél róla
A toborzók elajándékozzák a kérdéseidet? Természetesen!

A tanulság:

  • A jelölteknek: Ne feledje, hogy a teszt előtt kérjen támogatást a toborzótól.
  • A toborzóknak: Ne felejtse el felkészíteni a jelöltet a tesztre, és utasítsa, hogy írja le a változtatásokat (ha vannak).
  • A vállalatok számára: Óvakodjanak a toborzóktól érkező magas pontszámú jelöltektől! Különösen ne kalibrálja a pontozást néhány csaló szélsőséges pontszámai alapján.

Kihívás: Mennyi idő alatt tud megoldani egy kereskedelmi kihívást? .

Egyedi HackerRank tesztek

A cégek írhatnak egyedi feladatokat, és ezt meg is kell tenniük. Nehéz és különleges képességeket igényel, de mindenképpen megéri.

Ez az egyetlen hatékony megoldás a Google ellen, ha körültekintően végzik. (Valójában meglepően nehéz olyan gyakorlatokat készíteni, amelyek egyszerre egyszerűek ÉS nem könnyű megtalálni a Google segítségével 1000 tutorialon és kódolási fórumon).

Szomorú, hogy a toborzók ellen nem segít. (Kivéve az első adag jelöltet, akiket felderítőként fognak feláldozni).

Következtetés

Tönkretettük a HackerRank előszűrését? Természetesen nem! Soha véget nem érő kínálat van olyan bohócokból, akik képtelenek különbséget tenni az Internet és az Internet Explorer között.

Írhatnánk egy könyvet, amely megtanítaná a válaszokat a programozási interjúk 90%-ának problémáira, mégis az álláskeresők 99%-a soha nem olvasná el. A pokolba is, már megírták egy ideje, és egyáltalán nem volt hatása.

Csak az a maroknyi fejlesztő, aki követi a blogokat/híreket, vagy rákeres a “Mi az a HackerRank?”-ra, jobban felkészülten érkezik.

Ha valami, akkor ez a cikk jobbá és relevánsabbá teszi a HackerRanket. Most egy teszt arról szól, hogy segítséget keresünk a Google-on, és javítjuk a rossz nyelven írt, finoman elrontott kódrészleteket.

A HackerRank végre az állás szempontjából releváns képességeket szűr!”

cracking the coding interview book cover

Egy utolsó tanács. Szükséged lesz képzésre, ha jó tech cégeknél próbálsz átmenni az interjún, és nem volt lehetőséged az MIT-re járni. Ez a könyv az arany standard, ha adatszerkezetekkel és algoritmusokkal kapcsolatos kérdésekről van szó. Nagyon ajánlott. Több száz olyan kérdést tartalmaz, amelyeket újra és újra fel fognak tenni neked, minden cégnél. Legalább az ingyenes előzetest olvassa el az Amazonon.

Leave a Reply