Czyli jak znaleźć pracę jako programista w dużych firmach technologicznych, takich jak Google, Facebook czy Twitter.
Proces rekrutacyjny jest wieloetapowy
Rozmowy kwalifikacyjne z dużymi firmami technologicznymi z Doliny Krzemowej są trudne a przeprowadzanie ich zdalnie z innego kraju nie ułatwia sprawy. Ważne jest aby maksymalnie wykorzystać dany Ci czas. Typowa rekrutacja jest trzyetapowa:
- Etap 1 to wstępna rozmowa telefoniczna trwająca zwykle 45 minut.
- Etap 2 to zadanie do wykonania w domu. Może to być opcjonalne, w zależności od firmy.
- Etap 3 to rozmowa kwalifikacyjna na miejscu lub rozmowa wirtualna.
Wstępna rozmowa telefoniczna
- Wprowadzenie - 1 min
- Aspiracje zawodowe - 5 min
- Kodowanie za pomocą edytora online, takiego jak CoderPad - 30 minut
- Pytania do ankieterów - 5 min
Jak ankieter ocenia Twoją rozmowę techniczną?
- Czy rozwiązałeś problem na czas z jakimiś minimalnymi wskazówkami lub bez nich?
- Czy poświęciłeś trochę czasu na zrozumienie i wyjaśnienie pytań przed kodowaniem?
- Czy podczas wywiadu mówiłeś na głos jaki jest Twój proces myślowy?
- Czy znalazłeś błędy, zanim Twój rozmówca je wyłapał?
- Czy możesz zwiększyć wydajność kodu?
Przygotowanie: poświęć trochę czasu na zapoznanie się z CoderPadem przed rozmową kwalifikacyjną.
Jeśli ankieterzy nie są w 100% pewni co do kandydata, mogą poprosić kandydata o przeprowadzenie kolejnej rundy rozmów telefonicznych.
Zadanie do wykonania w domu
Nie jest to powszechne w dużych firmach technologicznych, takich jak Google, Facebook i Amazon, ale częściej w mniejszych i średnich firmach, takich jak Medium czy Netflix. Rekruterzy mogą na przykład poprosić Cię o zbudowanie prostej aplikacji internetowej, takiej jak gra zręcznościowa lub kalendarz, i dać tydzień na pracę nad nią. Jak ocenia to ankieter?
- Czy Twoje zadanie działa bezbłędnie?
- Czy obejmuje wszystkie postawione przed Tobą wymagania?
- Czy obejmuje wszystkie skrajne przypadki?
- Brak resztek z console.logs.
- Kod nie jest nadmiernie powtarzalny.
- Kod i komentarze są zrozumiałe.
- Nowe funkcje są dobrze nazwane.
- Czy testy istnieją?
- Jeśli tak, czy testy mają znaczenie, prawidłowo testują?
Rozmowa kwalifikacyjna na miejscu lub rozmowa wirtualna
Przynajmniej przed covidem rozmowa kwalifikacyjna na miejscu zwykle trwałaby cały dzień i dotyczyłaby czterech głównych obszarów: struktury danych i algorytm, domena frontendowa (nie zawsze rzecz jasna), architektura i projektowanie stron internetowych oraz wywiad behawioralny
Wiele dużych firm technologicznych nadal kładzie nacisk na struktury danych i algorytmy, aby ocenić Twoje umiejętności rozwiązywania problemów. Dobrym miejscem na przygotowanie się do algorytmów jest zestaw do przygotowania wywiadu HackerRank lub przeczytanie książki wywiadów Cracking the Code. Jeśli przeprowadzasz rozmowę kwalifikacyjną na stanowisko front-end, upewnij się, że ćwiczysz rozwiązywanie problemów w JavaScript i znasz złożoność czasową Big-O. Jeśli interesuje Cię szczegółowy przewodnik po rozmowie kwalifikacyjnej z rozwiązaniami i nie masz nic przeciwko płaceniu ;-) to zapoznaj się z wywiadem Ace the JavaScript Coding Interview na stronie educative.io. Można też przećwiczyć LeetCode, zaczynając od pytań łatwych do trudnych.
Podczas rozmowy kwalifikacyjnej najprawdopodobniej będziesz pisał swoje rozwiązania na wirtualnej tablicy lub zwykłym edytorze tekstu. W przypadku rekrutacji na frontendowca rozmówcy mogą poprosić Cię o zbudowanie widgetu interfejsu użytkownika od podstaw. Najlepszym sposobem, aby się do tego przygotować, jest zakodowanie i zbudowanie widgetu przy użyciu ulubionego środowiska IDE lub internetowego CodeSandbox w Javascript, HTML i CSS. Przypomnij sobie jak rozmieścić komponenty interfejsu użytkownika za pomocą flexbox lub siatki CSS. Rekruterzy doceniają dbałość kandydata o szczegóły.
Nie ma dobrej ani złej odpowiedzi, jeśli chodzi o odpowiedź na pytanie projektowe. To, czego szukają rozmówcy to Twoja znajomość systemu aplikacji internetowych, aby określić jaki poziom prezentujesz. Przykład pytania otwartego: „Co się dzieje od momentu wprowadzenia adresu URL i naciśnięcia klawisza Enter do momentu wyświetlenia witryny w przeglądarce?”. Przykłady pytań dotyczących projektowania front-endu:
- Zaprojektuj system rezerwacji hotelowej.
- Przeprowadź mnie przez front-endową architekturę aplikacji do czatu w czasie rzeczywistym.
Będziesz oceniany pod kątem tego czy sprecyzowałeś wymagania, jak dobrze potrafisz zaprojektować interfejsy API, jak dobrze możesz zaprojektować bazę danych, jak postępujesz ze składnikami interfejsu użytkownika i stanami aplikacji internetowej.
Ostatnia część tej rozmowy to wywiad przeprowadzany z nietechnicznym specjalistą od rekrutacji. Chciałby on zapewne przejrzeć Twoje CV i usłyszeć o Twoich doświadczeniach i projektach. Podkreśl swoje osiągnięcia, czego się nauczyłeś, co chcesz poprawić i co chcesz dalej osiągnąć w swojej karierze.