Pääsy unelmatyöhön: 10 pistettä siitä, miten voit voittaa HackerRank-haasteen.

Sara Choi
Sara Choi

Follow

5.2, 2018 – 3 min read

Yhä useammat yritykset käyttävät HackerRank-haastetta insinööriehdokkaidensa käsittelyyn. Jos HackerRank ei ole sinulle tuttu, se tarjoaa kilpailullisia ohjelmointihaasteita, joissa kehittäjät kilpailevat yrittämällä ohjelmoida annettujen määritysten mukaisesti. Osallistujien suoritukset pisteytetään tuotoksen tarkkuuden mukaan.

Hän on luonteeltaan sellainen, että on monia ongelmia, jos yritys luottaa liikaa HackerRankiin seulonnassaan. HackerRank on kuin standardoitu koe – se testaa sinua enemmän ”tenttitaidoillasi” kuin substanssiosaamisellasi.

Löysin Linkedinin artikkelin, jossa oli kaunopuheisesti ilmaistu (yksi) HackerRankin suurimmista haittapuolista:

Minun johtopäätökseni tästä kaikesta on, että HackerRank on huono mittari kehittäjän ongelmanratkaisukyvylle, ja kuten niin moni muukin näistä asioista, se on oikeasti hyvä arvioimaan vain yhtä asiaa, nimittäin sitä, kuinka hyvin hakija osaa suorittaa HackerRankin testit. – Be ware of HackerRank, Richard Linnell

Sama pätee Kaggleen. Juttelin juuri erään ehdokkaan kanssa siitä, kuinka hän teki reilusti keskimääräistä paremman haasteen ymmärtämättä itse asiassa lainkaan datatieteestä.

On monia muita artikkeleita, joissa käsitellään HackerRankin käytön haittoja (mukaan lukien yksi artikkeli siitä, kuinka HackerRankin (ja muiden vastaavien alustojen) käyttäminen voi pilata mahdollisuutesi palkata hyvä ylempiasteinen kehittäjä).

Tästä huolimatta on ymmärrettävää, että miksi yritykset ottaisivat tuon käyttöönsä alustavissa testaustesteissään: se on nopeaa, vähiten kustannuksiltaan kallista, ja sen avulla voidaan seuloa pois sellaisetkin ihmiset, jotka eivät edes vaivautuisi tekemään sitä.

Kun otetaan huomioon, että se säilyisi ja luultavasti jatkaisi kasvuaan yritysten tapana seuloa kykyjä, tiimimme on keksinyt listan asioista, joita voit tehdä valmistautuaksesi HackerRank-haasteeseen:

  1. Haasteet ovat ajoitettuja, varmista, ettet ole häiriintynyt ja että olet keskittynyt.
  2. 20-30% menestyksestänne tulee järjestelmän tuntemuksesta. Ennen kuin aloitat varsinaisen koodaushaasteen, kokeile muita, esim. algoritmien lämmittelyä. Varmista, että osaat suorittaa ja lähettää koodisi.
  3. Tutustu testissä sallittuihin ohjelmointikieliin. Jos valitsemasi kieli ei ole käytettävissä, harjoittele toista kieltä.
  4. Kussakin haasteessa on yleensä useita ratkaistavia ongelmia, ja on virhe aloittaa vaikeimmasta. Hyvä lähestymistapa on ratkaista ongelmat nousevassa vaikeus/aika-järjestyksessä. Lue ne ensin lyhyesti ja päätä toteutusjärjestys.
  5. Yritä minimoida ongelmien välinen vaihtoaika toteutuksen jälkeen. Voisit käyttää ylimääräistä aikaa varmistaaksesi, että se on ”lopullinen” toteutus, etkä palaa siihen enää uudelleen.
  6. Jokaiseen ongelmaan liittyy julkisia ja yksityisiä testitapauksia. Sinun pistemääräsi perustuu molempiin. Jos koodin toteutus läpäisi kaikki julkiset testitapaukset, se ei tarkoita, että se läpäisisi kaikki yksityiset testitapaukset. Ajattele ääritilanteita, esim. tyhjä syöttö, yhden elementin syöttö, kaksi elementtiä, monta elementtiä jne. HackeRank-ympäristön avulla voit ajaa koodia omilla testeilläsi.
  7. Lähetä ainakin jotain jokaiseen ongelmaan. On helppo kaapata joitakin pisteitä, vaikka et tietäisi, miten ongelma ratkaistaan. Jos et kuitenkaan osaa ratkaista kaikkia ongelmia, yritä keksiä ainakin yksi.
  8. Kotivalmistautuminen ratkaisee: Jotkin mallit saattavat auttaa, sillä voit kopioida ja liittää ne haasteen aikana. Esimerkiksi BFS/DFS/Binäärihaku.
  9. Harjoittele ensin niin paljon kuin voit. Voisit yrittää ratkaista ainakin yhden ongelman jokaiselta algoritmisen osa-alueelta.
  10. Hyvä tulos ei ole taikuutta, se on harjoittelua ja hikeä.

Voi voima olla kanssasi! 💪

Bonus:

  1. Näin saat HackerRankissa parhaan koneoppimismerkin (oman Kirill Pavlovin toimesta!)
  2. HackerRank-testin murtaminen: 100 %:n pistemäärän saavuttaminen on tehty helpoksi – HFT-mies .

Vastaa

Sähköpostiosoitettasi ei julkaista.