Kā sagatavoties intervijai Google un izgāzties. Divas reizes

Kā sagatavoties intervijai Google un izgāzties. Divas reizes

Raksta virsraksts izklausās pēc episkā faila, bet patiesÄ«bā viss nav tik vienkārÅ”i. Un vispār Å”is stāsts beidzās ļoti pozitÄ«vi, kaut arÄ« ne Google. Bet Ŕī ir cita raksta tēma. Å ajā paŔā rakstā es runāŔu par trim lietām: kā noritēja mans sagatavoÅ”anās process, kā notika intervijas Google un kāpēc, manuprāt, viss nav tik skaidrs, kā varētu Ŕķist.

Kā tas viss sākās

Kādā aukstā Kipras ziemas vakarā man pēkŔņi ienāca prātā doma, ka manas zināŔanas klasiskajā datorzinātnē ir ļoti tālu no pat vidējām un kaut kas ir jādara lietas labā. Ja, starp citu, kāds vēl nav lasÄ«jis, kāpēc vakars ir Kipras un auksts, tad par to var uzzināt Å”eit. Pēc nelielām pārdomām tika nolemts sākt ar tieÅ”saistes kursu par algoritmiem un datu struktÅ«rām. No viena no maniem bijuÅ”ajiem kolēģiem es dzirdēju par Roberta Sedžvika kursu Coursera. Kurss sastāv no divām daļām (1. daļa Šø 2. daļa). Ja pēkŔņi mainās saites, vienmēr varat Google meklēt autora vārdu. Katra daļa ilgst 6 nedēļas. Lekcijas tiek lasÄ«tas nedēļas sākumā, un nedēļas laikā joprojām ir jāveic vingrinājumi. Kursa pirmajā daļā ir apskatÄ«tas datu pamatstruktÅ«ras, ŔķiroÅ”anas pamatveidi un algoritmu sarežģītÄ«ba. Otrā daļa jau ir progresÄ«vāka, sākot ar grafikiem un beidzot ar tādām lietām kā Lineārā programmÄ“Å”ana un Intractability. Apdomājot visu iepriekÅ” minēto, es nonācu pie secinājuma, ka tas ir tieÅ”i tas, kas man ir vajadzÄ«gs. Starp citu, zinātkārs lasÄ«tājs var jautāt, kāds Google sakars ar to? Un tieŔām, lÄ«dz Å”im brÄ«dim viņam ar to nebija nekāda sakara. Bet man vajadzēja mērÄ·i, jo mācÄ«ties 12 nedēļas vakaros bez mērÄ·a ir diezgan grÅ«ti. Kāds varētu bÅ«t jaunu zināŔanu apguves mērÄ·is? Protams, to pielietojums praksē. Ikdienā tas ir diezgan problemātiski, bet intervijas laikā ar lielu uzņēmumu tas ir viegli. Ātra Google meklÄ“Å”ana parādÄ«ja, ka Google (piedodiet par tautoloÄ£iju) ir viens no lielākajiem uzņēmumiem Eiropā (un es Ä«paÅ”i skatÄ«jos uz Eiropu), kas veic Ŕādas intervijas. Proti, viņu birojs atrodas CÄ«rihē, Å veicē. Tāpēc ir nolemts ā€” mācÄ«simies un dosimies uz interviju Google.

GatavoŔanās pirmajai pieejai

12 nedēļas pagāja ātri, un es pabeidzu abus kursus. Mani iespaidi par kursiem ir vairāk nekā pozitÄ«vi, un varu ieteikt tos ikvienam interesentam. Kursi man patika Ŕādu iemeslu dēļ:

  • Lektore runā diezgan skaidri angļu valodā
  • Materiāls ir labi strukturēts
  • Lieliskas prezentācijas, kas parāda katra algoritma iekÅ”pusi
  • Kompetenta materiāla izvēle
  • Interesanti vingrinājumi
  • Vietnē tiek automātiski pārbaudÄ«ti vingrinājumi, pēc tam tiek Ä£enerēta atskaite

Mans darbs kursos parasti ritēja Ŕādi. NoklausÄ«jos lekcijas 1-2 dienās. Pēc tam viņi ātri pārbaudÄ«ja savas zināŔanas par materiālu. AtlikuÅ”ajā nedēļā vingrinājumu veicu vairākās atkārtojumos. Pēc pirmās saņēmu savus 30-70%, nākamie rezultātu atnesa uz 97-100%. Vingrinājums parasti ietvēra kāda algoritma ievieÅ”anu, piem. Å uvju grieÅ”ana vai bzip.

Pēc kursu pabeigÅ”anas sapratu, ka daudz zināŔanu nāk ar lielu bēdu. Ja agrāk es vienkārÅ”i zināju, ka neko nezinu, tad tagad sāku saprast, ka es nezinu.

Tā kā bija tikai maijs un interviju ieplānoju rudenÄ«, nolēmu turpināt izglÄ«tÄ«bu. Pārskatot prasÄ«bas vakancei, tika nolemts paralēli iet divos virzienos: turpināt apgÅ«t algoritmus un apgÅ«t maŔīnmācÄ«bas pamatkursu. Pirmajam mērÄ·im nolēmu pāriet no kursiem uz grāmatu un izvēlējos StÄ«vena Skiena monumentālo darbu ā€œAlgoritmi. Algoritmu projektÄ“Å”anas rokasgrāmata. Ne tik monumentāls kā Knutam, bet tomēr. Lai gÅ«tu otros vārtus, es atgriezos Coursera un pierakstÄ«jos EndrjÅ« Nga kursā. MaŔīnu mācÄ«Å”ana.

Pagāja vēl 3 mēneÅ”i, un es pabeidzu kursu un grāmatu.

Sāksim ar grāmatu. LasÄ«Å”ana izvērtās diezgan interesanta, lai arÄ« ne viegla. Principā grāmatu ieteiktu, bet ne uzreiz. Kopumā grāmata sniedz padziļinātu ieskatu kursā apgÅ«tajā. Turklāt es atklāju (no formālā viedokļa) tādas lietas kā heiristika un dinamiskā programmÄ“Å”ana. Protams, es tos izmantoju iepriekÅ”, bet nezināju, kā tos sauc. Grāmatā ir arÄ« vairāki pasakas no autora dzÄ«ves (Kara stāsts), kas nedaudz mazina prezentācijas akadēmisko raksturu. Starp citu, grāmatas otro pusi var izlaist, tā drÄ«zāk satur esoÅ”o problēmu un to risināŔanas metožu aprakstu. Tas ir noderÄ«gi, ja to regulāri lieto praksē, pretējā gadÄ«jumā tas nekavējoties tiks aizmirsts.

Es biju vairāk nekā apmierināts ar kursu. Autors skaidri zina savas lietas un runā interesanti. Turklāt diezgan daudz no tā, proti, lineārā algebra un neironu tÄ«klu pamati, es atcerējos no universitātes, tāpēc man nebija Ä«paÅ”as grÅ«tÄ«bas. Kursa struktÅ«ra ir diezgan standarta. Kurss ir sadalÄ«ts nedēļās. Katru nedēļu notiek lekcijas, kas sajauktas ar Ä«siem kontroldarbiem. Pēc lekcijām jums tiek dots uzdevums, kas jums jāizdara, jāiesniedz, un tas tiks automātiski pārbaudÄ«ts. ÄŖsumā kursā apgÅ«stamo lietu saraksts ir Ŕāds:
- izmaksu funkcija
- lineārā regresija
- gradienta nolaiŔanās
- funkciju mērogoÅ”ana
- normāls vienādojums
- loģistiskā regresija
ā€” vairāku klaÅ”u klasifikācija (viens pret visiem)
ā€” neironu tÄ«kli
- pavairoŔana atpakaļ
- regulācija
ā€” neobjektivitāte/dispersija
ā€” mācÄ«Å”anās lÄ«knes
ā€” kļūdu metrika (precizitāte, atsaukÅ”ana, F1)
ā€” Atbalstiet vektora maŔīnas (lielas piemales klasifikācija)
ā€” K-nozÄ«mē
ā€”Galveno komponentu analÄ«ze
- anomāliju noteikŔana
ā€” sadarbÄ«bas filtrÄ“Å”ana (ieteicēju sistēma)
ā€” stohastiskā, mini-partiju, partijas gradienta nolaiÅ”anās
ā€” tieÅ”saistes mācÄ«bas
- kartes samazināŔana
- griestu analīze
Pēc kursa pabeigÅ”anas radās izpratne par visām Ŕīm tēmām. Pēc 2 gadiem gandrÄ«z viss tika dabiski aizmirsts. Es iesaku to tiem, kuri nav pazÄ«stami ar maŔīnmācÄ«bu un vēlas iegÅ«t labu izpratni par pamata lietām, lai turpinātu.

Pirmais skrējiens

Bija jau septembris un laiks domāt par interviju. Tā kā pieteikÅ”anās caur vietni ir diezgan postoÅ”a, es sāku meklēt draugus, kas strādā Google. Izvēle iekrita datacompboy, jo viņŔ bija vienÄ«gais, kuru pazinu tieÅ”i (pat ja ne personÄ«gi). ViņŔ piekrita pārsÅ«tÄ«t manu CV, un drÄ«z vien saņēmu vēstuli no vervētāja, kas piedāvāja rezervēt vietu viņa kalendārā pirmajai sarunai.Pāris dienas vēlāk zvans notika. Mēģinājām sazināties, izmantojot Hangouts, taču kvalitāte bija Å”ausmÄ«ga, tāpēc pārgājām uz tālruni. Vispirms mēs ātri apspriedām standartu, kā, kāpēc un kāpēc, un pēc tam pārgājām uz tehnisko pārbaudi. Tas sastāvēja no duci jautājumu garā ā€œkādas ir grÅ«tÄ«bas ievietot jaucējkartēā€, ā€œkādus lÄ«dzsvarotus kokus jÅ«s zinātā€. Tas nav grÅ«ti, ja jums ir pamatzināŔanas par Ŕīm lietām. SkrÄ«nings noritēja labi, un, pamatojoties uz rezultātiem, viņi nolēma organizēt pirmo interviju pēc nedēļas.

Intervija notika arÄ«, izmantojot Hangouts. Vispirms viņi runāja par mani apmēram 5 minÅ«tes, pēc tam pārgāja pie problēmas. Problēma bija grafikos. Ātri sapratu, kas jādara, taču izvēlējos nepareizo algoritmu. Kad sāku rakstÄ«t kodu, es to sapratu un pārgāju uz citu opciju, kuru pabeidzu. Intervētājs uzdeva vairākus jautājumus par algoritma sarežģītÄ«bu un jautāja, vai to varētu izdarÄ«t ātrāk. Es kaut kā kļuvu truls un nevarēju to izdarÄ«t. Å ajā brÄ«dÄ« laiks bija beidzies, un mēs atvadÄ«jāmies. Pēc aptuveni 10 minÅ«tēm man sapratu, ka Dijkstra algoritma vietā, ko izmantoju, Å”ajā konkrētajā uzdevumā es varētu izmantot meklÄ“Å”anu pēc platuma, un tas bÅ«tu ātrāk. Pēc kāda laika vervētājs piezvanÄ«ja un teica, ka intervija kopumā noritēja labi un ka jāorganizē vēl viena. Vienojāmies par vēl vienu nedēļu.

Å oreiz lietas kļuva sliktākas. Ja pirmajā reizē intervētājs bija draudzÄ«gs un sabiedrisks, tad Å”oreiz viņŔ bija nedaudz drÅ«ms. Es nevarēju uzreiz izdomāt problēmu, lai gan idejas, kuras radu, principā varētu novest pie tās risinājuma. Beigās pēc vairākiem intervētāja pamudinājumiem risinājums man radās. Å oreiz tā atkal izrādÄ«jās platuma meklÄ“Å”ana, tikai no vairākiem punktiem. Es uzrakstÄ«ju risinājumus, satiku tos laikā, bet aizmirsu par malām. Pēc kāda laika vervētājs piezvanÄ«ja un teica, ka Å”oreiz intervētājs ir neapmierināts, jo pēc viņa domām man vajadzēja pārāk daudz mājienu (3 vai 4 gab.) un rakstot nemitÄ«gi mainÄ«ju kodu. Balstoties uz divu interviju rezultātiem, tika nolemts tālāk neiet, bet nākamo interviju atlikt uz gadu, ja es to vēlos. Tāpēc mēs atvadÄ«jāmies.

Un no Ŕī stāsta es izdarīju vairākus secinājumus:

  • Teorija ir laba, bet jums ir ātri jāorientējas tajā
  • Teorija bez prakses nepalÄ«dzēs. Mums ir jāatrisina problēmas un kodÄ“Å”ana jākļūst automātiskai.
  • Daudz kas ir atkarÄ«gs no intervētāja. Un tur neko nevar darÄ«t.

GatavoŔanās otrajam braucienam

Apdomājot situāciju, nolēmu pēc gada mēģināt vēlreiz. Un nedaudz rediģēja vārtus. Ja agrāk galvenais mērÄ·is bija mācÄ«ties, un intervija Google bija kā tāls burkāns, tad tagad mērÄ·is bija intervijas nokārtoÅ”ana, bet lÄ«dzeklis ā€“ studijas.
Tātad tika izstrādāts jauns plāns, kurā bija iekļauti Ŕādi punkti:

  • Turpiniet studēt teoriju, lasot grāmatas un rakstus.
  • Atrisiniet algoritmiskās problēmas 500-1000 gabalu apjomā.
  • Turpiniet apgÅ«t teoriju, skatoties video.
  • Turpiniet apgÅ«t teoriju kursos.
  • Izpētiet citu cilvēku pieredzi intervijās Google tÄ«klā.

Plānu izpildīju gada laikā. Tālāk es aprakstīŔu, ko tieŔi es izdarīju katram no punktiem.

Grāmatas un raksti

Pat neatceros izlasÄ«to rakstu skaitu, lasu gan krieviski, gan angliski. Iespējams, visnoderÄ«gākā vietne Å”is. Å eit jÅ«s varat atrast daudzu interesantu algoritmu aprakstu ar kodu piemēriem.

IzlasÄ«ju 5 grāmatas: Algoritmi, 4. izdevums (Sedgewick, Wayne), Introduction to Algorithms 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4. izdevums (Gayle Laakmann), Programming Interviews Exposed 2. edition (Mongan, Suojanen). , Giguere), ProgrammÄ“Å”anas interviju elementi (Aziz, Lee, Prakash). Tos var iedalÄ«t 2 kategorijās. Pirmajā ir iekļautas Sedžvika un Kormena grāmatas. Tā ir teorija. Pārējais ir gatavoÅ”anās intervijai. Sedžviks grāmatā stāsta par to paÅ”u, ko savos kursos. Tikai rakstiski. Nav lielas jēgas to rÅ«pÄ«gi lasÄ«t, ja esat apguvis kursu, taču jebkurā gadÄ«jumā ir vērts to izlasÄ«t. Ja neesi noskatÄ«jies kursu, ir jēga to izlasÄ«t. Kormens man Ŕķita pārāk garlaicÄ«gs. GodÄ«gi sakot, man bija grÅ«ti to apgÅ«t. Es tikko to izņēmu no turienes maÄ£istra teorija, un vairākas reti izmantotas datu struktÅ«ras (Fibonači kaudze, van Emde Boas koks, radix kaudze).

Ir vērts izlasÄ«t vismaz vienu grāmatu, lai sagatavotos intervijai. Tie visi ir veidoti pēc aptuveni tāda paÅ”a principa. Viņi apraksta intervijas procesu lielos tehnoloÄ£iju uzņēmumos, sniedz pamatlietas no datorzinātnes, problēmas Ŕīm pamatlietām, problēmu risinājumus un risinājumu analÄ«zi. No trim iepriekÅ”minētajiem es droÅ”i vien ieteiktu Cracking the Coding Interview kā galveno, un pārējās nav obligātas.

Algoritmiskās problēmas

Tas, iespējams, bija interesantākais sagatavoÅ”anās punkts. Var, protams, apsēsties un stulbi risināt problēmas. Å im nolÅ«kam ir daudz dažādu vietņu. Es galvenokārt izmantoju trÄ«s: Hackerrank, CodeChef Šø LeetCode. Programmā CodeChef problēmas tiek sadalÄ«tas pēc grÅ«tÄ«bām, bet ne pēc tēmas. Par Hackerrank gan pēc sarežģītÄ«bas, gan pēc tēmas.

Bet, kā es uzreiz noskaidroju pats, ir interesantāks veids. Un tie ir konkursi (programmÄ“Å”anas izaicinājumi vai programmÄ“Å”anas konkursi). Visas trÄ«s vietnes tos nodroÅ”ina. Tiesa, ir problēma ar LeetCode ā€“ neērtā laika josla. Tāpēc es nepiedalÄ«jos Å”ajā vietnē. Hackerrank un CodeChef nodroÅ”ina diezgan lielu skaitu dažādu sacensÄ«bu, kas ilgst no 1 stundas lÄ«dz 10 dienām. Dažādiem formātiem ir atŔķirÄ«gi noteikumi, taču mēs par to varētu runāt ilgi. Galvenais, kāpēc konkursi ir labi, ir konkursa (un atkal tautoloÄ£ijas) elementa ievieÅ”ana mācÄ«bu procesā.

Pavisam Hackerrank piedalījos 37 sacensībās. No tiem 32 bija vērtējamie, un 5 bija vai nu sponsorēti (vienā no tiem es pat saņēmu 25 USD), vai arī izklaidei. Reitingā 10 reizes biju 4% topā, 11 reizes - 12% un 5 reizes - 25%. Labākie rezultāti bija 27/1459 3 stundu laikā un 22/9721 nedēļā.

Es pārgāju uz CodeChef, kad Hackerrank sāka retāk rīkot sacensības. Kopumā izdevās piedalīties 5 konkursos. Desmit dienu sacensībās labākais rādītājs bija 426/5019.

Kopumā sacensībās un tā vien atrisināju nedaudz vairāk kā 1000 uzdevumus, kas iekļāvās plānā. Tagad diemžēl nav brīva laika, lai turpinātu konkurētspējīgas aktivitātes, tāpat kā nav mērķa, kuram brīvo laiku varētu norakstīt. Bet tas bija jautri. Iesaku tiem, kam tas interesē, atrast domubiedrus. Kopā vai grupā ir daudz interesantāk. Man tas bija jautri ar draugu, tāpēc varbūt tas izdevās labi.

Skatīt videoklipu

Pēc Skienas grāmatas izlasÄ«Å”anas man radās interese par to, ko viņŔ dara. Tāpat kā Sedžviks, viņŔ ir universitātes profesors. Å ajā sakarā tieÅ”saistē var atrast viņa kursu video. Es nolēmu pārskatÄ«t kursu COMP300E - ProgrammÄ“Å”anas izaicinājumi - 2009 HKUST. Nevarētu teikt, ka man ļoti patika. Pirmkārt, video kvalitāte nav pārāk laba. Otrkārt, kursā apspriestās problēmas nemēģināju risināt pati. Tātad saderināŔanās nebija ļoti augsta.
Tāpat, risinot problēmas, mēģinot atrast pareizo algoritmu, uzgāju TuÅ”ara Roja video. ViņŔ strādāja Amazon un tagad strādā Apple. Kā vēlāk pats noskaidroju, viņŔ to ir izdarÄ«jis youtube kanāls, kur viņŔ ievieto dažādu algoritmu analÄ«zi. RakstÄ«Å”anas laikā kanālā ir 103 videoklipi. Un man jāsaka, ka viņa analÄ«ze tika veikta ļoti labi. Mēģināju skatÄ«ties citus autorus, bet kaut kā nesanāca. Tāpēc noteikti varu ieteikt Å”o kanālu apskatei.

Apgūstot kursus

Es Å”eit neko Ä«paÅ”u nedarÄ«ju. NoskatÄ«jos videoklipu no Google Android izstrādātāja Nanodegree un apmeklēja ITMO kursu Kā uzvarēt kodÄ“Å”anas sacensÄ«bās: čempionu noslēpumi. Nanodegree ir diezgan labs, lai gan es, protams, neko jaunu no tā neiemācÄ«jos. Kurss no ITMO teorijas ziņā ir nedaudz Ŕķībs, taču problēmas bija interesantas. Es neieteiktu ar to sākt, bet principā tas bija labi pavadÄ«ts laiks.

Mācieties no citu cilvēku pieredzes

Protams, daudzi cilvēki mēģināja iekļūt Google. Daži iekļuva, daži nē. Daži par to ir rakstÄ«juÅ”i rakstus. No interesantajām lietām es droÅ”i vien pieminÄ“Å”u Å”is Šø Å”is. Pirmajā gadÄ«jumā persona sagatavoja sev sarakstu ar to, kas viņam jāapgÅ«st, lai kļūtu par programmatÅ«ras inženieri un iekļūtu Google. Galu galā tas nokļuva Amazon, taču tas vairs nav tik svarÄ«gi. Otro rokasgrāmatu uzrakstÄ«ja Google inženiere Larisa Agarkova (Larrr). Papildus Å”im dokumentam jÅ«s varat arÄ« lasÄ«t viņas emuārs.

Ir jēga lasīt pārskatus par intervijām vietnē Glassdoor. Tie visi ir vairāk vai mazāk līdzīgi, taču jūs varat iegūt kādu noderīgu informāciju.

Es nesniegŔu saites uz citiem maziem rakstiem; jūs varat tos viegli atrast Google tīklā.

Otrais brauciens

Un tagad ir pagājis gads. MācÄ«bu ziņā tas izrādÄ«jās ļoti intensÄ«vs. Bet jaunajam rudenim piegāju ar daudz dziļākām teorētiskām zināŔanām un attÄ«stÄ«tām praktiskām iemaņām. Vēl bija atlikuÅ”as dažas nedēļas lÄ«dz man atvēlētā gada beigām, lai sagatavotos, kad pēkŔņi pa pastu nonāca Google vervētāja vēstule, kurā viņŔ man jautāja, vai man joprojām ir vēlme strādāt Google un vai Man ir prātā runāt ar viņu. Dabiski, ka man nebija iebildumu. Vienojāmies, ka zvanÄ«sim pēc nedēļas. Viņi man arÄ« prasÄ«ja atjauninātu CV, kam pievienoju Ä«su aprakstu par gada laikā darbā un kopumā paveikto.

Sazinoties uz mūžu, nolēmām, ka pēc nedēļas bÅ«s Hangout intervija, tāpat kā pagājuÅ”ajā gadā. Pagāja nedēļa, bija laiks intervijai, bet intervētājs neieradās. Pagāja 10 minÅ«tes, es jau sāku nervozēt, kad pēkŔņi kāds ielauzās čatā. Kā izrādÄ«jās nedaudz vēlāk, mans intervētājs nez kāpēc nevarēja ierasties un viņam steidzami tika atrasts aizstājējs. Persona bija zināmā mērā nesagatavota gan datora uzstādÄ«Å”anas, gan intervijas veikÅ”anas ziņā. Bet tad viss gāja labi. Es ātri atrisināju problēmu, aprakstÄ«ju, kur ir iespējamas nepilnÄ«bas un kā tās var apiet. Mēs apspriedām vairākas dažādas problēmas versijas un algoritma sarežģītÄ«bu. Pēc tam mēs runājām vēl 5 minÅ«tes, inženieris pastāstÄ«ja savus iespaidus par darbu Minhenē (acÄ«mredzot CÄ«rihē viņi neatrada steidzamu aizstājēju), un tad mēs Ŕķīrāmies.

Tajā paŔā dienā ar mani sazinājās vervētājs un teica, ka intervija noritēja labi un viņi ir gatavi uzaicināt mani uz interviju birojā. Nākamajā dienā mēs piezvanÄ«jām, izmantojot Hangouts, un apspriedām sÄ«kāku informāciju. Tā kā man vajadzēja pieteikties vÄ«zai, nolēmām interviju ieplānot pēc mēneÅ”a.

Kamēr gatavoju dokumentus, vienlaikus pārrunāju gaidāmo interviju ar vervētāju. Standarta intervija Google sastāv no 4 algoritmiskām intervijām un vienas sistēmas dizaina intervijas. Taču, tā kā es pieteicos kā Android izstrādātājs, man teica, ka daļa no intervijas bÅ«s saistÄ«ta ar Android. Es nevarēju to izkratÄ«t no vervētāja, kas tieÅ”i un kāda bÅ«tu specifika. Cik saprotu, tas tika ieviests salÄ«dzinoÅ”i nesen un viņŔ pats nebija Ä«paÅ”i informēts. Es arÄ« biju reÄ£istrēts divām apmācÄ«bām: kā nokārtot algoritmisko interviju un kā nokārtot sistēmas dizaina interviju. Sesijas bija vidēji noderÄ«gas. ArÄ« tur neviens nevarēja man pateikt, ko viņi jautā Android izstrādātājiem. Tāpēc mana gatavoÅ”anās Å”im mēnesim izvērtās Ŕādi:

  • Iegādājieties marÄ·ieru dēli un no atmiņas ierakstiet uz tā 2-3 desmitus populārāko algoritmu. 3-5 gabali katru dienu. Kopumā katrs tika rakstÄ«ts vairākas reizes.
  • Atsvaidziniet atmiņu ar dažādu informāciju Android ierÄ«cē, ko neizmantojat katru dienu
  • Skatos dažus videoklipus par Big Scale un tamlÄ«dzÄ«gām lietām

Kā jau teicu, paralēli gatavoju dokumentus braucienam. Sākumā viņi man lÅ«dza informāciju, lai izveidotu ielÅ«guma vēstuli. Tad es ilgu laiku mēģināju noskaidrot, kurÅ” Kiprā izsniedz vÄ«zas uz Å veici, jo Å veices vēstniecÄ«ba ar to nenodarbojas. Kā izrādÄ«jās, to dara Austrijas konsulāts. PiezvanÄ«ju un sarunāju tikÅ”anos. Viņi prasÄ«ja daudz dokumentu, bet nekā Ä«paÅ”i interesanta. Foto, pase, uzturÄ“Å”anās atļauja, kaudze dažādu apliecÄ«bu un, protams, uzaicinājuma vēstule. Tikmēr vēstule nesanāca. Galu galā es gāju ar parasto izdruku, un tā strādāja diezgan labi. Pati vēstule pienāca 3 dienas vēlāk, un Kipras FedEx nevarēja atrast manu adresi, un man paÅ”am vajadzēja to saņemt. Tajā paŔā laikā es saņēmu paku no tā paÅ”a FedEx, kuru viņi arÄ« nevarēja man piegādāt, jo viņi neatrada adresi, un kas tur gulēja kopÅ” jÅ«nija (5 mēneÅ”i, Kārlis). Tā kā es par to nezināju, es, protams, nedomāju, ka viņiem tas ir. VÄ«zu saņēmu laicÄ«gi, pēc tam man rezervēja viesnÄ«cu un piedāvāja lidojumu iespējas. Esmu pielāgojis opcijas, lai padarÄ«tu to ērtāku. TieÅ”o lidojumu vairs nebija, tāpēc es beidzu lidot uz turieni caur Atēnām un atpakaļ caur VÄ«ni.

Kad visas formalitātes ar braucienu bija nokārtotas, pagāja vēl dažas dienas un es tieŔām aizlidoju uz CÄ«rihi. Nokļuva bez starpgadÄ«jumiem. No lidostas uz pilsētu braucu ar vilcienu ā€“ ātri un ērti. Nedaudz pastaigājies pa pilsētu, atradu viesnÄ«cu un iereÄ£istrējos. Tā kā viesnÄ«ca bija rezervēta bez Ä“Å”anas, vakariņoju blakus un devos gulēt, jo lidojums bija no rÄ«ta un jau gribējās gulēt. Nākamajā dienā brokastoju viesnÄ«cā (par papildus naudu) un devos uz Google biroju. Google ir vairāki biroji CÄ«rihē. Mana intervija nebija centrālā. Un vispār birojs izskatÄ«jās diezgan parasts, tāpēc man nebija iespējas apskatÄ«t visus ā€œparastāā€ Google biroja labumus. PiereÄ£istrējos pie administratora un apsēdos gaidÄ«t. Pēc kāda laika iznāca vervētājs un izstāstÄ«ja Ŕīs dienas plānu, pēc tam aizveda mani uz telpu, kur bija jānotiek intervijām. PatiesÄ«bā plānā bija 3 intervijas, pusdienas un vēl 2 intervijas.

Intervija numur viens

Pirmā intervija bija tikai operētājsistēmā Android. Un tam nebija nekāda sakara ar algoritmiem. Pārsteigums tomēr. Nu, labi, Ŕādā veidā tas ir vēl izplatÄ«tāks. Mums tika lÅ«gts izveidot noteiktu lietotāja interfeisa komponentu. Vispirms pārrunājām, kas un kā. ViņŔ piedāvāja izveidot risinājumu, izmantojot RxJava, aprakstÄ«ja, ko tieÅ”i viņŔ darÄ«s un kāpēc. Viņi teica, ka tas noteikti ir labi, bet darÄ«sim to, izmantojot Android sistēmu. Un tajā paŔā laikā mēs uzrakstÄ«sim kodu uz tāfeles. Un ne tikai komponents, bet visa darbÄ«ba, kas izmanto Å”o komponentu. Tas ir tas, kam es nebiju gatavs. Viena lieta ir uzrakstÄ«t uz tāfeles 30ā€“50 rindiņu algoritmu un cita lieta ir uzrakstÄ«t Android koda nÅ«deles, pat ar saÄ«sinājumiem un komentāriem garā ā€œnu, es to nerakstÄ«Å”u, jo tas jau ir acÄ«mredzamsā€. Rezultāts bija kaut kāds vinegrets 3 dēļiem. Tie. Es atrisināju problēmu, bet tas izskatÄ«jās stulbi.

Intervija numur divi

Å oreiz intervija bija par algoritmiem. Un bija divi intervētāji. Viens ir faktiskais intervētājs, bet otrs ir jauns padawan (ēnu intervētājs). Bija jāizdomā datu struktÅ«ra ar noteiktām Ä«paŔībām. Pirmkārt, mēs kā parasti apspriedām problēmu. Uzdevu dažādus jautājumus, intervētājs atbildēja. Pēc kāda laika viņiem tika lÅ«gts uz tāfeles uzrakstÄ«t vairākas izgudrotās struktÅ«ras metodes. Å oreiz man izdevās vairāk vai mazāk, lai gan ar dažām nelielām kļūdām, kuras izlaboju pēc intervētāja pamudinājuma.

Intervija numur trīs

Å oreiz System Design, kas pēkŔņi izrādÄ«jās arÄ« Android. Bija nepiecieÅ”ams izstrādāt aplikāciju ar noteiktu funkcionalitāti. Mēs apspriedām prasÄ«bas lietojumprogrammai, serverim un sakaru protokolam. Tālāk es sāku aprakstÄ«t, kādus komponentus vai bibliotēkas izmantoÅ”u, veidojot lietojumprogrammu. Un tad, pieminot Darba plānotāju, radās neskaidrÄ«bas. Lieta ir tāda, ka es to nekad neizmantoju praksē, jo tās izlaiÅ”anas brÄ«dÄ« es tikko biju pārgājis uz atbalsta lietojumprogrammām, kurās nebija uzdevumu tās lietoÅ”anai. Tas pats notika, izstrādājot nākamos. Tas ir, teorētiski es zinu, kas Ŕī ir, kad un kā to lieto, bet man nav pieredzes tās lietoÅ”anā. Un izskatÄ«jās, ka intervētājam tas Ä«paÅ”i nepatika. Tad viņi man lÅ«dza uzrakstÄ«t kodu. Jā, izstrādājot lietojumprogrammu, jums nekavējoties jāraksta kods. Atkal Android kods uz tāfeles. Tas atkal izrādÄ«jās biedējoÅ”i.

Pusdienas

Bija paredzēts, ka nāks citai personai, bet viņŔ to nedarÄ«ja. Un Google pieļauj kļūdas. Rezultātā es devos pusdienās pie iepriekŔējās intervētājas, viņas kolēģes, un nedaudz vēlāk pievienojās nākamais intervētājs. Pusdienas bija diezgan pieklājÄ«gas. Atkal, tā kā Å”is nav CÄ«rihes galvenais birojs, ēdamistaba izskatÄ«jās diezgan parasta, lai gan ļoti jauka.

Intervija numur ceturtā

Visbeidzot, algoritmi to tÄ«rākajā formā. Pirmo problēmu atrisināju diezgan ātri un uzreiz efektÄ«vi, lai gan vienu malas gadÄ«jumu palaidu garām, bet pēc intervētāja uzvednes (viņŔ iedeva tieÅ”i Å”o malas gadÄ«jumu) problēmu atradu un izlaboju. Protams, man bija jāuzraksta kods uz tāfeles. Tad tika dots lÄ«dzÄ«gs uzdevums, bet grÅ«tāks. Tam atradu pāris neoptimālus risinājumus un gandrÄ«z atradu optimālo, ar 5-10 minÅ«tēm nepietika, lai domu pabeigtu. Nu, man nebija laika uzrakstÄ«t kodu.

Intervija numur pieci

Un atkal Android intervija. Interesanti, kāpēc es visu gadu mācījos algoritmus?
Sākumā bija daži vienkārÅ”i jautājumi. Tad intervētājs uzrakstÄ«ja kodu uz tāfeles un lÅ«dza atrast tajā problēmas. Atrada, paskaidroja, salaboja. Apsprieda. Un tad sākās daži negaidÄ«ti jautājumi garā ā€œko dara Y metode klasē Xā€, ā€œkas ir Y metodēā€, ā€œko dara Z klaseā€. Protams, es kaut ko atbildēju, bet tad teicu, ka savā darbā ar to pēdējā laikā neesmu saskāries un, protams, neatceros sÄ«kāk, kurÅ” ko un kā dara. Pēc tam intervētājs jautāja, ko es tagad daru. Un jautājumi gāja par Å”o tēmu. Te jau atbildēju daudz labāk.

Pēc pēdējās intervijas beigām viņi paņēma manu caurlaidi, novēlēja veiksmi un aizsÅ«tÄ«ja mani ceļā. Nedaudz pastaigāju pa pilsētu, paēdu vakariņas un devos uz viesnÄ«cu, kur devos gulēt, jo lidojums atkal bija agrā rÄ«tā. Nākamajā dienā es droÅ”i ierados Kiprā. Pēc vervētāja lÅ«guma uzrakstÄ«ju atsauksmi par interviju un speciālā dienestā aizpildÄ«ju veidlapu, lai atgrieztu iztērēto naudu. No visiem izdevumiem Google tieÅ”i maksā tikai par biļetēm. ViesnÄ«cu, pārtiku un ceļojumus apmaksā kandidāts. Pēc tam aizpildām veidlapu, pievienojam čekus un nosÅ«tām uz speciālu biroju. Viņi to apstrādā un diezgan ātri pārskaita naudu uz kontu.

Intervijas rezultātu apstrāde aizņēma pusotru nedēļu. Pēc tam es tiku informēts, ka esmu "nedaudz zem joslas". Tas ir, man nedaudz pietrÅ«ka. Konkrētāk, 2 intervijas izdevās labi, 2 nedaudz ne tik labi, un sistēmas dizains ne pārāk labi. Tagad, ja vismaz 3 bÅ«tu gājis labi, tad mēs bÅ«tu varējuÅ”i konkurēt, citādi nav izredžu. Viņi piedāvāja atgriezties pēc gada.

Sākumā, protams, biju sarÅ«gtināts, jo lielas pÅ«les bija veltÄ«tas gatavoÅ”anai, un intervijas brÄ«dÄ« jau domāju par aizbraukÅ”anu no Kipras. PievienoÅ”anās Google un pārcelÅ”anās uz Å veici Ŕķita lieliska iespēja.

Secinājums

Un Å”eit mēs nonākam pie raksta beigu daļas. Jā, Google intervija man neizdevās divas reizes. Tas ir skumji. DroÅ”i vien bÅ«tu interesanti tur strādāt. Taču uz Å”o lietu var paskatÄ«ties no otras puses.

  • Pusotra gada laikā es uzzināju ļoti daudz lietu, kas saistÄ«tas ar programmatÅ«ras izstrādi.
  • Man bija ļoti jautri piedalÄ«ties programmÄ“Å”anas konkursos.
  • Es devos uz CÄ«rihi uz pāris dienām. Kad es tur atkal doÅ”os?
  • Man bija interesanta intervijas pieredze vienā no lielākajiem IT uzņēmumiem pasaulē.

Tādējādi visu, kas notika Å”o pusotru gadu, var vienkārÅ”i uzskatÄ«t par apmācÄ«bu vai apmācÄ«bu. Un Ŕīs apmācÄ«bas rezultāti lika par sevi manÄ«t. Mana ideja pamest Kipru brieda (dažu Ä£imenes apstākļu dēļ), veiksmÄ«gi izturēju vairākas intervijas ar citu pazÄ«stamu uzņēmumu un pēc 8 mēneÅ”iem pārcēlos uz dzÄ«vi. Bet tas ir pavisam cits stāsts. Tomēr domāju, ka man tomēr jāpateicas Google gan par pusotru gadu, ko pats nostrādāju, gan par 2 interesantajām dienām CÄ«rihē.

Ko es varu teikt beidzot? Ja strādājat IT jomā, sagatavojieties intervijām Google (Amazon, Microsoft, Apple utt.). VarbÅ«t kādreiz tu dosies tur, lai tur nokļūtu. Pat ja jÅ«s to nevēlaties, ticiet man, Ŕāda sagatavoÅ”anās nepadarÄ«s jÅ«s sliktāku. BrÄ«dÄ«, kad sapratÄ«sit, ka varat (pat ja tikai ar veiksmi) saņemt interviju ar kādu no Å”iem uzņēmumiem, jums bÅ«s atvērts daudz vairāk ceļu nekā pirms sagatavoÅ”anās sākÅ”anas. Un viss, kas jums nepiecieÅ”ams, ir mērÄ·is, neatlaidÄ«ba un laiks. Novēlu veiksmi :)

Avots: www.habr.com

Pievieno komentāru