Cum să vă pregătiți pentru un interviu cu Google și să nu treceți prin el. de două ori



Cum a început totul


O seară rece de iarnă cipriotă, mi-a venit brusc ideea că cunoștințele mele despre informatica clasică sunt departe de a fi chiar și medii și cu asta trebuie să faci ceva. Dacă, apropo, dintr-o dată altcineva nu a citit, de ce seara este cipriotă și rece, atunci puteți afla despre ea aici. După ce unii au crezut că sa decis să înceapă un curs online privind algoritmii și structurile de date. De la unul dintre foștii colegi am auzit despre cursul lui Robert Sedgwick (Robert Sedgewick) pe Coursera. Cursul este format din două părți (partea 1 și partea 2). Dacă dintr-o dată schimbați legăturile, puteți oricând să scrie numele autorului. Fiecare dintre piese durează 6 săptămâni. La începutul săptămânii, sunt oferite prelegeri, iar în timpul săptămânii trebuie să faceți exercițiile. Prima parte a cursului acoperă structurile de date de bază, principalele tipuri de sortare și complexitatea algoritmilor. A doua parte este deja mai avansată, începe cu grafice și se termină cu lucruri precum Programarea liniară și Intractabilitatea. După ce m-am gândit la toate cele de mai sus, am ajuns la concluzia că acesta este exact ceea ce am nevoie. Aici, apropo, cititorul curios poate cere, dar ce are de-a face cu Google? Și într-adevăr, până în clipa aceea, el nu a fost aici complet la nimic. Dar aveam nevoie de un gol, de vreme ce făceam 12 săptămâni în seara fără un gol este oarecum dificil. Și care poate fi scopul obținerii de noi cunoștințe? Desigur, aplicarea lor în practică. În viața de zi cu zi, acest lucru este destul de problematic, dar într-un interviu cu o mare companie fără ceremonie. Un Google sumar a arătat că Google (îmi pare rău pentru tautologie) este una dintre cele mai mari companii din Europa (și mă gândeam la Europa), unde desfășoară astfel de interviuri. Anume, biroul lor este în Zurich, Elveția. Deci sa decis - studiem si mergem la interviu cu Google.

Pregătirea pentru primul apel


12 săptămâni au trecut neobservate și am terminat ambele cursuri. Impresiile mele despre cursuri sunt mai mult decât pozitive și le pot recomanda tuturor celor interesați. Mi-a plăcut cursurile din următoarele motive:

Lectorul vorbește fluent engleză
Materialul este bine structurat
Prezentări inteligente care arată interiorul fiecărui algoritm
Selecția competentă a materialului
Exerciții interesante
Exercițiile sunt verificate automat pe site, după care este generat un raport

Munca mea la cursuri a mers, de obicei, după cum urmează. Timp de 1-2 zile am ascultat prelegeri. Apoi a trecut un test rapid pentru cunoașterea materialului. Restul săptămânii a făcut exercițiul în mai multe iterații. După ce am primit prima mea 30-70%, rezultatul ulterior a adus rezultatul la 97-100%. Exercițiul a constat, de obicei, în punerea în aplicare a unor algoritmi, de exemplu, sculptură Seam sau bzip.

După terminarea cursului, mi-am dat seama că multe cunoștințe sunt o mulțime de durere. Dacă mai devreme știam că nu știam nimic, acum am început să-mi dau seama că nu știu.

Din moment ce a fost doar luna mai, și am planificat un interviu pentru toamnă, am decis să-mi continuu educația. După revizuirea cerințelor privind locul de muncă vacant, sa decis parcurgerea în paralel a două direcții: continuarea studierii algoritmilor și trecerea cursului de bază la învățarea mașinilor. Pentru primul obiectiv, am decis să trec de la cursuri la cărți și am ales munca monumentală a lui Steven Skiena "Algoritmi. Ghid de dezvoltare »(Manualul de proiectare al algoritmului). Nu la fel de monumental ca Knut, dar încă. Pentru cel de-al doilea scop, m-am dus din nou la Coursera și m-am înscris în cursul mașinilor de învățare ale lui Andrew Ng.

Au durat alte 3 luni și am terminat cursul și cartea.

Să începem cu cartea. Citirea era destul de interesantă, deși nu era ușoară. În principiu, aș recomanda cartea, dar nu și așa. În general, cartea oferă o analiză mai profundă a ceea ce am învățat în cursuri. În plus, am descoperit pentru mine (din punct de vedere formal) lucruri precum euristica și programarea dinamică. Firește, i-am folosit mai devreme, dar așa cum sunt numite nu știam. De asemenea, în carte există o serie de povești din viața autorului (poveste de război), care oarecum diluează natura academică a prezentării. A doua jumătate a cărții poate fi omisă, există mai mult o descriere a problemelor și metodelor existente pentru soluționarea lor. Este util dacă este folosit în mod regulat în practică, altfel va fi uitat imediat.

Cursul ma multumit. Autorul își cunoaște clar lucrarea și îi spune interesant. În plus, mi-am amintit o sumă corectă, și anume algebra liniară și elementele de bază ale rețelelor neuronale de la universitate, așa că nu am avut nici o dificultate specială. Structura cursului este destul de standard. Cursul este împărțit în săptămâni. În fiecare săptămână, în primul rând, prelegerile sunt intercalate cu teste scurte. După prelegeri, se emite o sarcină care trebuie făcută, trimisă și va fi verificată automat. Pe scurt, lista de discipline predate în curs este următoarea:
— cost function
— linear regression
— gradient descent
— feature scaling
— normal equation
— logistic regression
— multiclass classification (one vs all)
— neural networks
— backpropagation
— regularization
— bias/variance
— learning curves
— error metrics (precision, recall, F1)
— Support Vector Machines (large margin classification)
— K-means
— Principal Components Analysis
— anomaly detection
— collaborative filtering (recommeder system)
— stochastic, mini-batch, batch gradient descents
— online learning
— map reduce
— ceiling analysis
După terminarea cursului, a fost prezentă o înțelegere a tuturor acestor subiecte. După 2 ani, aproape totul a fost uitat în mod firesc. Îi recomand celor care nu sunt familiarizați cu învățarea mașinilor și doresc să înțeleagă bine lucrurile de bază pentru a merge mai departe.

Prima abordare

A fost deja septembrie și a fost momentul să ne gândim la interviu. Din moment ce este trimis prin intermediul site-ului este destul de bine, am inceput sa caut prieteni care lucreaza pentru Google. Alegerea a căzut pe datacompboy, deoarece el a fost singurul pe care l-am cunoscut direct (deși nu personal). El a fost de acord să-mi transfere CV-ul și, în curând, am primit o scrisoare de la recrutor, sugerând că a rezervat un calendar în prima sa conversație. Câteva zile mai târziu, apelul a avut loc. Am încercat să comunicăm prin Hangouts, dar calitatea a fost teribilă, așa că am trecut la telefon. În primul rând, ei au discutat rapid despre standard cum, de ce și de ce, și apoi au trecut la examinarea tehnică. Acesta a constat dintr-o duzină de întrebări în spiritul "care este complexitatea introducerii în harta hash", "ce copaci echilibrați știți?" Nu este dificil dacă există o cunoaștere de bază a acestor lucruri. Screening-ul a mers bine și rezultatele au decis să organizeze primul interviu o săptămână mai târziu.

Interviul a fost, de asemenea, prin Hangouts. Primele 5 minute au vorbit despre mine, apoi au mers la puzzle. Sarcina era pentru grafice. Am înțeles rapid ce să fac, dar am ales algoritmul greșit. Când am început să scriu codul, mi-am dat seama și am trecut la o altă opțiune, pe care am terminat-o. Intervievatorul a pus câteva întrebări despre complexitatea algoritmului și a întrebat dacă ar putea fi mai rapid. M-am înnebunit și nu am putut. În acest moment, și ne-am luat la revedere. Apoi, aproximativ 10 minute mai târziu, mi-am dat seama că, în locul algoritmului Dijkstra pe care l-am folosit, era în mod special în această sarcină că aș putea folosi căutarea pe lățime, și asta ar fi mai rapid. După un timp, recrutorul a sunat și a spus că interviul în ansamblu a mers bine și că ar fi necesar să se organizeze încă unul. Sunt de acord pentru încă o săptămână.

De această dată lucrurile s-au înrăutățit. Dacă pentru prima dată intervievatorul era prietenos și sociabil, de data asta ceva sumbru. Nu am putut să-mi dau seama imediat de problema, deși ideile pe care le-am dat în principiu ar putea duce la rezolvarea ei. În consecință, după câteva solicitări ale intervievatorului, decizia mi-a ajuns. De data aceasta a fost din nou o căutare în lățime, doar din câteva puncte. Am scris soluțiile, dar am uitat de cazurile de graniță. După ceva timp, recrutorul a sunat și a spus că de data aceasta intervievatorul a fost nefericit, deoarece în opinia lui mi-a luat prea multe sfaturi (3 sau 4 piese) și am schimbat constant codul în momentul redactării. Pe baza rezultatelor celor două interviuri, sa decis să nu mergem mai departe, ci să amânăm următorul interviu pentru un an, dacă aș avea o astfel de dorință. Pentru asta și a spus la revedere.

Și am făcut câteva concluzii despre această poveste:

Teoria este bună, dar trebuie să navigheze rapid
O teorie fără practică nu va ajuta. Este necesar să se rezolve problemele și să se aducă scrierea codului la automatism.
Depinde mult de intervievator. Și nu se poate face nimic despre asta.

A fost deja septembrie și a fost momentul să ne gândim la interviu. Din moment ce este trimis prin intermediul site-ului este destul de bine, am inceput sa caut prieteni care lucreaza pentru Google. Alegerea a căzut pe datacompboy, deoarece el a fost singurul pe care l-am cunoscut direct (deși nu personal). El a fost de acord să-mi transfere CV-ul și, în curând, am primit o scrisoare de la recrutor, sugerând că a rezervat un calendar în prima sa conversație. Câteva zile mai târziu, apelul a avut loc. Am încercat să comunicăm prin Hangouts, dar calitatea a fost teribilă, așa că am trecut la telefon. În primul rând, ei au discutat rapid despre standard cum, de ce și de ce, și apoi au trecut la examinarea tehnică. Acesta a constat dintr-o duzină de întrebări în spiritul "care este complexitatea introducerii în harta hash", "ce copaci echilibrați știți?" Nu este dificil dacă există o cunoaștere de bază a acestor lucruri. Screening-ul a mers bine și rezultatele au decis să organizeze primul interviu o săptămână mai târziu.

Interviul a fost, de asemenea, prin Hangouts. Primele 5 minute au vorbit despre mine, apoi au mers la puzzle. Sarcina era pentru grafice. Am înțeles rapid ce să fac, dar am ales algoritmul greșit. Când am început să scriu codul, mi-am dat seama și am trecut la o altă opțiune, pe care am terminat-o. Intervievatorul a pus câteva întrebări despre complexitatea algoritmului și a întrebat dacă ar putea fi mai rapid. M-am înnebunit și nu am putut. În acest moment, și ne-am luat la revedere. Apoi, aproximativ 10 minute mai târziu, mi-am dat seama că, în locul algoritmului Dijkstra pe care l-am folosit, era în mod special în această sarcină că aș putea folosi căutarea pe lățime, și asta ar fi mai rapid. După un timp, recrutorul a sunat și a spus că interviul în ansamblu a mers bine și că ar fi necesar să se organizeze încă unul. Sunt de acord pentru încă o săptămână.

De această dată lucrurile s-au înrăutățit. Dacă pentru prima dată intervievatorul era prietenos și sociabil, de data asta ceva sumbru. Nu am putut să-mi dau seama imediat de problema, deși ideile pe care le-am dat în principiu ar putea duce la rezolvarea ei. În consecință, după câteva solicitări ale intervievatorului, decizia mi-a ajuns. De data aceasta a fost din nou o căutare în lățime, doar din câteva puncte. Am scris soluțiile, dar am uitat de cazurile de graniță. După un timp, recrutorul a sunat și a spus că de data aceasta intervievatorul era nemulțumit, deoarece, în opinia lui, transpiră

Pregătirea celei de-a doua abordări


După ce m-am gândit la situație, am decis să încerc din nou într-un an. Și a editat ușor țintă. Dacă mai devreme obiectivul principal a fost studiul, și interviul în Google ca un morcov îndepărtat, acum interviul a fost scopul și mijloacele de studiu.
Astfel, a fost elaborat un nou plan, care cuprindea următoarele elemente:

Continuați să studiați teoria prin citirea cărților și articolelor.
Rezolva problemele algoritmice într-o sumă de 500-1000 de piese.
Continuați să studiați teoria vizionând videoclipul.
Continuați să studiați teoria prin cursuri.
Aflați experiența altor persoane cu privire la interviurile cu Google.

Planul a fost efectuat de mine timp de un an. Apoi, voi descrie ce am făcut pentru fiecare dintre ele.

Cărți și articole


Numărul de articole citite Nici nu-mi amintesc, citiți-le atât în ​​limba rusă și în limba engleză. Cel mai util site a fost probabil acesta. Există o descriere a unui număr mare de algoritmi interesanți cu exemple de cod.

Cărțile Am citit 5: Algoritmi, ediția a 4-a (Sedgewick, Wayne), Introducere în Algoritmi 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracare Codarea Interviu 4-a ediție (Gayle Laakmann), Programare Interviuri Expuse ediția a 2-a (Mongan, Suojanen , Giguere), Elemente de interviuri de programare (Aziz, Lee, Prakash). Ele pot fi împărțite în două categorii. Cărțile lui Sedgwick și Kormen sunt primele. Aceasta este o teorie. Restul este pregătirea pentru interviu. Sedgwick în carte spune despre același lucru ca și în cursurile sale. Doar în scris. Nu există nici un motiv special pentru a citi cu atenție dacă luați curs, dar pentru a trece cu vederea costul în ambele cazuri. Dacă cursul nu este privit, este logic să citiți. Kormen părea prea plictisitor pentru mine. Încearcă sincer cu dificultate. A adus doar teorema de master, și câteva structuri de date utilizate rar (Fibonacci movilă van Emde Boas de copac, radix heap).

Cartea pentru pregătirea pentru interviu merită citită cel puțin una. Ele sunt construite în jurul unui singur principiu. Descrie procesul unui interviu în marile companii de tehnologie, oferă lucruri de bază ale informaticii, puzzle-uri ale acestor lucruri de bază, brainteasers soluții și soluții de analiză. Din aceste trei, aș recomanda, probabil, Spărgând Interviu Coding ca primar, iar celălalt la voință.

Probleme algoritmice


Acesta a fost probabil cel mai interesant punct de pregătire. Puteți, desigur, să vă așezați și să rezolvați prost problemele. Există multe site-uri diferite pentru acest lucru. Am folosit practic trei: Hackerrank, CodeChef și LeetCode. Pe CodeChef, sarcinile sunt defalcate în complexitate, dar nu în subiecte. La Hackerrank atât pe complexitate cât și pe subiecte.

Dar după cum am aflat pentru mine, există un mod mai interesant. Și acestea sunt concursuri (provocări de programare sau concursuri de programare). Toate cele trei site-uri le furnizează. Este adevărat că există o problemă cu LeetCode - fus orar incomod. Prin urmare, nu am participat pe acest site. Hackerrank CodeChef și să furnizeze un număr suficient de mare de diferite evenimente, cu o durată de la 1 oră până la 10 zile. Diferitele formate au reguli diferite, dar da, poate fi vorba despre o lungă perioadă de timp. Esența principală a motivului pentru care concurența este bună, este introducerea unui element competitiv (și din nou o tautologie) în procesul de învățare.

Tocmai am participat la 37 de concursuri la Hackerrank. Dintre acestea, 32 au fost evaluat, și 5 sau sponsorizat (am primit chiar și $ 25 una dintre ele) sau Fanu. Evaluarea I de 10 ori clasat în top 4%, de 11 ori în top 12% și de 5 ori în top 25%. Cele mai bune rezultate au fost 27/1459 în 3 ore și 22/9721 în săptămâna.

Pe CodeChef m-am mutat când Hackerrank a început să organizeze concursuri rar. În total, am reușit să particip la 5 competiții. Cel mai bun rezultat a fost 426/5019 într-o competiție de zece zile.

În total, competiția, și așa că am decis să doar puțin mai mult de 1000 de sarcini care se încadrează în planul. Acum, din păcate, timp liber pentru continuarea activității concurențiale acolo, și nu există nici un obiectiv, sub care poate fi atribuit non-timp liber. Dar a fost distractiv. Îi recomand pe cei care sunt interesați de acest lucru, să găsească oameni cu minte asemănătoare. Cei doi sau grupul sunt mult mai interesanți. Mă distrez cu un prieten, deci poate merge atât de bine.

Vizionarea videoclipurilor


După ce am citit cartea lui Skien, m-am interesat în esență de ceea ce face. Ca și Sedgwick, este profesor la universitate. În acest sens, rețeaua poate găsi videoclipuri ale cursurilor sale. Am decis să revizuiesc cursul COMPUTER - Challenges Programming - 2009 HKUST. Nu voi spune că mi-a plăcut foarte mult. În primul rând, calitatea video nu este foarte bună. În al doilea rând, nu am încercat să rezolv problemele discutate în cadrul cursului. Deci, implicarea nu a fost foarte mare.
De asemenea, în procesul de rezolvare a problemelor, încercând să găsesc algoritmul corect, am dat peste filmul lui Tushar Roy. A lucrat în Amazon, iar acum lucrează la Apple. După cum am aflat mai târziu pentru mine, are un canal YouTube unde petrece analizarea diverselor algoritmi. În momentul redactării, canalul conține 103 de videoclipuri. Și trebuie să spun că analiza în performanțele sale se face foarte bine. Am încercat să mă uit la alți autori, dar cumva nu am plecat. Deci acest canal poate recomanda cu siguranta vizualizarea.

Finalizarea cursului


Nu am făcut prea multe aici. Am urmărit un videoclip de la Google Developer Nanodegree de la Google și am trecut un curs de la ITMO Cum să câștig concursuri de codificare: Secretele campionilor. Nanodegree este destul de sine, deși nu am învățat nimic nou de acolo. Cursul de la ITMO în termeni de teorie este puțin cam încurcat, dar problemele au fost interesante. Nu aș recomanda să încep cu asta, dar, în principiu, timpul a fost cheltuit pentru că nu în zadar.

Aflați experiența altora


Desigur, o mulțime de oameni au încercat să ajungă la Google. Cineva a ajuns acolo, unii nu au făcut-o. Unii au scris despre acest articol. De lucruri interesante, voi menționa probabil acest lucru și acesta. În primul caz, o persoană și-a pregătit o listă cu ceea ce are nevoie să învețe pentru a deveni inginer de software și pentru a merge la Google. A ajuns în Amazon, dar nu mai este așa de important. Al doilea manual a fost scris de un inginer Google, Larisa Agarkova (Larrr). În plus față de acest document, puteți să-i citiți și blogul.

Este logic să citiți recenzii despre interviurile pe Glassdoor. Ele sunt toate mai mult sau mai puțin similare, dar puteți obține câteva informații utile.

Link-uri către alte articole mici nu vor fi date, le puteți găsi perfect pe Google.

A doua abordare


Apoi a trecut anul. Era foarte ocupat cu studiile. Dar prin noua cădere m-am apropiat de cunoștințe teoretice și abilități practice mult mai profunde. Înainte de sfârșitul perioadei desemnate alocat pentru mine în pregătirea anului a fost încă câteva săptămâni, când postul a căzut scrisoare de la un recruiter de la Google, în care el ma întrebat dacă eu încă mai doresc să lucreze la Google și nu vă deranjează dacă să vorbesc cu el. Firește, nu eram împotriva ei. Sunt de acord să sune într-o săptămână. De asemenea, am cerut un CV actualizat, pe care am adăugat el o scurtă descriere a ceea ce se face pentru anul la locul de muncă și, în principiu.

Dupa ce am vorbit pentru viata ne-am gândit că o săptămână este un interviu cu Hangouts, la fel ca în ultimul an. A trecut săptămâna, a venit timpul pentru interviu, dar intervievatorul nu a apărut. A durat 10 minute, am început deja să mă deranjez, când brusc cineva a intrat în chat. După cum sa dovedit mai târziu, intervievatorului mea, pentru un motiv oarecare, nu a reușit să apară, și el a găsit imediat un înlocuitor. Omul a fost un pic nu este gata în ceea ce privește setările de calculator, precum și în ceea ce privește interviu. Dar apoi totul a mers bine. Am rezolvat rapid problema, a descris unde sunt posibile trucuri, cum pot fi eludate. Am discutat câteva versiuni diferite ale problemei, complexitatea algoritmului. Apoi, încă 5 minute a vorbit, inginerul a spus impresiile sale lucrării în Munchen (în Zurich, a se vedea de înlocuire imediată nu este găsit), și pe stânga.

În aceeași zi am fost contactat de un recruiter și a spus că interviul a mers bine și sunt gata să mă invite la un interviu la birou. A doua zi am sunat prin Hangouts și am discutat detaliile. De când aveam nevoie de viză, am decis să programez un interviu în lună.

În timp ce pregăteam documentele, am discutat, de asemenea, cu recrutorul despre următorul interviu. Un interviu standard în Google constă în 4 algoritmi și un sistem de design. Dar, deoarece am fost desemnat ca dezvoltator Android, mi sa spus că o parte din interviu ar fi cu specificul Android. Ce anume și care vor fi specificul recrutorului pe care nu puteam să-l mișc. După cum am înțeles, a fost introdus relativ recent și nu a fost foarte bine informat. Am fost, de asemenea, înregistrat pentru două sesiuni de instruire: cum să treci interviul algoritmic și cum să treci interviul de sistem design. Sesiunile au fost de utilitate medie. Și acolo, nimeni nu mi-a putut spune ce li se cere de la dezvoltatorii Android. Prin urmare, antrenamentul meu în această lună a fost următorul:

Cumpărați o placă de marcare și scrieți 2-3 din cele mai populare algoritmi din memorie. 3-5 bucăți în fiecare zi. În total, fiecare a fost scris de mai multe ori.
Reîmprospătarea în memoria diferitelor informații pe Android, pe care nu le folosesc în fiecare zi
Urmărind mai multe videoclipuri despre Big Scale și toate astea

Așa cum am spus, în paralel am făcut documente pentru călătorie. În primul rând, mi sa cerut date pentru a face o scrisoare de invitație. Apoi am încercat mult timp pentru a afla cine face viza Cipru pentru Elveția, deoarece Ambasada Elveției nu face acest lucru. După cum sa dovedit, aceasta este responsabilitatea consulatului austriac. Chemat și înregistrat la recepție. Au cerut un șir de documente, dar nimic deosebit de interesant. Fotografie, pașaport, permis de ședere, o grămadă de certificate diferite și o scrisoare de invitație naturală. Între timp, scrisoarea nu a venit. Ca rezultat, m-am dus cu o imprimare obișnuită și a fost destul de plimbare. În aceeași zi scrisoarea a venit un alt 3, și Cipru FedEx nu a putut găsi adresa mea și a trebuit să merg după el singur. În același timp, a primit în același pachet FedEx'e că ei, de asemenea, ar putea să nu-mi dă, pentru că ei nu au adresa, și că pune în iunie (5 luni, Carl). Din moment ce nu știam despre ea, ceea ce, firește, nu presupunea că le are. Am primit viza la timp, după care am rezervat hotelul și am oferit variante ale zborului. Am corectat opțiunile pentru ao face mai convenabilă. Zborurile directe nu au mai fost acolo, în cele din urmă au zburat acolo prin Atena și înapoi prin Viena.

După ce au fost soluționate toate formalitățile cu călătoria, au mai trecut câteva zile și am zburat la Zurich. A luat-o fără aventuri. De la aeroport la oraș ajungem la tren - rapid și convenabil. Un pic de plimbare în jurul orașului a găsit hotelul și a stabilit. Deoarece hotelul a fost rezervat, fără mâncare, luați masa lângă ușă și sa culcat în jos pentru a dormi, pentru că zborul a fost o dimineață să doarmă mai mult dorit. A doua zi, micul dejun la hotel (pentru niște bani) și mers la biroul Google. În total, în Zurich, Google are mai multe birouri. Interviul meu nu a fost în centrul. Și, în general, biroul sa uitat destul de normal, deci nu este posibil să-mi să se uite la toate chiflele Google Office „normale“. M-am înscris la administrator și m-am așezat să aștept. După ce a venit ceva timp și recrutorul mi-a spus planul pentru a doua zi, și apoi dus într-o cameră, în cazul în care a trebuit să se supună unui interviu. De fapt, planul a inclus 3 interviuri, masa de prânz și alte 2 interviuri.

Interviul numărul doi


De data aceasta interviul se referea la algoritmi. Și au fost doi intervievatori. Una este de fapt intervievatorul, iar celălalt este tânărul padawan (intervievatorul de umbră). A fost necesar să se prezinte o structură de date cu anumite proprietăți. La început, ca de obicei, am discutat problema. Am intrebat diferite intrebari, intervievatorul a raspuns. După ceva timp, a cerut să scrie mai multe metode ale structurii inventate pe tablă. De data aceasta au reușit mai mult sau mai puțin, dar cu câteva erori minore pe care le-am corectat cu indicatorii intervievatorului.

Interviul numărul trei


În acest moment System Design, care brusc sa dovedit a fi Android. A fost necesară dezvoltarea unei aplicații cu o anumită funcționalitate. Am discutat cerințele aplicației, serverului, protocolului de comunicație. Apoi, am început să descriu ce componente sau biblioteci aș folosi pentru a construi aplicația. Apoi, la mențiunea lui Job Scheduler, era un fel de gag. Linia de jos este că nu am folosit-o niciodată în practică, pentru că la momentul lansării am trecut doar la suportul pentru aplicații, unde nu existau sarcini pentru aplicarea acestuia. În dezvoltarea ulterioară a fost aceeași. Aceasta este, teoretic, știu ce este acest lucru, când și cum se aplică, dar nu există nicio experiență în aplicație. Și intervievatorul nu pare să-i placă prea mult. Apoi mi-au cerut să scriu codul. Da, atunci când dezvoltați o aplicație, trebuie doar să scrieți codul. Din nou, codul Android pe bord. Sa dovedit din nou urât.

prânz


A mai venit o persoană, dar el nu a venit. Și Google are greseli. Ca rezultat, m-am dus la cină cu intervievatorul anterior, cu colegul ei și puțin mai târziu sa alăturat următorul intervievator. Cina era destul de decentă. Din nou, deoarece acest birou nu este principalul oraș din Zurich, sala de mese arăta destul de obișnuită, deși foarte plăcută.

Interviul numărul patru


În cele din urmă, algoritmi în formă pură. Prima sarcină am decis să rapid și eficient imediat, deși a ratat un caz de limitare, dar determinat de intervievator (el a dat acest caz foarte limită) găsit problema și corectată. Desigur, era necesar să se scrie un cod pe tablă. Apoi, o sarcină similară a fost dată, dar mai dificilă. Pentru ea, am găsit câteva soluții suboptimale și aproape că am găsit optimul, nu a fost suficient 5-10 minute pentru a termina gândul. Ei bine, nu am reușit să scriu codul pentru asta.

Interviul numărul cinci


Și din nou, interviuri Android. Mă întreb de ce am învățat algoritmi pe tot parcursul anului?
La început au existat câteva întrebări simple. Apoi intervievatorul a scris un cod pe tablă și a cerut să găsească o problemă în el. Găsit, explicat, corectat. Am discutat. Și apoi am început câteva probleme neașteptate în spiritul „și că clasa X are o metodă“, „așa cum este că în cadrul metodei I“, „ceea ce face clasa Z». Ceva ce am spus, desigur, dar apoi am spus că nu am întâlnit acest lucru recent și, desigur, nu-mi amintesc cine face ce și cum în detaliu. După aceea, intervievatorul a întrebat ce făceam acum. Și întrebările au mers pe acest subiect. Aici am răspuns deja mult mai bine.

După încheierea ultimului interviu, am fost confiscat cu o trecere, mi-am dorit mult noroc și am fost trimis acasă. O mică plimbare în oraș, o cină și mers la hotel, unde a adormit, din moment ce zborul a fost din nou dimineața devreme. A doua zi am ajuns în siguranță în Cipru. Am scris la cererea recrutorului fidbek pentru interviu și am completat un formular de serviciu special pentru returnarea banilor cheltuiți. Dintre toate cheltuielile, Google plătește numai bilete. Hotelul, mâncarea și călătoriile sunt plătite de către candidat. Apoi, completăm formularul, aplicăm cecurile și îl trimitem unui birou special. Ei procesează și transferă rapid banii în cont.

A durat o săptămână și jumătate pentru a procesa rezultatele interviului. După aceea mi sa spus că sunt "puțin sub bar". Vreau să spun că nu am rezistat mult. Mai exact, 2 interviuri au mers bine, 2 nu au fost foarte bune, iar sistemul de design nu a fost foarte bun. Acum, dacă cel puțin 3 au mers bine, atunci ar fi posibil să concurezi și astfel fără șansă. Au oferit să revină într-un an.

La început, am fost cu siguranță supărat, deoarece au fost cheltuite prea multe eforturi pentru pregătire, iar în momentul interviului am avut deja ideea de a părăsi Cipru. Dispozitivul pe Google și mutarea în Elveția păreau o opțiune excelentă.

concluzie


Și aici ajungem la partea finală a articolului. Da, nu m-am dus de două ori la Google. Acest lucru este trist. Probabil ar fi interesant să lucrezi acolo. Dar, puteți privi cazul de cealaltă parte.

Timp de un an și jumătate, am învățat multe lucruri legate de dezvoltarea de software.
Am foarte multă distracție în participarea la concursurile de programare.
M-am dus în Zurich pentru câteva zile. Când altcineva voi ieși?
Am o experiență de interviu interesantă într-una dintre cele mai mari companii IT din lume.

Astfel, tot ce sa întâmplat în cursul acestui an și jumătate poate fi pur și simplu considerat pregătire sau formare. Rezultatele acestei instruiri s-au resimțit. Ideea mea de a părăsi Cipru a fost coaptă (din motive familiale), am trecut cu succes câteva interviuri cu o altă companie bine-cunoscută și după 8 luni m-am mutat. Dar aceasta este o poveste complet diferită. Cu toate acestea, cred că mai trebuie să mulțumesc Google pentru un an și jumătate în care am lucrat pentru mine și pentru 2 zile interesante în Zurich.

Ce pot să spun în cele din urmă. Dacă lucrați în IT, pregătiți-vă pentru un interviu cu Google (Amazon, Microsoft, Apple, etc.). Poate că într-o zi te duci acolo să intri. Chiar dacă nu vrei să crezi, această pregătire nu te va face mai rău. Într-o vreme în care vă dați seama că puteți (chiar dacă numai din fericire) obțineți un interviu cu una dintre aceste companii, veți avea mult mai multe drumuri deschise înainte de a începe formarea. Tot ceea ce aveți nevoie în acest fel este un scop, perseverență și timp. Vă urez succes :) :)

In caz de greșeli gramaticale scriți un  comentariu

Cum să vă pregătiți pentru un interviu cu Google și să nu treceți prin el. de două ori Cum să vă pregătiți pentru un interviu cu Google și să nu treceți prin el. de două ori Reviewed by phoenixgang on 12:05 PM Rating: 5

No comments