Egyre több vállalat használja a HackerRank kihívást a mérnökjelöltek feldolgozásához. Ha nem ismered a HackerRankot, akkor az olyan versenyképes programozási kihívásokat kínál, ahol a fejlesztők úgy versenyeznek, hogy megadott specifikációk szerint próbálnak programozni. A résztvevők beadványait a kimenet pontossága alapján osztályozzák.
A természetéből adódóan számos problémával jár, ha a vállalat túlságosan a HackerRankre támaszkodik a szűrés során. A HackerRank olyan, mint a szabványosított teszt – inkább a “vizsgaképességedet” teszteli, mint az érdemi tudásodat.
Belebotlottam egy Linkedin cikkbe, amely ékesszólóan megfogalmazta a HackerRank (egyik) fő hátrányát (hátrányait):
Az én tanulságom mindebből az, hogy a HackerRank rossz mutatója egy fejlesztő problémamegoldó képességének, és mint oly sok ilyen dolog, csak egy dolog értékelésére igazán jó, nevezetesen arra, hogy a jelölt mennyire jó a HackerRank tesztek kitöltésében. – Be ware of HackerRank, Richard Linnell
Ugyanez vonatkozik a Kaggle-re is. Épp most beszéltem egy jelölttel arról, hogy jóval az átlag feletti kihívást teljesített anélkül, hogy valójában egyáltalán értett volna az adattudományhoz.
Még sok más cikk is foglalkozik a HackerRank használatának hátrányaival (köztük egy arról, hogy a HackerRank (és más hasonló platform) használata hogyan teheti tönkre az esélyét annak, hogy jó vezető fejlesztőt vegyen fel).
Ezzel együtt érthető, hogy a vállalatok miért fogadják el ezt a kezdeti teszteléshez: gyors, a legkevésbé költséges és kiszűrheti azokat, akik nem is vesződnének vele.
Mivel ez továbbra is megmaradna és valószínűleg tovább fog nőni, mint a vállalatok tehetségek szűrésének módja, a csapatunk összeállított egy listát azokról a dolgokról, amelyeket megtehetsz, hogy felkészülj a HackerRank kihívásra:
- A kihívások időzítettek, győződj meg róla, hogy nem vagy zavart és koncentrálsz.
- A sikered 20-30%-a a rendszer ismeretéből ered. Mielőtt belekezdenél a tényleges kódolási kihívásba, próbálj ki mást, pl. algoritmusok bemelegítését. Győződjön meg róla, hogy tudja, hogyan kell végrehajtani és beküldeni a kódját.
- Ismerje meg a teszthez megengedett programozási nyelveket. Ha az Ön által választott nyelv nem áll rendelkezésre, gyakoroljon egy másikat.
- Minden kihívásban általában több problémát kell megoldani, és hiba a legnehezebbel kezdeni. Jó megközelítés, ha a feladatokat növekvő nehézségi/időbeli sorrendben oldjuk meg. Először olvassa el őket röviden, és döntse el a megvalósítás sorrendjét.
- Próbálja minimalizálni a problémák közötti váltási időt a megvalósítás után. Több időt fordíthatsz arra, hogy megbizonyosodj arról, hogy ez egy “végleges” megvalósítás, és ne térj vissza hozzá újra.
- Minden problémának vannak nyilvános és privát tesztesetei. A pontszámod mindkettőn alapul. Ha a kód megvalósítása átment az összes nyilvános teszteseten, az nem jelenti azt, hogy átmenne az összes privát teszteseten. Gondolj élhelyzetekre, pl. üres bemenet, egy elemes bemenet, két elem, sok elem, stb. A HackeRank környezet lehetővé teszi a kód futtatását az egyéni teszteken.
- Minden problémára legalább valamit küldjön be. Könnyű rögzíteni néhány pontot akkor is, ha nem tudja, hogyan kell megoldani a problémát. Ha azonban nem tudja, hogyan oldja meg az összes problémát, próbáljon meg legalább egyet kitalálni.
- Az otthoni felkészülés sokat számít: néhány sablon segíthet, mivel a kihívás során copy-paste módon beillesztheti őket. Például BFS/DFS/Bináris keresés.
- Előbb gyakorolj, amennyit csak tudsz. Minden algoritmikus részterületről megpróbálhatsz legalább egy feladatot megoldani.
- A jó eredmény nem varázslat, hanem gyakorlat és verejték.
Az erő legyen veled! 💪
Bónusz:
- Hogyan szerezd meg a legjobb gépi tanulási jelvényt a HackerRankon (a mi Kirill Pavlovunk által!)
- Cracking the HackerRank Test: 100% score made easy – the HFT guy .