Coraz więcej firm korzysta z wyzwania HackerRank, aby przetworzyć swoich kandydatów na inżynierów. Jeśli nie jesteś zaznajomiony z HackerRank, zapewnia on konkurencyjne wyzwania programistyczne, w których programiści rywalizują próbując programować zgodnie z dostarczonymi specyfikacjami. Składanie uczestników są oceniane w zależności od dokładności jego output.
Given to charakter, istnieje wiele nieodłącznych problemów, jeśli firma opiera się zbyt mocno na HackerRank do przesiewania. HackerRank jest jak twój standaryzowany test – testuje cię bardziej na twoich „umiejętnościach egzaminacyjnych” niż na twojej wiedzy merytorycznej.
Natknąłem się na artykuł na Linkedin, w którym elokwentnie opisano (jedną z) głównych wad HackerRank:
Moim wnioskiem z tego wszystkiego jest to, że HackerRank jest słabym wskaźnikiem zdolności dewelopera do rozwiązywania problemów i jak wiele z tych rzeczy jest naprawdę dobry w ocenie tylko jednej rzeczy, a mianowicie tego, jak dobry jest kandydat w wypełnianiu testów HackerRank. – Be ware of HackerRank, Richard Linnell
To samo dotyczy Kaggle. Właśnie rozmawiałem z kandydatem o tym, jak wykonał wyzwanie znacznie powyżej średniej bez faktycznego zrozumienia nauki o danych w ogóle.
Jest wiele innych artykułów obejmujących wady korzystania z HackerRank (w tym jeden o tym, jak korzystanie z HackerRank (i innych podobnych platform) może zrujnować szansę na zatrudnienie dobrego starszego dewelopera).
Jednakże jest to zrozumiałe, dlaczego firmy przyjęłyby to do wstępnego testowania: jest to szybkie, najmniej kosztowne i może odsiewać ludzi, którzy nawet nie zawracaliby sobie głowy.
Zważywszy na to, że pozostanie i prawdopodobnie będzie nadal rosnąć jako sposób dla firm na poszukiwanie talentów, nasz zespół wymyślił listę rzeczy, które możesz zrobić, aby przygotować się do wyzwania HackerRank:
- Wyzwania są odmierzane w czasie, upewnij się, że nie jesteś zakłócony i skupiony.
- 20-30% twojego sukcesu pochodzi od znajomości systemu. Zanim przystąpisz do właściwego wyzwania kodowania, spróbuj innych, np. rozgrzewki algorytmów. Upewnij się, że wiesz jak wykonać i przesłać swój kod.
- Zrozumienie dozwolonych języków programowania dla testu. Jeśli wybrany przez Ciebie język nie jest dostępny, ćwicz inny.
- Zazwyczaj w każdym zadaniu jest wiele problemów do rozwiązania i błędem jest zaczynanie od najtrudniejszego z nich. Dobrym podejściem jest rozwiązywanie problemów w kolejności rosnącej trudności/czasu. Przeczytaj je najpierw krótko i zdecyduj o kolejności realizacji.
- Postaraj się zminimalizować czas przełączania między problemami po realizacji. Możesz spędzić dodatkowy czas, aby upewnić się, że jest to „ostateczna” implementacja i nie wracać do niej ponownie.
- Każdy problem ma publiczne i prywatne przypadki testowe. Twój wynik jest oparty na obu. Jeśli implementacja kodu przeszła wszystkie publiczne przypadki testowe, to nie mięso to przeszłoby wszystkie prywatne przypadki testowe. Pomyśl o sytuacjach brzegowych, np. puste wejście, jednoelementowe wejście, dwa elementy, wiele elementów, itd. Środowisko HackeRank pozwala na uruchomienie kodu na twoich niestandardowych testach.
- Przedstaw przynajmniej coś dla każdego problemu. Łatwo jest zdobyć kilka punktów, nawet jeśli nie wiesz, jak rozwiązać problem. Jeśli jednak nie wiesz jak rozwiązać wszystkie problemy, postaraj się rozwiązać przynajmniej jeden z nich.
- Przygotowanie w domu robi różnicę: niektóre szablony mogą pomóc, ponieważ możesz je skopiować i wkleić w trakcie wyzwania. Na przykład, BFS/DFS/Szukanie binarne.
- Praktykuj najpierw tak dużo jak możesz. Możesz spróbować rozwiązać przynajmniej jeden problem z każdej subdomeny algorytmicznej.
- Dobry wynik to nie magia, to praktyka i pot.
May the force be with you! 💪
Bonus:
- Jak zdobyć najwyższą odznakę uczenia maszynowego na HackerRank (przez naszego własnego Kirilla Pavlova!)
- Cracking the HackerRank Test: 100% score made easy – the HFT guy .