Google – přijímací pohovor
Ozvali se mi na lovci hlav z Google. Docela překvapení, měl jsem totiž za to, že nabírají jen doktory z MIT a podobné šarže. Napsali přes LinkedIn, zda mi můžou představit pozice v Googlu. Řekl jsem si, proč ne, přestože jsem četl strip Odvrácená strana G. Následoval krátký pokec po telefonu. V České republice žádný jejich vývojářský tým není, museli byste vycestovat po EMEA regionu (Paříž, Mnichov, Zurich, Haifa…). Po měsíční pauze další krátký telefonát s někým z HR. Mimo jiné se ptali, zda znám někoho, kdo u nich pracuje. Opět měsíc pauza (je to s nimi očividně na dlouhé lokte) až se konečně dostalo na část s technickými otázkami, které vás asi zajímají nejvíc.
V rámci přípravy jsem dostal za úkol projít si úlohy z Projektu Euler. Samotná technická část pohovoru probíhala rovněž po telefonu, pochopitelně v angličtině. Celé to trvalo asi hodinu. V úvodních dvaceti minutách jsem vysvětloval datové struktury, konkrétně hash mapy a binární stromy, prostě akademická klasika.
V následující půlhodince jsem programoval na papír, respektive do google docs, v programovacím jazyce, který jsem si předem vybral. Java očividně nebyla nejlepší volbou. Zadání bylo totiž následující: Je dána černobílá 2D obrazovka, každý pixel je reprezentován jedním bitem. Ovšem všechny pixely jsou obsaženy v jednorozměrném poli bajtů. Šíře obrazovky nicméně nemusí vycházet na celé bajty. Úkolem je nakreslit horizontální čáru, přičemž na vstupu dostanete počáteční i koncové [x,y] souřadnice. Jako bonus jsem měl vyjmenovat, jaké bych napsal testy.
V závěrečných deseti minutách jsem měl prostor klást zvídavé otázky já.
A co vy, chtěli byste pracovat v Googlu? Nebo už tam dokonce pracujete?
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
— Max Howell (@mxcl) June 10, 2015