Cracking the HackerRank Test: 100% score made easy

X

Privacy & Cookies

Ta strona używa cookies. Kontynuując, wyrażasz zgodę na ich użycie. Dowiedz się więcej, w tym jak kontrolować pliki cookie.

Got It!

Reklamy

Powszechnie wiadomo, że większość programistów wannabes nie może zakodować swojej drogi z papierowej torby. W związku z tym, przemysł technologiczny naciska na dłuższe, trudniejsze i coraz bardziej ekstremalne badania przesiewowe.

Wywiad przy tablicy był standardem przez jakiś czas, a następnie zagadki , a następnie FizzBuzz.

Najnowszą modą jest HackerRank. To wprowadzenie automatycznych testów programistycznych, które kandydat musi wykonać, zanim będzie mógł porozmawiać z kimkolwiek w firmie.

Wiele bardzo dobrych firm używa HackerRank jako narzędzia wstępnej selekcji. Jeśli nie możemy tego uniknąć, musimy to ogarnąć.

Co można znaleźć w teście HackerRank?

W teście można napotkać 3 rodzaje pytań:

  • Pytania wielokrotnego wyboru: „Jaka jest złożoność czasowa znalezienia elementu w czerwono-czarnym drzewie?” -A- -B- -C- -D-
  • Ćwiczenie z kodowania: „<długi opis problemu do rozwiązania>, <format danych wejściowych>, <format danych wyjściowych>”. Rozpocznij kodowanie rozwiązania.
  • Ćwiczenie SudoRank: „Twoje dane uwierzytelniające ssh to tester:[email protected] <długi opis tego, co jest nie tak z tym serwerem>”. SSH do serwera i zacznij naprawiać.

Dowolną ilość dowolnych pytań można złożyć razem, w dowolnej kolejności, aby stworzyć kompletny test. Firma powinna dać wskazówki, czego można się spodziewać w jej teście.

HackerRank udostępnia bibliotekę setek pytań i ćwiczeń gotowych do użycia. Możliwe jest również napisanie przez firmę własnych (i zalecane).

Udaremnianie pytań wielokrotnego wyboru

Większość pytań wielokrotnego wyboru można rozwiązać przez odpowiednie wyszukiwanie w Google. Zazwyczaj na tytule, czasami na kilku wybranych słowach z tekstu.

hr question dropping privileges
Select Text => Right Click => Quick Search
hr google dropping privileges
Google has spoken! => wszyscy za setuid()

Niszczące ćwiczenia z kodowania

Szukanie w Google paragrafu o długości 10 linii nie jest akceptowalną opcją. Nie wspominając o tym, że strona HackerRank wyłącza kopiowanie/wklejanie w obszarze opisu.

Obejściem jest wyszukiwanie tytułu ćwiczenia. Tytuł jednoznacznie identyfikuje pytanie na HackerRank. Zostanie on wspomniany w powiązanych rozwiązaniach i wpisach na blogu. Doskonale nadaje się do indeksowania przez Google.

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

Pierwszy wynik to pytanie, drugi wynik to rozwiązanie. Cóż, to było łatwe.

Bonus: To rozwiązanie google jest w rzeczywistości błędne… a jednak daje wszystkie punkty.

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

To rozwiązanie jest poprawne tylko wtedy, gdy zduplikowane liczby występują w parach. Wszystkie testy jednostkowe HackerRank pasują do tego kryterium przez czysty przypadek.

Oryginalnie, umieściliśmy to proste pytanie na początku testu dla rozgrzewki. Otrzymaliśmy tę odpowiedź od kandydata w naszej pierwszej partii aplikantów. Było to dość zastanawiające, jakie są szanse, że ktoś wymyśliłby tak zagmatwany algorytm, gdyby dostał tylko tekst z pytania? Szybkie dochodzenie szybko ujawniło źródło.

Dodatek:

Pytanie „Lonely Integer” jest sformułowane nieco inaczej na publicznej stronie HackerRank i w prywatnej bibliotece HackerRank, ale dane wejściowe, wyjściowe i testy jednostkowe są takie same. Stąd też rozwiązanie jest wyłączone, ale działa. HackerRank oczywiście kopiuje pytania od społeczności do profesjonalnej biblioteki. To kolejna wpadka kopiującego kota!

Recruiter Insights: Cheating brought to the next level

Mamy wielu kandydatów pochodzących od rekruterów. Jak wypadają w porównaniu z kandydatami z innych źródeł?

Zobaczmy statystyki na trudne pytanie.

hr insights stock maximize distribution
Rozkład na wszystkie próby, przez wszystkie firmy (skala log). 1234 zero vs 303 pełny wynik.

Większość kandydatów otrzymuje 0 punktów: zabrakło czasu, nie potrafili odpowiedzieć, zły algorytm lub niekompletne/częściowe rozwiązania (tj. dobry początek, ale jeszcze nie na tyle, aby przejść jakikolwiek test jednostkowy).

Chcieliśmy pokazać ten sam rozkład dla naszej puli kandydatów, ale HackerRank nie zapewnia już tego wykresu. Kiedyś tak było.

Anyway, pamiętamy przybliżone liczby. Rozkład dla naszych kandydatów to około 50/50% na każdym z krańców. To znacznie lepiej niż 75/17% z ogólnej populacji. Możemy skorelować tę liczbę z czasem spędzonym nad pytaniem i wizualnym przeglądem kodu.

Wynik jest taki, że kandydaci pochodzący od rekruterów radzą sobie lepiej, szczególnie na trudnych ćwiczeniach. W rzeczywistości jest to niewiarygodne, o ile lepiej sobie radzą! (Specjalne kudosy dla facetów, którzy są w stanie rozwiązać problem – z doskonale zoptymalizowanym rozwiązaniem – w czasie krótszym niż zajęłoby przeczytanie go =D).

Wniosek jest prosty i oczywisty: Nasi rekruterzy rozdają testy kandydatom.

wszyscy to robią, tylko nikt o tym nie mówi
Czy rekruterzy rozdają pytania? Oczywiście!

Lekcja wyciągnięta:

  • Dla kandydatów: Pamiętaj, aby przed testem poprosić rekrutera o wsparcie.
  • Dla rekruterów: Pamiętaj, aby coachować kandydata do testu i poinstruować go, aby zapisał zmiany (jeśli są).
  • Dla firm: Wystrzegaj się kandydatów z wysokimi wynikami pochodzącymi od rekruterów! W szczególności, nie kalibruj punktacji w oparciu o skrajne wyniki kilku oszustów.

Zagadka: Ile czasu zajmuje Ci rozwiązanie zadania handlowego? .

Niestandardowe testy HackerRank

Firmy mogą pisać niestandardowe ćwiczenia i powinny to robić. Jest to trudne i wymaga szczególnych umiejętności, ale zdecydowanie warto.

Jest to jedyne skuteczne rozwiązanie przeciwko Google, jeśli jest wykonane starannie. (To jest rzeczywiście zaskakująco trudne do wykonania ćwiczenia, które są zarówno proste ORAZ nie łatwo znaleźć z Google na 1000 tutoriali i forów kodowania).

Niestety, nie pomoże to przeciwko rekruterom. (Wyłączając pierwszą partię kandydatów, którzy zostaną poświęceni jako skauci).

Wnioski

Czy właśnie zrujnowaliśmy wstępny screening HackerRank? Oczywiście, że nie! Istnieje niekończąca się podaż bozosów niezdolnych do odróżnienia Internetu od Internet Explorera.

Moglibyśmy napisać książkę uczącą odpowiedzi na 90% problemów związanych z rozmowami programistycznymi, jednak 99% osób poszukujących pracy nigdy by jej nie przeczytało. Do diabła, to było napisane przez jakiś czas i nie miało żadnego wpływu.

Tylko garstka devów śledzących blogi/newsy lub szukających „Co to jest HackerRank?” będzie w stanie przyjść lepiej przygotowana.

Jeśli cokolwiek, ten artykuł sprawia, że HackerRank jest lepszy i bardziej istotny. Teraz test polega na szukaniu pomocy w Google i naprawianiu subtelnie zepsutych fragmentów nieindentyfikowanego kodu napisanego w złym języku.

HackerRank w końcu przesiewa zdolności istotne dla pracy!

cracking the coding interview book cover

Ostatnie słowo rady. Będziesz potrzebował szkolenia, jeśli próbujesz przejść pasek wywiadu w dobrych firmach technologicznych i nie miałeś szansy uczęszczać na MIT. Ta książka jest złotym standardem, jeśli chodzi o pytania dotyczące struktur danych i algorytmów. Gorąco polecam. Zawiera setki pytań, które będą zadawane w kółko, w każdej firmie. Jako minimum, przeczytaj darmowy podgląd na Amazon.

Leave a Reply