Poniewaz w polskim internecie niewiele relacji z rekrutacji do Google'a postanowilam sie podzielic swoim doswiadczeniem. Gigant z Mountain View wydaje sie dla wielu polskich programistow nieosiagalnym celem, ale wyglada na to, ze tylko "sie wydaje". Warto probowac ;) Nie jestem, rzecz jasna, ekspertka "od Google'a", ale moze moje doswiadczenie cos komus podpowie.
Mniej wiecej w polowie lutego odezwala sie do mnie E., rekruterka. Zapytala czy jestem zainteresowana otwartymi pozycjami. Wedle jej slow znalazla mnie przez GitHuba (mam tam kilka swoich niewielkich projektow oraz kontrybucje do sporego Open Source) i,dalej, LinkedIna. Dwie rzeczy natomiast rzucily mi sie "w oczy" calkiem niezaleznie. 1: na coursera.org jest kurs z javy i oop wspoltworzony przez Google'a z informacja w opisie kursu, ze najbardziej aktywne osoby zostana zaproszone na "mock interview" z inzynierami Google. E. odezwala sie do mnie pod sam koniec kursu (a wlasciwie ostatniego z kilku kursow, bo mowie tu o specjalizacji). Byc moze to przypadek, ale zbieznosc czasowa jest tutaj zastanawiajaca. I 2: potem, na on site, okazalo sie, ze maja wydrukowane moje CV, o ktore mnie nie prosili :P Nie jestem pewna skad, ale podejrzewam, ze jest to CV, ktore im kiedys (okolo rok temu) wyslalam w ramach "normalnej" aplikacji. Podsumowujac: z mojego doswiadczenia wynika, ze oprocz aplikacji, ktora warto zlozyc ich oficjalnym kanalem, warto miec tez aktywne konto na GitHubie, LinkedInie i przegladac czasem nieoczywiste zrodla typu coursera wlasnie. Na pewno nie zaszkodzi ;) I jeszcze jedno: ja od razu wyslalam E. tez CV mojego meza. I on tez zalapal sie na rekrutacje. Jesli wiec znacie kogos komu sie juz udalo kontakt z rekruterem zlapac jest to jak najlepszy sposob. Bo tak naprawde ten punkt jest najtrudniejszy: JAKOS zalapac sie na rozmowe.
Ok. Jedziemy dalej. Proces jest dluuuugi, rozmow jest duzo. Mozna to zalatwic szybciutko - zazwyczaj min 6 tygodni schodzi, mozna wedle potrzeb rozwlec dowolnie robiac nawet 1-2 miesieczne przerwy miedzy rozmowami na przygotowanie. Pierwsza rozmowa jest telefoniczna, z rekruterem. Jest to omowienie stanowiska na ktore proponuja Ci kandydowac, rozmowa nt zainteresowan, doswiadczenia, planow, plus kilka bardzo podstawowych pytan w temacie (zazwyczaj struktury danych, algorytmy + wybrany (przez was) jezyk programowania). Mowimy o typowym "basics of basics" typu "jaka zlozonosc obliczeniowa ma quick sort". Tych pytan jest kilka i nie chodzi o to, zeby odpowiedziec na wszystkie, ale raczej zeby rekruter mial okazje stwierdzic gdzie sa Wasze mocne strony (algorytmy czy systemy? Networking czy zarzadzanie pamiecia?). I w zasadzie o ile nie sknocicie wszystkiego jak leci to ten etap nie ma za zadanie Was wyeliminowac.
Przychodzi czas na pierwsza rozmowe telefoniczna. Zacznijmy od tego, ze po tej rozmowie moga zdarzyc sie 3 rzeczy: podziekuja Wam, poprosza Was o 2 telefoniczna (wczesniej dostaniecie feedback co poszlo ok a co poprawic) lub zaprosza Was od razu na on site. Rozmowy telefoniczne odbywaja sie za pomoca telefonu/google hangouts i google docs. Dostajecie linka do czystego pliku tekstowego, ktory podczas rozmowy jest sharowany z interviewerem. I tam bedziecie pisac kod. Warto to sobie przecwiczyc, bo jest to bardzo rozne od pisania kodu w jakims IDE. Pytan nie moge Wam zdradzic jako, ze sa confidential. Ale moge Wam powiedziec, ze jest to poziom w zasadzie "Cracking the Coding Interview". Swietna ksiazka, polecam, bardzo pomaga wyrobic sobie opinie nt tego, czego sie spodziewac. Zazwyczaj zadania sa z drzew albo operowania na tablicach/stringach/listach. Wazny jest proces myslowy - najpierw trzeba uscislic problem, ktory zazwyczaj celowo jest postawiony niejasno. Upewnic sie, ze wiemy co rekruter mial na mysli, dogadac szczegoly. Potem warto powiedziec jaki sie ma plan na algorytm. Potem przemyslec ewentualne optymalizacje. Potem przychodzi czas na ocene zlozonosci. Kodowanie jest na koncu i tak naprawde zazwyczaj ma najmniejsze znaczenie. Bo nie chodzi o to, zeby pamietac na pamiec nazwy metod, ale by byc w stanie napisac funkcjonalny kod, ktory zrobi to co ma zrobic. Piszac kod trzeba mowic, mowic i mowic, tak, zeby interviewer wiedzial co robicie. I sluchajcie go uwaznie, bo byc moze bedzie chcial Wam cos podpowiedziec, a umiejetnosc korzystania z jego podpowiedzi tez jest istotna. Druga rozmowa jest w zasadzie identyczna.
Dalej nie mam czasu teraz pisac :P Dajcie znac czy chcecie wiedziec jak wyglada on site, ewentualne pytania i jutro tu zajrze i dopisze czesc druga ;)