Tydzień temu opowiedzieliśmy o , w których w komentarzach podkreślono znaczenie staży i doświadczenia praktycznego. Z tym trudno się nie zgodzić, ponieważ teoretyczną wiedzę należy ugruntować praktyką. Tym postem rozpoczynamy serię artykułów o letnich stażach studentów: jak młodzi ludzie się o nie ubiegają, co tam robią i dlaczego to jest korzystne.
W pierwszym artykule opowiem, jak pomyślnie przejść przez wszystkie etapy rozmów kwalifikacyjnych i zdobyć staż w Google.
Kilka słów o sobie
Jestem studentem pierwszego roku studiów magisterskich na Petersburskim kampusie Wyszyńskiego, ukończyłem studia licencjackie na Akademickim Uniwersytecie w zakresie uczenia maszynowego. W czasie studiów licencjackich aktywnie uczestniczyłem w programowaniu sportowym oraz brałem udział w różnych hackathonach. O tych ostatnich można poczytać , i .
O stażu
Na początek chcę trochę opowiedzieć o tym, jak wygląda staż w Google od wewnątrz.
Każdego stażystę, który przychodzi do Google, przypisuje się do konkretnego zespołu. Może to być zespół zajmujący się rozwojem wewnętrznej infrastruktury, o której osoba spoza firmy nic nie wie, lub produktu, z którego korzystają miliony ludzi na całym świecie. Takimi produktami mogą być znane YouTube, Google Docs i inne. Ponieważ rozwój tych projektów prowadzi dziesiątki, a nawet setki programistów, znajdziesz się w zespole, który specjalizuje się w konkretnej jego części. Na przykład latem 2018 roku pracowałem nad Google Docs, dodając nowe funkcje do pracy z arkuszami.
Jako stażysta w firmie masz menedżera, który nazywa się hostem. To zwykły pracownik na pełen etat, który zajmuje się rozwojem produktów. Jeśli masz jakieś pytania, problemy lub coś jest dla ciebie niejasne, powinieneś się do niego zwrócić. Zwykle odbywają się cotygodniowe spotkania jeden na jeden, na których można omówić bieżącą sytuację w pracy nad projektem lub porozmawiać o czymś całkowicie niezwiązanym z tematem. Co więcej, host to jedna z osób, które będą oceniać twoją pracę podczas stażu. Będzie też drugi, dodatkowy recenzent. Oczywiście, im zależy, abyś odniósł sukces.
W Google nauczysz się, ale to niepewne, dobrego nawyku pisania dizdoku (dokumentu projektowego) przed przystąpieniem do jakichkolwiek działań. Dla tych, którzy nie wiedzą, dizdok to dokument, który przedstawia istotę istniejącego problemu oraz szczegółowy opis technicznego rozwiązania. Dizdok można pisać zarówno dla całego produktu, jak i dla konkretnej nowej funkcjonalności. Przeczytanie takiej dokumentacji pozwala zrozumieć, jaki był cel stworzenia produktu oraz w jaki sposób został on zrealizowany. Często w komentarzach można znaleźć dialogi między inżynierami, którzy dyskutują różne sposoby realizacji części projektu. Daje to dobre zrozumienie, dlaczego podjęto każdą decyzję.
Cechą stażu jest to, że będziesz miał możliwość korzystania z niesamowitych wewnętrznych narzędzi deweloperskich, których w Google jest ogromna ilość. Pracując z nimi i rozmawiając z wieloma osobami, które wcześniej pracowały w Amazon, Nvidia i innych renomowanych firmach technologicznych, mogę stwierdzić, że te narzędzia mają duże szanse być najlepszymi, z jakimi kiedykolwiek się spotkasz. Na przykład narzędzie o nazwie Google Code Search pozwala nie tylko przeszukiwać całą bazę kodu oraz historię zmian każdego wiersza kodu, ale także umożliwia nawigację po kodzie, do której przywykliśmy w nowoczesnych środowiskach deweloperskich, takich jak Intellij Idea. A potrzebujesz do tego tylko przeglądarki! Związanym z tą cechą minusem jest to, że poza Google brak tych samych narzędzi może być odczuwalny.
Jeśli chodzi o benefity, firma oferuje świetne biura, dobrą kuchnię, dostęp do siłowni, dobre ubezpieczenie i inne atrakcje. Po prostu zostawię tu kilka zdjęć z nowojorskiego biura:



Jak zdobyć ofertę?
Przegląd
Teraz nadszedł czas, aby porozmawiać o czymś poważniejszym: jak zdobyć staż?
Tutaj nie będziemy mówić tylko o Google, ale o tym, jak to wygląda w ogólnym przypadku. O specyfice procesu rekrutacji stażystów w Google napiszę poniżej.
Proces rozmowy kwalifikacyjnej w firmie prawdopodobnie będzie wyglądał tak:
- Aplikacja na staż
- Konkurs na Hackerrank/Quiz TripleByte
- Rozmowa wstępna
- Pierwsza rozmowa techniczna
- Druga rozmowa techniczna
- Rozmowa na miejscu
Aplikacja na staż
Oczywiście wszystko zaczyna się od Twojego pragnienia zdobycia stażu. Aby to zrobić, musisz to wyrazić, wypełniając formularz na stronie firmy. Jeśli masz (lub Twoi znajomi mają) znajomych, którzy tam pracują, możesz spróbować zdobyć staż przez nich. Ta opcja jest preferowana, ponieważ pomaga Ci się wyróżnić w tłumie innych studentów. Jeśli nie masz takiej możliwości, aplikuj samodzielnie.
Staraj się nie przejmować, gdy na Twój adres e-mail przychodzą wiadomości o treści „jesteś niesamowity, ale wybraliśmy innych kandydatów”. Mam dla Ciebie radę:

Konkurs na Hackerrank/Quiz TripleByte
Jeśli twoje CV spodoba się rekruterowi, w ciągu 1-2 tygodni otrzymasz wiadomość z kolejnym zadaniem. Prawdopodobnie zostaniesz poproszony o udział w teście na Hackerrank, w którym w określonym czasie rozwiążesz zadania algorytmiczne, lub w teście TripleByte, w którym będziesz musiał odpowiadać na różne pytania dotyczące algorytmów, tworzenia oprogramowania i budowy systemów niskopoziomowych. Ten etap służy jako wstępny filtr w procesie rekrutacji kandydatów.
Rozmowa wstępna
Jeśli pomyślnie przejdziesz to wyzwanie, czeka cię rozmowa wstępna, podczas której będziesz rozmawiać z rekruterem o swoich zainteresowaniach i projektach, które firma proponuje stażystom. Jeśli wykażesz zainteresowanie, a twoje wcześniejsze doświadczenie będzie odpowiadać oczekiwaniom firmy, dostaniesz zielone światło. Z mojego doświadczenia to najtrudniejszy etap w całym procesie, który w dużej mierze zależy od rekrutera.
Jeśli poradziłeś sobie z tymi trzema wyzwaniami, większość przypadkowości masz już za sobą. Następnie są techniczne wywiady, które bardziej zależą od ciebie, co oznacza, że masz większy wpływ na ich wynik. I to jest dobre!
Rozmowy techniczne
Następnie odbywają się techniczne wywiady, które zwykle prowadzone są przez Skype lub Hangouts. Czasami można się spotkać z bardziej egzotycznymi serwisami, które wymagają zainstalowania dodatkowego oprogramowania. Dlatego upewnij się wcześniej, że na twoim komputerze wszystko działa.
Format technicznych wywiadów bardzo zależy od stanowiska, na które aplikujesz. Jeśli chodzi o stanowisko stażysty inżyniera oprogramowania, prawdopodobnie dostaniesz kilka algorytmicznych zadań do rozwiązania, które należy zakodować w jakimś internetowym edytorze kodu, na przykład, . Możesz również zostać poproszony o pytanie dotyczące projektowania obiektowego, aby zobaczyć, jak dobrze rozumiesz projektowanie oprogramowania. Na przykład mogą poprosić o zaprojektowanie prostego sklepu internetowego. Szczerze mówiąc, nigdy nie miałem do czynienia z zadaniem, na podstawie którego naprawdę można by ocenić tę umiejętność. Na końcu rozmowy rekrutacyjnej z pewnością dostaniesz możliwość zadania pytań. Zdecydowanie zalecam, aby podejść do tego poważnie, ponieważ dzięki pytaniom możesz pokazać swoje zainteresowanie projektem i swoje kompetencje w temacie. Zwykle wcześniej przygotowuję listę potencjalnych pytań:
- Jak wygląda praca nad projektem?
- Jaką trudną sprawę musiałeś rozwiązać w ostatnim czasie?
- Jaki jest wkład programisty w ostateczny produkt?
- Dlaczego zdecydowałeś się pracować w tej firmie?
Nie zawsze rekrutuje cię ktoś, z kim później będziesz pracować. Dlatego ostatnie pytania mogą dać wyobrażenie o tym, co dzieje się w firmie jako całości. Dla mnie, na przykład, ważne jest, abym miał wpływ na końcowy produkt.
W przypadku pozytywnego wyniku pierwszej rozmowy, otrzymasz zaproszenie na drugą. Będzie się różnić od pierwszej osobą rekrutującą i, odpowiednio, zadaniami. Format prawdopodobnie pozostanie taki sam. Po przejściu drugiej rozmowy, mogą zaproponować również trzecią.
Rozmowa na miejscu
Jeśli do tego momentu nie odrzucono cię, czeka cię rozmowa on-site, kiedy kandydat zostaje zaproszony na rozmowę do biura firmy. Zwykle składa się ona z kilku technicznych rozmów oraz jednej behawioralnej. Podczas rozmowy behawioralnej rozmawiasz z menedżerem o swoich projektach, jakie podejmowałeś decyzje w różnych sytuacjach itd. To znaczy, że rekruter stara się lepiej zrozumieć twoją osobowość i bliżej zapoznać się z twoim doświadczeniem. Niektóre firmy, przeprowadzające 3-4 techniczne rozmowy, zamiast rozmowy on-site oferują odbycie zdalnie tylko jednej behawioralnej.
Teraz pozostaje tylko czekać na odpowiedź rekrutera. Jeśli wszystko poszło gładko, na pewno otrzymasz długo oczekiwany ofertę. Jeśli nie będzie oferty — nie martw się. Firmy systematycznie odrzucają dobrych kandydatów. Spróbuj ponownie aplikować na staż w przyszłym roku.
Rozmowa kwalifikacyjna z kodowaniem
Czekaj... Jeszcze nie odbyliśmy żadnych rozmów kwalifikacyjnych. Dowiedzieliśmy się tylko, jak wygląda cały proces, a teraz musimy dobrze przygotować się do rozmów, aby nie stracić szansy na miłe i pożyteczne spędzenie lata.
Istnieją takie zasoby jak , i , który został stworzony jako narzędzie do przygotowania do rozmów kwalifikacyjnych. Jeśli rozwiązujesz 100-200 zadań o różnym poziomie trudności, istnieje duża szansa, że nie będziesz miał problemów podczas rozmowy kwalifikacyjnej. Z innych godnych uwagi źródeł jest jeszcze Facebook Code Lab Wielu także poleca przeczytanie książki „
Cracking the Coding InterviewJeśli w twoim życiu było mało technicznych rozmów kwalifikacyjnych w zagranicznych firmach, zaleca się odbycie kilku próbnych. Im więcej, tym lepiej. Pomoże to poczuć się pewniej podczas rozmowy i zmniejszy stres. Próbne rozmowy kwalifikacyjne można zorganizować na
Rozmowy kwalifikacyjne oparte na zachowaniu .
Wywiady behawioralne
Jak już wspomniałem, podczas rozmowy kwalifikacyjnej opartej na zachowaniu, interviewer stara się bardziej szczegółowo poznać Twoje doświadczenie i zrozumieć Twój charakter. Co jeśli jesteś świetnym programistą, ale nie potrafisz pracować w zespole? Obawiam się, że wielu to nie zadowoli. Na przykład, mogą zadać Ci pytanie: „Jaka jest Twoja słaba strona?” Oprócz takich pytań, poproszą Cię o opowiedzenie o projektach, w których odgrywałeś kluczową rolę, o problemach, które napotkałeś, oraz o ich rozwiązaniach. Warto zauważyć, że na początku rozmów technicznych również mogą o to zapytać. Na temat tego, jak przygotować się do takich rozmów, dobrze napisano w jednym z rozdziałów „Cracking the Coding Interview”.
Teraz, gdy wiadomo, jak wygląda proces selekcji stażystów w ogólnym ujęciu i jak przygotowywać się do rozmów, nadszedł czas, aby porozmawiać o tym, jak to działa w przypadku Google.
Listę dostępnych stażów można znaleźć . Jeśli planujesz pojechać na letni staż, warto zacząć aplikować już we wrześniu.
Rozmowy kwalifikacyjne
Tutaj proces wygląda nieco nietypowo. Będziesz miał rozmowę wstępną i dwie techniczne. Jeśli wypadniesz na nich dobrze, przejdziesz do etapu poszukiwania projektu. Będziesz musiał wypełnić dość długą ankietę, w której wskażesz wszystkie swoje obecne umiejętności oraz wyrazisz preferencje dotyczące tematu projektu i lokalizacji, w której chcesz odbyć staż.
Bardzo ważne jest, aby dokładnie i starannie wypełnić tę ankietę! Potencjalni hostowie, którzy szukają ludzi do swoich projektów, przeglądają dostępnych stażystów i prowadzą rozmowy z tymi kandydatami, którzy im się spodobali. Mogą filtrować studentów według lokalizacji, słów kluczowych, zaznaczeń w ankiecie oraz sortować według wyników rozmów kwalifikacyjnych.
Podczas rozmowy rekruter opowiada o projekcie, nad którym będziesz pracować, a także poznaje doświadczenie kandydata. Jest to doskonała okazja, aby dowiedzieć się, jak naprawdę będzie wyglądał proces pracy, ponieważ rozmawiasz z osobą, która będzie twoim hostem. Po rozmowie piszesz e-maila do rekrutera z twoimi wrażeniami na temat projektu. Jeśli projekt ci się spodobał, a ty również spodobałeś się rekruterowi, czeka cię oferta. W przeciwnym razie będziesz oczekiwał kolejnych telefonów, których może być 2, 3, 4, a może więcej lub wcale. Warto dodać, że nawet jeśli dobrze przeszedłeś rozmowy, to na etapie poszukiwania projektu, jeśli żadna drużyna cię nie wybrała (a być może nikt nawet z tobą nie rozmawiał), to niestety, pozostaniesz bez oferty.
Ameryka czy Europa?
Oprócz tego będziesz musiał zdecydować, gdzie odbędzie się twoja praktyka. Mój wybór był między USA i . I tutaj ważne jest, aby znać pewne szczegóły. Na przykład, istnieje wrażenie, że w USA jest trudniej się dostać. Po pierwsze, musisz przejść dodatkowy test trwający 90 minut, w którym będziesz rozwiązywać zadania algorytmiczne, a także jeszcze jeden 15-minutowy quiz, mający na celu ujawnienie twojego charakteru. Po drugie, z mojego doświadczenia i doświadczenia moich przyjaciół, na etapie poszukiwania drużyny interesuje się wami rzadziej. Na przykład w 2017 roku miałem tylko jedną rozmowę, po której drużyna wybrała innego kandydata, i nie otrzymałem oferty. W tym czasie koledzy aplikujący do Europy mieli po 4-5 projektów. W 2018 roku znalazłem drużynę w styczniu, co było dosyć późno. Chłopaki pracowali w Nowym Jorku, podobał mi się ich projekt, więc się zgodziłem.
Jak widzisz, z USA jest trochę trudniej. Ale chciałem tam trafić bardziej niż do Europy. Poza tym w USA płacą więcej.

Co robić po?
Na koniec stażu masz dwie opcje:
- Uzyskać staż na następny rok.
- Przejść dwa techniczne rozmowy rekrutacyjne, aby uzyskać pełnoetatowe stanowisko.
Te dwie opcje są dostępne pod warunkiem, że pomyślnie zrealizowałeś swój aktualny projekt. Jeśli jednak ten staż nie jest twoim pierwszym, mogą ci nawet zaproponować pełnoetatowe stanowisko bez rozmów rekrutacyjnych.
W związku z tym pojawia się sytuacja, którą można opisać jednym obrazkiem:

Ponieważ to było moje pierwsze staż, zdecydowałem się na dwa techniczne rozmowy kwalifikacyjne, aby uzyskać pełnoetatową posadę. Na podstawie ich wyników zgodzono się złożyć mi ofertę i zaczęli szukać zespołu, jednak odmówiłem tej opcji, ponieważ postanowiłem ukończyć studia magisterskie. Google raczej nie zniknie przez 2-3 lata.
Podsumowanie
Przyjaciele, mam nadzieję, że dostępnie i jasno przedstawiłem, jak wygląda droga od studenta do stażysty (a potem z powrotem…), i ten materiał znajdzie swojego czytelnika, któremu okaże się przydatny. Jak widać, to wszystko nie jest tak skomplikowane, jak może się wydawać, trzeba tylko odrzucić swoją leniwą postawę, swoje lęki i zacząć próbować!
P.S. Mam jeszcze w Telegramie, do którego można zajrzeć.
Źródło: habr.com
