Jak se připravit na pohovor v Googlu a neudělat ho. Dvakrát

Jak se připravit na pohovor v Googlu a neudělat ho. Dvakrát

Název článku zní jako epický fail, ale ve skutečnosti není všechno tak jednoduché. A obecně tento příběh skončil velmi pozitivně, i když ne v Googlu. Ale to je téma na jiný článek. V tom samém článku budu mluvit o třech věcech: jak probíhal můj proces přípravy, jak probíhaly pohovory v Googlu a proč podle mého názoru není vše tak jasné, jak by se mohlo zdát.

Jak to všechno začalo

Jednoho chladného kyperského zimního večera mě náhle napadla myšlenka, že moje znalosti klasické informatiky jsou velmi daleko od průměru a je třeba s tím něco udělat. Pokud mimochodem někdo ještě nečetl, proč je večer kyperský a studený, tak se o tom můžete dozvědět zde. Po chvíli přemýšlení bylo rozhodnuto začít online kurzem o algoritmech a datových strukturách. Od jednoho z mých bývalých kolegů jsem slyšel o kurzu Roberta Sedgewicka na Coursera. Kurz se skládá ze dvou částí (Část 1 и Část 2). Pokud se odkazy náhle změní, můžete vždy vygooglit jméno autora. Každá část trvá 6 týdnů. Přednášky jsou na začátku týdne a během týdne je ještě potřeba cvičit. První část kurzu pokrývá základní datové struktury, základní typy třídění a složitost algoritmů. Druhá část je již pokročilejší, počínaje grafy a konče takovými věcmi, jako je lineární programování a neovladatelnost. Po přemýšlení nad vším výše uvedeným jsem došel k závěru, že přesně tohle potřebuji. Mimochodem, zvídavý čtenář se může ptát, co s tím má společného Google? A skutečně, až do této chvíle s tím neměl vůbec nic společného. Ale potřeboval jsem cíl, protože studovat 12 týdnů po večerech bez cíle je poněkud obtížné. Jaký by mohl být účel získávání nových znalostí? Samozřejmostí je jejich aplikace v praxi. V každodenním životě je to docela problematické, ale při pohovoru s velkou společností je to snadné. Rychlý Google ukázal, že Google (promiňte tautologii) je jednou z největších společností v Evropě (a já jsem se díval konkrétně na Evropu), která takové rozhovory provádí. Jejich kancelář se totiž nachází ve švýcarském Curychu. Takže je rozhodnuto – pojďme studovat a jít na pohovor do Googlu.

Příprava na první přístup

Těch 12 týdnů rychle uteklo a já absolvovala oba kurzy. Mé dojmy z kurzů jsou více než pozitivní a mohu je všem zájemcům doporučit. Kurzy se mi líbily z následujících důvodů:

  • Lektor mluví poměrně jasnou angličtinou
  • Materiál je dobře strukturovaný
  • Nádherné prezentace ukazující vnitřnosti každého algoritmu
  • Kompetentní výběr materiálu
  • Zajímavá cvičení
  • Cvičení jsou na webu automaticky kontrolována a poté je vygenerován report

Moje práce na kurzech obvykle probíhala takto. Přednášky jsem vyslechl za 1-2 dny. Poté si rychle otestovali znalosti látky. Zbytek týdne jsem prováděl cvičení v několika iteracích. Po prvním jsem dostal svých 30-70 %, další přinesly výsledek na 97-100 %. Cvičení obvykle zahrnovalo implementaci nějakého algoritmu, např. Vyřezávání švů nebo bzip.

Po absolvování kurzů jsem si uvědomil, že spousta znalostí přichází s velkým smutkem. Jestliže jsem předtím prostě věděl, že nic nevím, teď jsem si začal uvědomovat, že to nevím já.

Protože byl teprve měsíc květen a pohovor jsem naplánoval na podzim, rozhodl jsem se pokračovat ve vzdělávání. Po přezkoumání požadavků na volné pracovní místo bylo rozhodnuto jít paralelně dvěma směry: pokračovat ve studiu algoritmů a absolvovat základní kurz strojového učení. Jako první cíl jsem se rozhodl přejít z kurzů na knihu a vybral jsem monumentální dílo Stevena Skieny „Algorithms. Algorithm Design Manual. Ne tak monumentální jako Knut, ale přesto. Za druhým cílem jsem se vrátil do Coursery a přihlásil se do kurzu Andrewa Nga. Strojové učení.

Uběhly další 3 měsíce a já dokončil kurz a knihu.

Začněme knihou. Čtení se ukázalo jako docela zajímavé, i když ne snadné. V zásadě bych knihu doporučil, ale ne hned. Celkově kniha poskytuje hlubší pohled na to, co jsem se v kurzu naučil. Navíc jsem objevil (z formálního hlediska) takové věci, jako je heuristika a dynamické programování. Přirozeně jsem je dříve používal, ale nevěděl jsem, jak se jmenují. Kniha obsahuje i řadu příběhů z autorova života (Válečný příběh), které poněkud rozmělňují akademický charakter prezentace. Mimochodem, druhou polovinu knihy lze vynechat, obsahuje spíše popis existujících problémů a metod jejich řešení. Je užitečné, pokud se pravidelně používá v praxi, jinak se na něj okamžitě zapomene.

S kurzem jsem byla více než spokojená. Autor evidentně ví své a mluví zajímavě. Navíc toho docela dost, jmenovitě lineární algebru a základy neuronových sítí, jsem si pamatoval z univerzity, takže jsem nezaznamenal žádné zvláštní potíže. Struktura kurzu je vcelku standardní. Kurz je rozdělen do týdnů. Každý týden probíhají přednášky smíchané s krátkými testy. Po přednáškách dostanete zadání, které musíte udělat, odevzdat a bude automaticky zkontrolováno. Stručně, seznam věcí vyučovaných v kurzu je následující:
- nákladová funkce
- lineární regrese
- gradientní klesání
- škálování funkcí
- normální rovnice
- logistická regrese
— vícetřídní klasifikace (jedna vs všichni)
— neuronové sítě
- zpětné šíření
- regulace
— zkreslení/variance
— křivky učení
— metriky chyb (přesnost, vyvolání, F1)
— Support Vector Machines (klasifikace s velkým rozpětím)
— K-znamená
—Analýza hlavních komponent
- detekce anomálií
— kolaborativní filtrování (systém doporučení)
— stochastické, minidávkové, dávkové gradientní sestupy
- online učení
- zmenšení mapy
- analýza stropu
Po absolvování kurzu bylo přítomno pochopení všech těchto témat. Po 2 letech bylo téměř vše přirozeně zapomenuto. Doporučuji těm, kteří se ve strojovém učení nevyznají a chtějí dobře porozumět základním věcem, aby se mohli posunout dál.

První běh

Bylo už září a bylo na čase přemýšlet o rozhovoru. Vzhledem k tomu, že podávání žádostí prostřednictvím webu je docela katastrofální, začal jsem hledat přátele, kteří pracují v Googlu. Volba padla datacompboy, protože byl jediný, koho jsem znal přímo (i když ne osobně). Souhlasil s předáním mého životopisu a brzy jsem dostal dopis od náborového pracovníka, který mi nabídl rezervaci místa v jeho kalendáři pro první rozhovor. O několik dní později se hovor uskutečnil. Zkoušeli jsme komunikovat přes Hangouts, ale kvalita byla hrozná, tak jsme přešli na telefon. Nejprve jsme rychle probrali standard jak, proč a proč, a pak přešli k technickému prověřování. Skládal se z tuctu otázek v duchu „jaká je obtížnost vkládání do hash mapy“, „jaké vyvážené stromy znáte“. Není to těžké, pokud máte základní znalosti o těchto věcech. Screening dopadl dobře a na základě výsledků se rozhodli uspořádat první pohovor za týden.

Rozhovor probíhal také přes Hangouts. Nejprve o mně mluvili asi 5 minut, pak přešli k problému. Problém byl v grafech. Rychle jsem si uvědomil, co je třeba udělat, ale zvolil jsem špatný algoritmus. Když jsem začal psát kód, uvědomil jsem si to a přešel na jinou možnost, kterou jsem dokončil. Tazatel položil několik otázek o složitosti algoritmu a zeptal se, zda by to šlo udělat rychleji. Nějak jsem otupěl a nemohl jsem to udělat. V tuto chvíli čas vypršel a my jsme se rozloučili. Pak, asi po 10 minutách, mi došlo, že místo Dijkstrova algoritmu, který jsem použil, bych v tomto konkrétním problému mohl použít prohledávání do šířky a bylo by to rychlejší. Po nějaké době zavolal náborář a řekl, že pohovor celkově proběhl dobře a že by měl být uspořádán další. Domluvili jsme se na další týden.

Tentokrát se věci zhoršily. Jestliže byl tazatel poprvé přátelský a společenský, tentokrát byl poněkud zasmušilý. Nedokázal jsem na problém hned přijít, i když nápady, se kterými jsem přišel, by v zásadě mohly vést k jeho řešení. Nakonec, po několika výzvách od tazatele, jsem přišel s řešením. Tentokrát se opět ukázalo, že jde o hledání do šířky, jen z několika bodů. Napsal jsem řešení, splnil je včas, ale zapomněl jsem na okrajové případy. Po nějaké době zavolal recruiter a řekl, že tentokrát je tazatel nešťastný, protože podle jeho názoru potřebuji příliš mnoho nápověd (3 nebo 4 kusy) a neustále jsem při psaní měnil kód. Na základě výsledků dvou rozhovorů bylo rozhodnuto nejít dále, ale odložit další rozhovor o rok, pokud si to budu přát. Proto jsme se rozloučili.

A z tohoto příběhu jsem udělal několik závěrů:

  • Teorie je dobrá, ale musíte se v ní rychle orientovat
  • Teorie bez praxe nepomůže. Musíme vyřešit problémy a přivést kódování k automatizaci.
  • Hodně záleží na tazateli. A nedá se s tím nic dělat.

Příprava na druhý běh

Po zvážení situace jsem se rozhodl, že to za rok zkusím znovu. A mírně upravil cíl. Jestliže dříve bylo hlavním cílem studium a pohovor v Googlu byl jako vzdálená mrkev, nyní bylo cílem absolvovat pohovor a studium bylo prostředkem.
Byl tedy vyvinut nový plán, který obsahoval následující body:

  • Pokračujte ve studiu teorie čtením knih a článků.
  • Řešit algoritmické úlohy v počtu 500-1000 dílků.
  • Pokračujte v učení teorie sledováním videí.
  • Pokračujte ve studiu teorie prostřednictvím kurzů.
  • Prostudujte si zkušenosti ostatních lidí s rozhovory v Googlu.

Plán jsem dokončil do roka. Dále popíšu, co přesně jsem pro každý z bodů udělal.

Knihy a články

Už si ani nepamatuji, kolik článků jsem přečetl, četl jsem je jak v ruštině, tak v angličtině. Asi nejužitečnější stránka toto. Zde můžete najít popis velkého množství zajímavých algoritmů s příklady kódu.

Přečetl jsem 5 knih: Algorithms, 4th edition (Sedgewick, Wayne), Introduction to Algorithms 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4th edition (Gayle Laakmann), Programming Interviews Exposed 2nd edition (Mongan, Suojanen , Giguere), Prvky programovacích rozhovorů (Aziz, Lee, Prakash). Lze je rozdělit do 2 kategorií. První obsahuje knihy od Sedgwicka a Cormana. To je teorie. Zbytek je příprava na pohovor. Sedgwick v knize vypráví o tom samém jako ve svých kurzech. Pouze písemně. Nemá moc cenu to číst pozorně, pokud jste kurz absolvovali, ale každopádně stojí za to si to prolistovat. Pokud jste kurz neviděli, má smysl si ho přečíst. Cormen mi připadal příliš nudný. Abych byl upřímný, měl jsem problém to zvládnout. Právě jsem to odtamtud vytáhl mistrovská teoriea několik málo používaných datových struktur (Fibonacciho halda, van Emde Boas strom, radix halda).

Stojí za to si přečíst alespoň jednu knihu a připravit se na pohovor. Všechny jsou postaveny na přibližně stejném principu. Popisují proces pohovoru ve velkých technologických firmách, uvádějí základní věci z informatiky, problémy pro tyto základní věci, řešení problémů a analýzu řešení. Ze tří výše uvedených bych asi jako hlavní doporučil Cracking the Coding Interview a zbytek je volitelný.

Algoritmické problémy

To byl asi nejzajímavější bod přípravy. Můžete si samozřejmě sednout a řešit problémy hloupě. Na to existuje mnoho různých stránek. Používal jsem hlavně tři: Hackerrank, CodeChef и LeetCode. Na CodeChef jsou problémy rozděleny podle obtížnosti, ale ne podle tématu. Na Hackerrank jak podle složitosti, tak podle tématu.

Jak jsem ale hned na vlastní kůži zjistil, existuje i zajímavější způsob. A to jsou soutěže (programátorské výzvy nebo programátorské soutěže). Všechny tři stránky je poskytují. Pravda, s LeetCode je problém – nepohodlné časové pásmo. Proto jsem se na tomto webu nezúčastnil. Hackerrank a CodeChef poskytují poměrně velké množství různých soutěží, které trvají od 1 hodiny do 10 dnů. Různé formáty mají různá pravidla, ale o tom bychom mohli mluvit dlouho. Hlavním bodem, proč jsou soutěže dobré, je zavedení soutěžního (a opět tautologického) prvku do procesu učení.

Celkem jsem se na Hackerranku zúčastnil 37 soutěží. Z toho bylo 32 hodnotících a 5 bylo buď sponzorovaných (v jednom z nich jsem dokonce dostal 25 dolarů) nebo pro zábavu. V žebříčku jsem byl 10x v top 4%, 11x v top 12% a 5x v top 25%. Nejlepší výsledky byly 27/1459 za 3 hodiny a 22/9721 za týden.

Přešel jsem na CodeChef, když Hackerrank začal pořádat soutěže méně často. Celkem se mi podařilo zúčastnit 5 soutěží. Nejlepší skóre bylo 426/5019 v desetidenní soutěži.

Celkem jsem na soutěžích a jen tak vyřešil něco málo přes 1000 úloh, které zapadaly do plánu. Nyní bohužel není volný čas na pokračování soutěžních aktivit, stejně jako neexistuje cíl, na který by se dal nevolno odepsat. Ale byla to zábava. Doporučuji, aby si zájemci o toto našli podobně smýšlející lidi. Společně nebo ve skupině je to mnohem zajímavější. Bavila jsem se tím s kamarádem, tak snad to dobře dopadlo.

Podívejte se na video

Po přečtení Skienovy knihy jsem se začal zajímat o to, co dělá. Stejně jako Sedgwick je univerzitním profesorem. V tomto ohledu lze videa z jeho kurzů nalézt online. Rozhodl jsem se zopakovat kurz COMP300E - Programovací výzvy - 2009 HKUST. Nemůžu říct, že by se mi to moc líbilo. Za prvé, kvalita videa není příliš dobrá. Za druhé, problémy probírané v kurzu jsem se nesnažil řešit sám. Angažovanost tedy nebyla příliš vysoká.
Při řešení problémů a hledání správného algoritmu jsem také narazil na video Tushara Roye. Pracoval v Amazonu a nyní pracuje v Applu. Jak jsem později sám zjistil, má kanál YouTube, kde zveřejňuje analýzu různých algoritmů. V době psaní tohoto článku kanál obsahuje 103 videí. A musím říct, že jeho analýza byla provedena velmi dobře. Zkoušel jsem sledovat jiné autory, ale nějak to nefungovalo. Takže tento kanál mohu rozhodně doporučit ke shlédnutí.

Absolvování kurzů

Nic zvláštního jsem tu nedělal. Zhlédli jsme video z vývojářského vývojářského programu Android společnosti Google Nanodegree a absolvovali kurz ITMO Jak vyhrát soutěže v kódování: Tajemství šampionů. Nanodegree je docela dobrý, i když jsem se z něj přirozeně nenaučil nic nového. Kurz od ITMO je trochu teoreticky zkreslený, ale problémy byly zajímavé. Nedoporučoval bych s tím začínat, ale v zásadě to byl dobře strávený čas.

Učte se ze zkušeností jiných lidí

Samozřejmě se spousta lidí snažila dostat do Googlu. Někteří se dostali dovnitř, někteří ne. Někteří o tom napsali články. Ze zajímavostí, které asi zmíním toto и toto. V prvním případě si člověk připravil seznam toho, co se musí naučit, aby se mohl stát softwarovým inženýrem a dostat se do Googlu. Nakonec to skončilo v Amazonu, ale to už není tak důležité. Druhý manuál napsala inženýrka Google Larisa Agarkova (Larrr). Kromě tohoto dokumentu můžete také číst její blog.

Má smysl číst recenze rozhovorů na Glassdoor. Všechny jsou si víceméně podobné, ale můžete získat užitečné informace.

Nebudu poskytovat odkazy na další malé články, můžete je snadno najít na Googlu.

Druhý běh

A nyní uplynul rok. Studiem se to ukázalo jako velmi intenzivní. K novému podzimu jsem ale přistoupil s mnohem hlubšími teoretickými znalostmi a rozvinutými praktickými dovednostmi. Do konce roku mi zbývalo ještě pár týdnů na přípravu, když mi najednou na poštu vyskočil dopis od recruitera z Google, ve kterém se mě ptal, jestli mám ještě chuť pracovat v Googlu a chtěl bych Vadí mi s ním mluvit. Přirozeně mi to nevadilo. Dohodli jsme se, že za týden zavoláme. Požádali mě také o aktualizovaný životopis, do kterého jsem přidal stručný popis toho, co jsem během roku v práci a obecně dělal.

Po celoživotní komunikaci jsme se rozhodli, že za týden bude rozhovor na Hangoutu, stejně jako loni. Uběhl týden, byl čas na rozhovor, ale tazatel se nedostavil. Uběhlo 10 minut, už jsem začínal být nervózní, když najednou někdo vtrhl do chatu. Jak se ukázalo o něco později, můj tazatel se z nějakého důvodu nemohl dostavit a byla za něj urychleně nalezena náhrada. Osoba byla poněkud nepřipravená jak z hlediska nastavení počítače, tak z hlediska vedení rozhovoru. Ale pak už šlo všechno dobře. Problém jsem rychle vyřešil, popsal, kde jsou možná úskalí a jak je lze obejít. Diskutovali jsme o několika různých verzích problému a složitosti algoritmu. Pak jsme si ještě 5 minut povídali, inženýr nám řekl své dojmy z práce v Mnichově (v Curychu prý nenašli urgentní náhradu) a pak jsme se rozešli.

Tentýž den mě kontaktoval personalista s tím, že pohovor dopadl dobře a jsou připraveni mě pozvat na pohovor do kanceláře. Další den jsme si zavolali přes Hangouts a probrali detaily. Vzhledem k tomu, že jsem potřeboval zažádat o vízum, rozhodli jsme se naplánovat pohovor za měsíc.

Zatímco jsem připravoval podklady, současně jsem probíral nadcházející pohovor s personalistou. Standardní pohovor ve společnosti Google se skládá ze 4 algoritmických pohovorů a jednoho pohovoru o návrhu systému. Ale protože jsem se ucházel o práci jako vývojář pro Android, bylo mi řečeno, že část pohovoru bude specifická pro Android. Nemohl jsem z náborového pracovníka setřást, co a jaká přesně bude. Pokud tomu dobře rozumím, bylo to zavedeno relativně nedávno a on sám si to moc neuvědomoval. Byl jsem také přihlášen na dvě školení: jak projít algoritmickým pohovorem a jak projít pohovorem System Design. Sezení byla průměrně užitečná. Tam mi taky nikdo nedokázal říct, na co se ptají vývojářů Androidu. Moje příprava na tento měsíc se proto scvrkla na následující:

  • Koupit desku se značkami a z paměti na ni zapsat 2-3 tucty nejoblíbenějších algoritmů. 3-5 kusů každý den. Celkem byla každá napsána vícekrát.
  • Osvěžte si paměť na různé informace v systému Android, které nepoužíváte každý den
  • Sledování několika videí o Big Scale a podobných věcech

Jak jsem již řekl, zároveň jsem si připravoval podklady na cestu. Nejprve mě požádali o informace, abychom mohli vytvořit zvací dopis. Pak jsem se dlouho snažil zjistit, kdo na Kypru vydává víza do Švýcarska, protože švýcarská ambasáda to neřeší. Jak se ukázalo, rakouský konzulát to dělá. Zavolal jsem a domluvil si schůzku. Požádali o hromadu dokumentů, ale nic zvlášť zajímavého. Fotka, pas, povolení k pobytu, hromada různých certifikátů a samozřejmě zvací dopis. Dopis mezitím nedorazil. Nakonec jsem šel s běžným výtiskem a docela to fungovalo. Samotný dopis dorazil o 3 dny později a kyperský FedEx nemohl najít moji adresu a musel jsem si pro ni jít sám. Zároveň mi od stejného FedExu přišel balík, který mi také nemohli doručit, jelikož nenašli adresu a který tam ležel od června (5 měsíců, Karle). Protože jsem o tom nevěděl, přirozeně jsem nepředpokládal, že to mají. Vízum jsem dostal včas, poté mi zarezervovali hotel a nabídli mi možnosti letu. Upravil jsem možnosti, aby to bylo pohodlnější. Přímé lety už nebyly, takže jsem tam nakonec letěl přes Atény a zpět přes Vídeň.

Po vyřízení všech formalit s cestou uběhlo ještě pár dní a já do Curychu skutečně odletěl. Dostal se tam bez incidentu. Z letiště do města jsem jel vlakem - rychle a pohodlně. Po malém bloudění po městě jsem našel hotel a ubytoval se. Vzhledem k tomu, že hotel byl zamluvený bez jídla, povečeřel jsem vedle a šel spát, protože let byl ráno a už se mi chtělo spát. Druhý den jsem se nasnídal v hotelu (za peníze navíc) a šel do kanceláře Google. Google má několik kanceláří v Curychu. Můj rozhovor nebyl na ústředním. A vůbec, kancelář vypadala docela obyčejně, takže jsem neměl možnost prohlédnout si všechny vychytávky „normální“ kanceláře Google. Zaregistroval jsem se u správce a posadil se a čekal. Po nějaké době vyšel náborář a řekl mi plán dne, načež mě vzal do místnosti, kde se měly konat pohovory. Ve skutečnosti plán zahrnoval 3 rozhovory, oběd a 2 další rozhovory.

Rozhovor číslo jedna

První rozhovor byl právě na Androidu. A nemělo to vůbec nic společného s algoritmy. Ale překvapení. Dobře, takhle je to ještě častější. Byli jsme požádáni, abychom vytvořili určitou komponentu uživatelského rozhraní. Nejprve jsme probrali co a jak. Nabídl, že udělá řešení pomocí RxJava, popsal, co přesně udělá a proč. Řekli, že je to určitě dobré, ale udělejme to pomocí rámce Android. A zároveň napíšeme kód na tabuli. A nejen komponentu, ale celou Aktivitu, která tuto komponentu používá. Na tohle jsem nebyl připravený. Jedna věc je napsat na tabuli 30-50řádkový algoritmus a druhá věc je napsat nudle kódu Androidu, dokonce i se zkratkami a komentáři v duchu „no, to nebudu psát, protože už je to zřejmé“. Výsledkem byl jakýsi vinaigrett pro 3 desky. Tito. Problém jsem vyřešil, ale vypadalo to blbě.

Rozhovor číslo dvě

Tentokrát byl rozhovor o algoritmech. A byli tam dva tazatelé. Jeden je skutečný tazatel a druhý je mladý padawan (stínový tazatel). Bylo potřeba vymyslet datovou strukturu s určitými vlastnostmi. Nejprve jsme problém probrali jako obvykle. Ptal jsem se na různé otázky, odpovídal tazatel. Po nějaké době byli požádáni, aby na tabuli napsali několik metod vynalezené struktury. Tentokrát se mi to víceméně povedlo, i když s pár drobnými chybami, které jsem na výzvu tazatele opravil.

Rozhovor číslo tři

Tentokrát System Design, ze kterého se rázem také vyklubal Android. Bylo nutné vyvinout aplikaci s určitou funkčností. Probrali jsme požadavky na aplikaci, server a komunikační protokol. Dále jsem začal popisovat, jaké komponenty nebo knihovny použiji při sestavování aplikace. A pak, když se zmínil Job Scheduler, nastal zmatek. Jde o to, že jsem ho nikdy v praxi nepoužil, jelikož jsem v době jeho vydání právě přecházel na podpůrné aplikace, kde nebyly žádné úkoly pro jeho použití. Totéž se stalo při vývoji následujících. Tzn., že teoreticky vím, co je to za věc, kdy a jak se používá, ale nemám s jejím používáním žádné zkušenosti. A tazateli se to podle všeho moc nelíbilo. Pak mě požádali, abych napsal nějaký kód. Ano, při vývoji aplikace musíte okamžitě napsat kód. Opět kód Androidu na desce. Opět to dopadlo děsivě.

Oběd

Měl přijít další člověk, ale nepřišel. A Google dělá chyby. V důsledku toho jsem šel na oběd s předchozí tazatelkou, její kolegyní, a o něco později se přidal další tazatel. Oběd byl docela slušný. Opět, protože to není hlavní kancelář v Curychu, vypadala jídelna docela obyčejně, i když velmi pěkně.

Rozhovor číslo čtyři

Konečně algoritmy v jejich nejčistší podobě. První problém jsem vyřešil poměrně rychle a okamžitě efektivně, i když jsem vynechal jeden okrajový případ, ale na výzvu tazatele (dal tento velmi okrajový případ) jsem problém našel a opravil. Kód jsem samozřejmě musel napsat na tabuli. Pak dostal podobný úkol, ale obtížnější. Našel jsem pro to pár neoptimálních řešení a téměř našel to optimální, 5-10 minut na dokončení myšlenky nestačilo. No, neměl jsem čas napsat kód.

Rozhovor číslo pět

A opět rozhovor pro Android. Zajímalo by mě, proč jsem celý rok studoval algoritmy?
Nejprve bylo několik jednoduchých otázek. Poté tazatel napsal kód na tabuli a požádal, aby v něm našel problémy. Našel, vysvětlil, opravil. Diskutováno. A pak začaly některé nečekané otázky v duchu „co dělá metoda Y ve třídě X“, „co je uvnitř metody Y“, „co dělá třída Z“. Samozřejmě jsem na něco odpověděl, ale pak jsem řekl, že jsem se s tím v poslední době ve své práci nesetkal a samozřejmě si nepamatuji, kdo co a jak podrobně dělá. Poté se tazatel zeptal, co teď dělám. A otázky směřovaly na toto téma. Tady už jsem odpověděl mnohem lépe.

Po skončení posledního pohovoru mi vzali propustku, popřáli hodně štěstí a poslali mě dál. Trochu jsem se prošel po městě, navečeřel se a šel do hotelu, kde jsem šel spát, protože let byl opět brzy ráno. Druhý den jsem v pořádku dorazil na Kypr. Na žádost personalisty jsem napsal zpětnou vazbu na pohovor a vyplnil formulář ve speciální službě, abych vrátil vynaložené peníze. Ze všech výdajů Google přímo platí pouze letenky. Hotel, stravu a cestu hradí uchazeč. Poté vyplníme formulář, přiložíme účtenky a odešleme na speciální úřad. Tu zpracují a poměrně rychle převedou peníze na účet.

Zpracování výsledků rozhovoru trvalo týden a půl. Poté jsem byl informován, že jsem „trochu pod barem“. To znamená, že jsem se trochu zdržel. Přesněji řečeno, 2 rozhovory dopadly dobře, 2 trochu ne tak dobře a System Design ne příliš dobře. Teď, kdyby alespoň 3 dopadly dobře, pak bychom byli schopni soutěžit, jinak není šance. Nabídli, že se vrátí za další rok.

Zpočátku jsem byl samozřejmě naštvaný, protože na přípravu bylo vynaloženo hodně úsilí a v době rozhovoru jsem už uvažoval o odchodu z Kypru. Připojit se ke Googlu a přestěhovat se do Švýcarska se zdálo jako skvělá volba.

Závěr

A tady se dostáváme k závěrečné části článku. Ano, dvakrát jsem neuspěl u pohovoru na Googlu. Je to smutné. Asi by bylo zajímavé tam pracovat. Na věc se ale můžete podívat i z druhé strany.

  • Za rok a půl jsem se naučil obrovské množství věcí souvisejících s vývojem softwaru.
  • Účast v programátorských soutěžích mě hodně bavila.
  • Odjel jsem na pár dní do Curychu. Kdy tam zase půjdu?
  • Měl jsem zajímavou zkušenost s pohovorem v jedné z největších IT společností na světě.

Takže vše, co se za těch jeden a půl roku stalo, lze jednoduše považovat za trénink, nebo trénink. A výsledky tohoto školení byly znát. Můj nápad opustit Kypr uzrál (kvůli nějakým rodinným okolnostem), úspěšně jsem absolvoval několik pohovorů s jinou známou společností a po 8 měsících se přestěhoval. Ale to je úplně jiný příběh. Nicméně si myslím, že bych měl Googlu ještě poděkovat jak za rok a půl, co jsem na sobě pracoval, tak za 2 zajímavé dny v Curychu.

Co mohu říci na závěr? Pokud pracujete v IT, připravte se na pohovory v Googlu (Amazon, Microsoft, Apple atd.). Možná tam někdy půjdete, abyste se tam dostali. I kdybyste nechtěli, věřte, že taková příprava vás nijak nezhorší. Ve chvíli, kdy si uvědomíte, že můžete (i když jen s trochou štěstí) získat pohovor u jedné z těchto společností, otevře se vám mnohem více cest než před zahájením přípravy. A vše, co na cestě potřebujete, je účel, vytrvalost a čas. Přeji ti úspěch :)

Zdroj: www.habr.com

Přidat komentář