Hur man förbereder sig för en intervju på Google och misslyckas med den. Dubbelt

Hur man förbereder sig för en intervju på Google och misslyckas med den. Dubbelt

Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.

Hur det hela började

En kall cypriotisk vinterkväll slog jag plötsligt upp tanken att mina kunskaper i klassisk datavetenskap var mycket långt ifrån ens genomsnittliga, och något behövde göras åt det. Om någon förresten inte har läst varför kvällen är cypriotisk och kall, då kan du ta reda på det här. Efter lite funderande beslutades det att börja med att gå en onlinekurs om algoritmer och datastrukturer. Från en av mina tidigare kollegor hörde jag om Robert Sedgewicks kurs på Coursera. Kursen består av två delar (Del 1 и Del 2). Om länkarna plötsligt ändras kan du alltid Googla på författarens namn. Varje del varar i 6 veckor. Föreläsningar ges i början av veckan och under veckan behöver du fortfarande göra övningar. Den första delen av kursen behandlar grundläggande datastrukturer, grundläggande sorteringstyper och komplexiteten i algoritmer. Den andra delen är redan mer avancerad, börjar med grafer och slutar med sådant som linjär programmering och intraktabilitet. Efter att ha tänkt på allt ovanstående kom jag fram till att det är precis vad jag behöver. Förresten kan en nyfiken läsare fråga sig, vad har Google med det att göra? Och sannerligen, fram till detta ögonblick hade han ingenting med det att göra alls. Men jag behövde ett mål, eftersom det är lite svårt att plugga 12 veckor på kvällarna utan mål. Vad kan syftet vara med att skaffa ny kunskap? Naturligtvis deras tillämpning i praktiken. I vardagen är detta ganska problematiskt, men under en intervju med ett stort företag är det lätt. En snabb Google visade att Google (förlåt tautologin) är ett av de största företagen i Europa (och jag tittade specifikt på Europa) som gör sådana intervjuer. Deras kontor ligger nämligen i Zürich, Schweiz. Så det är bestämt - låt oss studera och gå på en intervju på Google.

Förbereder för det första tillvägagångssättet

De 12 veckorna gick snabbt och jag klarade båda kurserna. Mina intryck av kurserna är mer än positiva och jag kan rekommendera dem till alla intresserade. Jag gillade kurserna av följande anledningar:

  • Лектор говорит на достаточно четком английском
  • Materialet är välstrukturerat
  • Underbara presentationer som visar insidan av varje algoritm
  • Грамотная подборка материала
  • Intressanta övningar
  • Övningar kontrolleras automatiskt på sajten, varefter en rapport genereras

Mitt arbete på kurser gick oftast så här. Jag lyssnade på föreläsningar på 1-2 dagar. Sedan gjorde de ett snabbt test av sina kunskaper om materialet. Resten av veckan gjorde jag övningen i flera iterationer. Efter den första fick jag mina 30-70%, de efterföljande gav resultatet till 97-100%. Övningen gick oftast ut på att implementera någon algoritm, t.ex. Sömsnideri eller bzip.

Efter att ha genomfört kurserna insåg jag att mycket kunskap kommer med mycket sorg. Om jag innan bara visste att jag inte visste någonting, började jag nu inse att det var jag som inte visste.

Eftersom det bara var maj månad, och jag planerade intervjun till hösten, bestämde jag mig för att fortsätta min utbildning. Efter att ha granskat kraven för den lediga tjänsten beslutades att gå åt två håll parallellt: fortsätta studera algoritmer och gå en grundkurs i maskininlärning. För det första målet bestämde jag mig för att byta från kurser till en bok och valde Steven Skienas monumentala verk "Algorithms. The Algoritm Design Manual. Inte lika monumental som Knuts, men ändå. För det andra målet gick jag tillbaka till Coursera och anmälde mig till Andrew Ngs kurs. Maskininlärning.

Ytterligare 3 månader gick och jag avslutade kursen och boken.

Начнем с книги. Чтение оказалось достаточно интересное, хотя и непростое. В принципе, я бы книгу рекомендовал, но не вот так сразу. В общем и целом, книга дает более глубокий разбор того, что я узнал на курсах. Плюс к этому я открыл для себя (с формальной точки зрения) такие вещи как эвристики и динамическое программирование. Естественно, раньше мне доводилось их использовать, но как они называются я не знал. Так же в книге присутствует некоторое количество баек из жизни автора (War Story), которые несколько разбавляют академичность изложения. Вторую половину книги можно кстати опустить, там идет скорее описание существующих проблем и методов их решения. Полезно, если регулярно применяется на практике, иначе забудется сразу же.

Jag var mer än nöjd med kursen. Författaren kan helt klart sin sak och pratar på ett intressant sätt. Plus en hel del av det, nämligen linjär algebra och grunderna i neurala nätverk, kom jag ihåg från universitetet, så jag upplevde inga speciella svårigheter. Kursens struktur är ganska standard. Kursen är uppdelad i veckor. Varje vecka är det föreläsningar blandat med korta prov. Efter föreläsningarna får du en uppgift som du ska göra, lämna in och den kontrolleras automatiskt. Kortfattat är listan över saker som lärs ut i kursen följande:
- Kostnadsfunktion
— linear regression
- lutning nedstigning
- funktionsskalning
— normal equation
- logistisk tillbakagång
— flerklassklassificering (en mot alla)
- neurala nätverk
- tillbakaförökning
- regularisering
— partiskhet/varians
— inlärningskurvor
— felmätningar (precision, återkallelse, F1)
— Stöd för vektormaskiner (klassificering med stor marginal)
— K-betyder
— Huvudkomponentanalys
— anomaly detection
— collaborative filtering (recommeder system)
— stokastiska, minibatch, batchgradientnedgångar
— lärande online
- minska kartan
- takanalys
Efter avslutad kurs fanns en förståelse för alla dessa ämnen. Efter 2 år var nästan allt naturligt glömt. Jag rekommenderar det till dem som inte är bekanta med maskininlärning och vill få en god förståelse för grundläggande saker att gå vidare med.

Первый заход

На дворе был уже сентябрь и пришло время задуматься о собеседовании. Так как подаваться через сайт дело достаточно гиблое, занялся поиском знакомых, работающих в Google. Выбор пал на datacompboy, eftersom han var den enda jag kände direkt (även om inte personligen). Han gick med på att vidarebefordra mitt CV och snart fick jag ett brev från rekryteraren som erbjöd mig att reservera en plats i hans kalender för det första samtalet.Ett par dagar senare ägde samtalet rum. Vi försökte kommunicera via Hangouts, men kvaliteten var fruktansvärd, så vi bytte till telefonen. Först diskuterade vi snabbt standarden hur, varför och varför, och gick sedan vidare till teknisk screening. Den bestod av ett dussin frågor i andan av "vad är svårigheten att infoga i en hashkarta", "vilka balanserade träd känner du till." Det är inte svårt om man har grundläggande kunskaper om dessa saker. Screeningen gick bra och utifrån resultaten bestämde de sig för att organisera den första intervjun om en vecka.

Intervjun ägde också rum via Hangouts. Först pratade de om mig i cirka 5 minuter och gick sedan vidare till problemet. Problemet låg på graferna. Jag insåg snabbt vad som behövde göras, men jag valde fel algoritm. När jag började skriva kod insåg jag detta och bytte till ett annat alternativ, vilket jag slutförde. Intervjuaren ställde flera frågor om algoritmens komplexitet och frågade om det kunde göras snabbare. Jag blev på något sätt matt och kunde inte göra det. Vid det här laget var tiden ute och vi sa hejdå. Sedan, efter cirka 10 minuter, gick det upp för mig att istället för Dijkstra-algoritmen som jag använde, i just det här problemet kunde jag använda bredd-först-sökning, och det skulle vara snabbare. Efter en tid ringde rekryteraren och sa att intervjun överlag gick bra och att ytterligare en borde ordnas. Vi kom överens om ytterligare en vecka.

Den här gången blev det värre. Om intervjuaren första gången var vänlig och sällskaplig, var han den här gången något dyster. Jag kunde inte ta reda på problemet direkt, även om de idéer jag kom med i princip kunde leda till lösningen. Till slut, efter flera uppmaningar från intervjuaren, kom lösningen till mig. Den här gången visade det sig vara en breddförsta sökning igen, bara från flera håll. Jag skrev lösningarna, träffade dem i tid, men glömde kantfallen. Efter en tid ringde rekryteraren och sa att den här gången var intervjuaren missnöjd, eftersom jag enligt hans åsikt behövde för många tips (3 eller 4 stycken) och jag ändrade hela tiden koden medan jag skrev. Baserat på resultatet av två intervjuer beslutades det att inte gå vidare, utan att skjuta upp nästa intervju ett år om jag så önskade. Det var därför vi sa hejdå.

Och från den här historien drog jag flera slutsatser:

  • Теория это хорошо, но в ней надо быстро ориентироваться
  • Teori utan praktik hjälper inte. Vi måste lösa problem och föra kodning till automatik.
  • Многое зависит от интервьюера. И с этим ничего не сделать.

Förbereder för andra åket

Обдумав ситуацию, я принял решение попробовать через год еще раз. И слегка подредактировал цель. Если раньше основной целью была учеба, а интервью в Google как далекая морковка, то теперь прохождение интервью было целью, а учеба средством.
Så en ny plan utvecklades, som innehöll följande punkter:

  • Fortsätt att studera teori genom att läsa böcker och artiklar.
  • Lös algoritmiska problem i mängden 500-1000 stycken.
  • Fortsätt lära dig teorin genom att titta på videor.
  • Fortsätt att studera teori genom kurser.
  • Изучить опыт других людей по прохождению собеседований в Google.

Jag slutförde planen inom ett år. Därefter kommer jag att beskriva exakt vad jag gjorde för var och en av punkterna.

Böcker och artiklar

Количество прочитанный статей я уже даже и не вспомню, читал их как на русском, так и на английском. Самым полезным сайтом оказался наверное den här. Тут собрано описание большого количества интересных алгоритмов с примерами кода.

Jag läste 5 böcker: 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), delar av programmeringsintervjuer (Aziz, Lee, Prakash). De kan delas in i 2 kategorier. Den första innehåller böcker av Sedgwick och Corman. Detta är en teori. Resten är förberedelser inför intervjun. Sedgwick berättar om samma sak i boken som på sina kurser. Bara skriftligt. Det är ingen mening med att läsa den noggrant om du har gått kursen, men det är värt att skumma ändå. Om du inte har sett kursen är det vettigt att läsa den. Cormen verkade för tråkig för mig. För att vara ärlig så hade jag svårt att bemästra det. Jag tog det bara därifrån mästarteori, och flera sällan använda datastrukturer (Fibonacci heap, van Emde Boas tree, radix heap).

Det är värt att läsa minst en bok för att förbereda sig för en intervju. De är alla byggda på ungefär samma princip. De beskriver intervjuprocessen i stora teknikföretag, ger grundläggande saker från Datavetenskap, problem för dessa grundläggande saker, lösningar på problem och analys av lösningar. Av de tre ovan skulle jag nog rekommendera Cracking the Coding Interview som den huvudsakliga, och resten är valfria.

Алгоритмические задачи

Это наверное был самый интересный пункт подготовки. Можно, конечно, сесть и тупо решать задачи. Для этого есть много разных сайтов. Я в основном использовал три: Hackerrank, CodeChef и LeetCode. På CodeChef är problemen uppdelade efter svårighetsgrad, men inte efter ämne. På Hackerrank både efter komplexitet och efter ämne.

Men som jag direkt fick reda på själv, det finns ett mer intressant sätt. Och det här är tävlingar (programmeringsutmaningar eller programmeringstävlingar). Alla tre webbplatserna tillhandahåller dem. Det är sant att det finns ett problem med LeetCode - en obekväm tidszon. Det var därför jag inte deltog på den här sidan. Hackerrank och CodeChef tillhandahåller ett ganska stort antal olika tävlingar, som varar från 1 timme till 10 dagar. Olika format har olika regler, men det skulle vi kunna prata om länge. Huvudpoängen varför tävlingar är bra är införandet av ett konkurrenskraftigt (och återigen tautologi) element i inlärningsprocessen.

Totalt deltog jag i 37 tävlingar på Hackerrank. Av dessa var 32 betygsatta, och 5 var antingen sponsrade (jag fick till och med $25 i en av dem) eller för skojs skull. I rankingen var jag i topp 10% 4 gånger, i topp 11% 12 gånger och i topp 5% 25 gånger. De bästa resultaten var 27/1459 på 3 timmar och 22/9721 på veckan.

На CodeChef я перешел, когда на Hackerrank соревнования стали устраивать реже. Всего я успел поучаствовать в 5 соревнованиях. Лучшим результатом было 426/5019 в десятидневном соревновании.

Totalt på tävlingar och bara så löste jag lite mer än 1000 problem, som passade in i planen. Nu finns det tyvärr ingen ledig tid för att fortsätta tävlingsverksamheten, precis som det inte finns något mål som den ofria tiden kan skrivas av för. Men det var kul. Jag rekommenderar att de som är intresserade av detta hittar likasinnade. Tillsammans eller i grupp är det mycket mer intressant. Jag hade kul med det här med en kompis, så det kanske gick bra.

Se video

Efter att ha läst Skienas bok blev jag intresserad av vad han gjorde. Liksom Sedgwick är han universitetsprofessor. I detta avseende kan videor av hans kurser hittas online. Jag bestämde mig för att se över kursen COMP300E - Programmeringsutmaningar - 2009 HKUST. Jag kan inte säga att jag gillade det särskilt mycket. Först och främst är videokvaliteten inte särskilt bra. För det andra försökte jag inte själv lösa de problem som diskuterades i kursen. Så engagemanget var inte särskilt högt.
När jag löste problem och försökte hitta rätt algoritm, stötte jag också på Tushar Roys video. Han arbetade på Amazon och arbetar nu på Apple. Som jag senare fick reda på själv så har han gjort det Youtube-kanal, där han lägger upp en analys av olika algoritmer. I skrivande stund innehåller kanalen 103 videos. Och jag måste säga att hans analys gjordes mycket bra. Jag försökte titta på andra författare, men på något sätt fungerade det inte. Så jag kan definitivt rekommendera denna kanal för visning.

Går kurser

Jag gjorde inget speciellt här. Tittade på en video från Googles Android-utvecklare Nanodegree och tog en kurs från ITMO Hur man vinner kodningstävlingar: Secrets of Champions. Nanodegree вполне себе, хотя ничего нового оттуда я естественно не узнал. Курс от ИТМО в плане теории немного скомканный, но задачки были интересные. Я бы не рекомендовал с него начинать, но в принципе время на него было потрачено не зря.

Lär dig av andras erfarenheter

Naturligtvis försökte många komma in på Google. Vissa fick det, andra inte. Några har skrivit artiklar om detta. Av de intressanta sakerna kommer jag förmodligen att nämna den här и den här. I det första fallet förberedde personen för sig själv en lista över vad han behöver lära sig för att bli en mjukvaruingenjör och komma in på Google. Det hamnade så småningom i Amazon, men det är inte så viktigt längre. Den andra handboken skrevs av Googles ingenjör, Larisa Agarkova (Larrr). Utöver detta dokument kan du också läsa hennes blogg.

Det är vettigt att läsa recensioner av intervjuer på Glassdoor. De är alla mer eller mindre lika, men du kan få lite användbar information.

Jag kommer inte att ge länkar till andra små artiklar, du kan enkelt hitta dem på Google.

Andra körningen

Och nu har ett år gått. Det visade sig vara väldigt intensivt studiemässigt. Men jag närmade mig den nya hösten med mycket djupare teoretiska kunskaper och utvecklade praktiska färdigheter. Det var fortfarande några veckor kvar till slutet av det år som jag tilldelats för förberedelse, när plötsligt ett brev från en rekryterare från Google kom in på posten, där han frågade mig om jag fortfarande hade en lust att arbeta på Google och skulle Jag har något emot att prata med honom. Naturligtvis hade jag inget emot det. Vi kom överens om att ringa om en vecka. De bad mig också om ett uppdaterat CV, där jag lagt till en kort beskrivning av vad jag gjort under året på jobbet och i övrigt.

Efter att ha kommunicerat för livet bestämde vi oss för att om en vecka skulle det bli en Hangout-intervju, precis som förra året. En vecka gick, det var dags för intervju, men intervjuaren dök inte upp. 10 minuter gick, jag började redan bli nervös, när plötsligt någon brast in i chatten. Som det visade sig lite senare kunde min intervjuare av någon anledning inte dyka upp och en ersättare hittades akut till honom. Personen var något oförberedd både när det gäller att sätta upp datorn och när det gäller att genomföra intervjun. Men sedan gick allt bra. Jag löste problemet snabbt, beskrev var fallgropar var möjliga och hur de kunde kringgås. Vi diskuterade flera olika versioner av problemet och komplexiteten i algoritmen. Sedan pratade vi i ytterligare 5 minuter, ingenjören berättade om sina intryck av att arbeta i München (de hittade tydligen ingen akut ersättare i Zürich), och sedan skildes vi åt.

Samma dag kontaktade en rekryterare mig och sa att intervjun gick bra och att de var redo att bjuda in mig till en intervju på kontoret. Dagen efter ringde vi via Hangouts och diskuterade detaljerna. Eftersom jag behövde ansöka om visum bestämde vi oss för att boka in en intervju om en månad.

Medan jag förberedde dokumenten diskuterade jag samtidigt den kommande intervjun med rekryteraren. En standardintervju hos Google består av 4 algoritmiska intervjuer och en System Design-intervju. Men eftersom jag sökte jobb som Android-utvecklare fick jag veta att en del av intervjun skulle vara Android-specifik. Jag kunde inte skaka det ur rekryteraren exakt vad och vad detaljerna skulle vara. Såvitt jag förstår infördes detta relativt nyligen och han var själv inte särskilt medveten. Jag var också anmäld till två utbildningstillfällen: hur man klarar en algoritmisk intervju och hur man klarar en System Design-intervju. Sessionerna var av genomsnittlig användbarhet. Inte heller där kunde ingen berätta för mig vad de frågar Android-utvecklare om. Därför kokade min förberedelse för den här månaden ner till följande:

  • Покупке маркерной доски и написании 2-3 десятков самых популярных алгоритмов на ней по памяти. По 3-5 штук каждый день. Итого каждый был написан несколько раз.
  • Uppdatera ditt minne av olika information på Android som du inte använder varje dag
  • Tittar på några filmer om Big Scale och sånt

Som jag redan sa förberedde jag samtidigt dokument för resan. Till att börja med bad de mig om information för att göra ett inbjudningsbrev. Sedan försökte jag länge ta reda på vem på Cypern som utfärdar visum till Schweiz, eftersom den schweiziska ambassaden inte hanterar detta. Det visade sig att det österrikiska konsulatet gör detta. Jag ringde och bokade en tid. De bad om ett gäng dokument, men inget särskilt intressant. Foto, pass, uppehållstillstånd, ett gäng olika intyg och såklart ett inbjudningsbrev. Under tiden kom inte brevet. Till slut gick jag med en vanlig utskrift och det fungerade ganska bra. Själva brevet kom tre dagar senare och Cyperns FedEx kunde inte hitta min adress och jag var tvungen att hämta den själv. Samtidigt fick jag ett paket från samma FedEx, som de inte heller kunde leverera till mig, eftersom de inte hittade adressen, och som hade legat där sedan juni (3 månader, Karl). Eftersom jag inte visste om det, antog jag naturligtvis inte att de hade det. Jag fick mitt visum i tid, varefter de bokade ett hotell och erbjöd mig flygalternativ. Jag har justerat alternativen för att göra det bekvämare. Det fanns inga direktflyg längre, så det slutade med att jag flög dit via Aten och tillbaka via Wien.

Efter att alla formaliteter med resan var avklarade gick det några dagar till och jag flög faktiskt till Zürich. Kom dit utan incidenter. Från flygplatsen till staden tog jag tåget - snabbt och smidigt. Efter att ha strövat runt lite i staden hittade jag ett hotell och checkade in. Eftersom hotellet var bokat utan mat åt jag middag bredvid och gick och la mig, eftersom flyget var på morgonen och jag ville redan sova. Nästa dag åt jag frukost på hotellet (för extra pengar) och gick till Googles kontor. Google har flera kontor i Zürich. Min intervju var inte den centrala. Och i allmänhet såg kontoret ganska vanligt ut, så jag hade inte en chans att titta på alla godsakerna på ett "vanligt" Google-kontor. Jag registrerade mig hos administratören och satte mig för att vänta. Efter en tid kom rekryteraren ut och berättade planen för dagen, varefter han tog mig till rummet där intervjuerna skulle äga rum. Egentligen innehöll planen 3 intervjuer, lunch och ytterligare 2 intervjuer.

Intervju nummer ett

Den första intervjun var bara på Android. Och det hade ingenting med algoritmer att göra. Överraskning, dock. Okej, det är ännu vanligare på det här sättet. Vi ombads göra en viss UI-komponent. Först diskuterade vi vad och hur. Han erbjöd sig att göra en lösning med RxJava, beskrev exakt vad han skulle göra och varför. De sa att det här verkligen är bra, men låt oss göra det med Android-ramverket. Och samtidigt kommer vi att skriva koden på tavlan. Och inte bara en komponent, utan hela aktiviteten som använder den här komponenten. Det här var jag inte redo för. Det är en sak att skriva en algoritm på 30-50 rader på tavlan, och en annan sak att skriva nudlar med Android-kod, även med förkortningar och kommentarer i andan av "ja, jag kommer inte att skriva det, eftersom det redan är uppenbart." Resultatet blev någon slags vinägrett för 3 brädor. De där. Jag löste problemet, men det såg dumt ut.

Intervju nummer två

Den här gången handlade intervjun om algoritmer. Och det var två intervjuare. Den ena är den faktiska intervjuaren och den andra är en ung padawan (skuggintervjuare). Det var nödvändigt att ta fram en datastruktur med vissa egenskaper. Först diskuterade vi problemet som vanligt. Jag ställde olika frågor, svarade intervjuaren. Efter en tid ombads de att skriva flera metoder för den uppfunna strukturen på tavlan. Den här gången lyckades jag mer eller mindre, om än med några mindre fel, som jag korrigerade på intervjuarens uppmaning.

Интервью номер три

Denna gång System Design, som plötsligt också visade sig vara Android. Det var nödvändigt att utveckla en applikation med viss funktionalitet. Vi diskuterade kraven för applikationen, servern och kommunikationsprotokollet. Därefter började jag beskriva vilka komponenter eller bibliotek jag skulle använda när jag byggde applikationen. Och sedan, när jag nämnde Job Scheduler, uppstod en viss förvirring. Poängen är att jag aldrig använde den i praktiken, eftersom jag vid tidpunkten för dess lansering precis hade bytt till att stödja applikationer där det inte fanns några uppgifter för användningen. Samma sak hände när man utvecklade efterföljande. Det vill säga i teorin vet jag vad den här saken är, när och hur den används, men jag har ingen erfarenhet av att använda den. Och intervjuaren verkade inte gilla det särskilt mycket. Sedan bad de mig skriva lite kod. Ja, när du utvecklar en applikation måste du genast skriva kod. Återigen Android-kod på tavlan. Det blev läskigt igen.

Lunch

En annan person skulle komma, men det gjorde han inte. Och Google gör misstag. Som ett resultat gick jag på lunch med den tidigare intervjuaren, hennes kollega, och lite senare anslöt nästa intervjuare. Lunchen var ganska anständig. Återigen, eftersom detta inte är huvudkontoret i Zürich såg matsalen ganska vanlig ut, även om den var väldigt trevlig.

Intervju nummer fyra

Äntligen algoritmer i sin renaste form. Jag löste det första problemet ganska snabbt och omedelbart effektivt, även om jag missade ett kantfall, men på intervjuarens uppmaning (han gav just detta kantfall) hittade jag problemet och rättade till det. Självklart var jag tvungen att skriva koden på tavlan. Då gavs en liknande uppgift, men svårare. För den hittade jag ett par icke-optimala lösningar och hittade nästan den optimala, 5-10 minuter räckte inte för att avsluta tanken. Tja, jag hade inte tid att skriva koden för det.

Интервью номер пять

Och återigen Android-intervju. Jag undrar varför jag studerade algoritmer hela året?
Сначала было несколько простых вопросов. Потом интервьюер написал на доске код и попросил найти в нем проблемы. Нашел, объяснил, исправил. Обсудили. А дальше начались несколько неожиданные вопросы в духе «а что в классе Х делает метод У», «а что внутри у метода У», «а что делает класс Z». Что-то я конечно ответил, но потом сказал, что в работе в последнее время с этим не сталкивался и естественно не помню, кто, что и как в деталях делает. После этого интервьюер расспрашивал, что я делаю сейчас. И вопросы пошли на эту тему. Тут я уже отвечал гораздо лучше.

Efter den sista intervjuns slut tog de mitt pass, önskade mig lycka till och skickade mig iväg. Jag gick runt lite i staden, åt middag och gick till hotellet där jag gick och la mig, eftersom flyget var tidigt på morgonen igen. Dagen efter kom jag säkert fram till Cypern. På begäran av rekryteraren skrev jag feedback på intervjun och fyllde i ett formulär i en speciell tjänst för att återbetala de spenderade pengarna. Av alla utgifter betalar Google direkt endast för biljetter. Hotell, mat och resor betalas av kandidaten. Sedan fyller vi i formuläret, bifogar kvittonen och skickar det till ett särskilt kontor. De behandlar detta och överför pengar till kontot ganska snabbt.

Det tog en och en halv vecka att bearbeta intervjuresultaten. Därefter fick jag veta att jag var "en bit under ribban." Dvs jag kom lite till kort. Närmare bestämt gick 2 intervjuer bra, 2 lite mindre bra och Systemdesign inte särskilt bra. Nu, om minst 3 hade gått bra, då hade vi kunnat tävla, annars är det ingen chans. De erbjöd sig att komma tillbaka om ett år till.

Поначалу я конечно расстроился, так как на подготовку было затрачено много сил, и к моменту интервью у меня уже зрела мысль о том, чтобы покинуть Кипр. Устройство в Google и переезд в Швейцарию казались отличным вариантом.

Slutsats

Och här kommer vi till den sista delen av artikeln. Ja, jag misslyckades med Google-intervjun två gånger. Det är sorgligt. Det skulle nog vara intressant att jobba där. Men man kan se saken från andra sidan.

  • På ett och ett halvt år lärde jag mig en enorm mängd saker relaterade till mjukvaruutveckling.
  • Я получил немалое удовольствие, участвуя в соревнованиях по программированию.
  • Jag åkte till Zürich ett par dagar. När ska jag åka dit igen?
  • Jag hade en intressant intervjuupplevelse på ett av de största IT-företagen i världen.

Allt som hänt under dessa ett och ett halvt år kan alltså helt enkelt betraktas som träning, eller träning. Och resultaten av denna utbildning gjorde sig gällande. Min idé att lämna Cypern mognade (på grund av vissa familjeförhållanden), jag klarade flera intervjuer med ett annat välkänt företag och flyttade efter 8 månader. Men det är en helt annan historia. Jag tycker dock att jag ändå ska tacka Google både för det och ett halvt år som jag själv jobbat på, och för 2 intressanta dagar i Zürich.

Vad kan jag säga till slut? Om du arbetar inom IT, förbered dig för intervjuer hos Google (Amazon, Microsoft, Apple, etc.). En dag kanske du åker dit för att komma dit. Även om du inte vill, tro mig, en sådan förberedelse kommer inte att göra dig sämre. I samma ögonblick som du inser att du (även om det bara är med tur) kan få en intervju med ett av dessa företag, kommer många fler vägar att stå öppna för dig än innan du påbörjade din förberedelse. Och allt du behöver på vägen är syfte, uthållighet och tid. Jag önskar er framgång :)

Källa: will.com

Lägg en kommentar