{"id":52950,"date":"2019-11-20T00:00:00","date_gmt":"2019-11-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy"},"modified":"2020-02-18T14:00:46","modified_gmt":"2020-02-18T11:00:46","slug":"kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy","title":{"rendered":"Cum s\u0103 te preg\u0103te\u0219ti pentru un interviu la Google \u0219i s\u0103 nu-l treci. De dou\u0103 ori","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cum s\u0103 te preg\u0103te\u0219ti pentru un interviu la Google \u0219i s\u0103 nu-l treci. De dou\u0103 ori\" src=\"\/wp-content\/uploads\/2019\/11\/5bcaf7eb91486f2273b88f96aa4b6cb8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTitlul articolului sun\u0103 ca un e\u0219ec epic, dar, de fapt, lucrurile nu sunt at\u00e2t de clare. \u00cen general, aceast\u0103 poveste s-a \u00eencheiat destul de pozitiv, chiar dac\u0103 nu la Google. Dar aceasta este o alt\u0103 tem\u0103 pentru un alt articol. \u00cen acest articol, voi vorbi despre trei lucruri: cum a decurs procesul meu de preg\u0103tire, cum s-au desf\u0103\u0219urat interviurile la Google \u0219i de ce, din punctul meu de vedere, totul nu este at\u00e2t de simplu pe c\u00e2t ar p\u0103rea.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Cum a \u00eenceput totul<\/h2>\n<p>\n\u00centr-o sear\u0103 rece de iarn\u0103 cipriot\u0103, mi-a venit brusc \u00een minte g\u00e2ndul c\u0103 cuno\u0219tin\u021bele mele \u00een \u0219tiin\u021ba informaticii sunt foarte departe de a fi medii, \u0219i c\u0103 trebuie s\u0103 fac ceva \u00een leg\u0103tur\u0103 cu asta. Dac\u0103 cineva nu a citit de ce seara era cipriot\u0103 \u0219i rece, poate afla mai multe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/359090\/\"><u>aici<\/u><\/a><\/noindex>. Dup\u0103 ce am reflectat, am decis s\u0103 \u00eencep cu un curs online despre algoritmi \u0219i structuri de date. Am auzit de la un fost coleg despre cursul lui Robert Sedgewick de pe Coursera. Cursul este \u00eemp\u0103r\u021bit \u00een dou\u0103 p\u0103r\u021bi (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.coursera.org\/learn\/algorithms-part1\"><u>partea 1<\/u><\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.coursera.org\/learn\/algorithms-part2\"><u>partea 2<\/u><\/a><\/noindex>). Dac\u0103 linkurile se schimb\u0103, po\u021bi g\u0103si mereu pe Google dup\u0103 numele autorului. Fiecare parte dureaz\u0103 6 s\u0103pt\u0103m\u00e2ni. La \u00eenceputul s\u0103pt\u0103m\u00e2nii sunt prezentate lec\u021bii, iar \u00een decursul s\u0103pt\u0103m\u00e2nii trebuie s\u0103 finalizezi exerci\u021bii. Prima parte a cursului acoper\u0103 structuri de date de baz\u0103, principalele metode de sortare \u0219i complexitatea algoritmilor. A doua parte este deja mai avansat\u0103, \u00eencep\u00e2nd cu grafuri \u0219i termin\u00e2nd cu lucruri cum ar fi programarea liniar\u0103 \u0219i intractabilitatea. G\u00e2ndindu-m\u0103 la toate acestea, am ajuns la concluzia c\u0103 acesta este exact ceea ce am nevoie. Aici, de altfel, cititorul curio\u0219i ar putea \u00eentreba, ce leg\u0103tur\u0103 are asta cu Google. \u0218i, \u00eentr-adev\u0103r, p\u00e2n\u0103 \u00een acel moment, Google nu avea leg\u0103tur\u0103. Dar aveam nevoie de un obiectiv, deoarece s\u0103 lucrez 12 s\u0103pt\u0103m\u00e2ni seara f\u0103r\u0103 un scop era ceva mai complicat. \u0218i care ar putea fi scopul cunoa\u0219terii de noi informa\u021bii? Sigur, aplicarea lor \u00een practic\u0103. \u00cen via\u021ba de zi cu zi, acest lucru este destul de complicat, dar la un interviu la o companie mare este foarte simplu. O simpl\u0103 c\u0103utare pe Google a ar\u0103tat c\u0103 Google (\u00eemi cer scuze pentru tautologie) este una dintre cele mai mari companii din Europa (iar eu m\u0103 g\u00e2ndeam exact la Europa) \u00een care se desf\u0103\u0219oar\u0103 astfel de interviuri. De fapt, biroul lor se afl\u0103 la Z\u00fcrich, Elve\u021bia. A\u0219adar, decis: studiem \u0219i mergem la interviu la Google.<\/p>\n<h2>Preg\u0103tirea pentru prima \u00eencercare<\/h2>\n<p>\n12 s\u0103pt\u0103m\u00e2ni au trecut neobservate \u0219i am terminat ambele cursuri. Impresiile mele despre cursuri sunt mai mult dec\u00e2t pozitive \u0219i le pot recomanda tuturor interesat. Mi-au pl\u0103cut cursurile din urm\u0103toarele motive:<\/p>\n<ul>\n<li> Lectorul vorbe\u0219te un englez\u0103 destul de clar\u0103<\/li>\n<li> Materialul este bine structurat<\/li>\n<li> Prezent\u0103ri superbe, care arat\u0103 interiorul fiec\u0103rui algoritm<\/li>\n<li> Selec\u021bie corect\u0103 de material<\/li>\n<li> Exerci\u021bii interesante<\/li>\n<li> Exerci\u021biile sunt verificate automat pe site, dup\u0103 care se genereaz\u0103 un raport<\/li>\n<\/ul>\n<p>\nDe obicei, lucram la cursuri \u00een felul urm\u0103tor. \u00cen 1-2 zile ascultam lec\u021biile. Apoi d\u0103deam un test rapid pe cuno\u0219tin\u021bele acumulate. Restul s\u0103pt\u0103m\u00e2nii lucram la exerci\u021biu \u00een mai multe itera\u021bii. Dup\u0103 prima primiam \u00eentre 30% \u0219i 70%, urm\u0103toarele le duceau la 97-100%. Exerci\u021biul const\u0103, de obicei, \u00een implementarea unui algoritm, de exemplu <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Seam_carving\"><u>Seam carving<\/u><\/a><\/noindex> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bzip2\"><u>bzip<\/u><\/a><\/noindex>.<\/p>\n<p>Dup\u0103 finalizarea cursurilor mi-am dat seama c\u0103 multe cuno\u0219tin\u021be aduc multe dureri. Dac\u0103 \u00eenainte \u0219tiam doar c\u0103 nu \u0219tiu nimic, acum am \u00eenceput s\u0103 con\u0219tientizez ce anume nu \u0219tiu. <\/p>\n<p>Deoarece era \u00eenc\u0103 doar luna mai, iar interviul l-am programat pentru toamn\u0103, am decis s\u0103 continui educa\u021bia mea. Dup\u0103 ce am analizat cerin\u021bele postului, am decis s\u0103 continui pe dou\u0103 direc\u021bii: s\u0103 continui studierea algoritmilor \u0219i s\u0103 urmez un curs de baz\u0103 \u00een \u00eenv\u0103\u021barea automat\u0103. Pentru prima \u021bint\u0103 am decis s\u0103 fac tranzi\u021bia de la cursuri la carte \u0219i am ales opera monumental\u0103 a lui Steven Skiena \"Algoritmi. Ghid de dezvoltare\" (The Algorithm Design Manual). Nu e la fel de monumental ca al lui Knuth, dar totu\u0219i. Pentru a doua \u021bint\u0103, m-am \u00eentors pe Coursera \u0219i m-am \u00eenscris la cursul lui Andrew Ng <noindex><a rel=\"nofollow\" href=\"https:\/\/www.coursera.org\/learn\/machine-learning\">Machine Learning<\/a><\/noindex>.<\/p>\n<p>Au trecut \u00eenc\u0103 3 luni \u0219i am terminat cursul \u0219i cartea. <\/p>\n<p>S\u0103 \u00eencepem cu cartea. Lectura s-a dovedit a fi destul de interesant\u0103, de\u0219i nu tocmai simpl\u0103. \u00cen principiu, a\u0219 recomanda cartea, dar nu a\u0219a, dintr-o dat\u0103. Per ansamblu, cartea ofer\u0103 o analiz\u0103 mai profund\u0103 a ceea ce am \u00eenv\u0103\u021bat \u00een cursuri. \u00cen plus, am descoperit (dintr-o perspectiv\u0103 formal\u0103) concepte precum euristica \u0219i programarea dinamic\u0103. E clar c\u0103 le-am folosit anterior, dar nu \u0219tiam cum se numesc. De asemenea, cartea con\u021bine o serie de pove\u0219ti din via\u021ba autorului (War Story), care adaug\u0103 un strop de culoare narativului academic. A doua jum\u0103tate a c\u0103r\u021bii poate fi s\u0103rit\u0103, deoarece se concentreaz\u0103 mai degrab\u0103 pe descrierea problemelor existente \u0219i a metodelor de solu\u021bionare. Este util\u0103 dac\u0103 este aplicat\u0103 regulat \u00een practic\u0103, altfel se va uita rapid.<\/p>\n<p>Cursul m-a impresionat foarte mult. Autorul \u0219tie clar ce face \u0219i poveste\u0219te \u00eentr-un mod interesant. \u00cen plus, am re\u021binut o parte considerabil\u0103, \u0219i anume algebra liniar\u0103 \u0219i bazele re\u021belelor neuronale, \u00eenc\u0103 din facultate, astfel c\u0103 nu am \u00eent\u00e2mpinat dificult\u0103\u021bi. Structura cursului este destul de standard. Cursul este \u00eemp\u0103r\u021bit pe s\u0103pt\u0103m\u00e2ni. \u00cen fiecare s\u0103pt\u0103m\u00e2n\u0103, mai \u00eent\u00e2i au loc prelegeri intercalate cu teste scurte. Dup\u0103 prelegeri se d\u0103 o sarcin\u0103, care trebuie finalizat\u0103, trimis\u0103 \u0219i va fi verificat\u0103 automat. Pe scurt, lista temelor predate \u00een cadrul cursului este urm\u0103toarea:<br \/>\n \u2014 func\u021bia de cost<br \/>\n \u2014 regresia liniar\u0103<br \/>\n \u2014 cobor\u00e2rea gradientului<br \/>\n \u2014 scalarea caracteristicilor<br \/>\n \u2014 ecua\u021bia normal\u0103<br \/>\n \u2014 regresia logistic\u0103<br \/>\n \u2014 clasificarea multiclas\u0103 (unu vs toate)<br \/>\n \u2014 re\u021bele neuronale<br \/>\n \u2014 propagarea invers\u0103<br \/>\n \u2014 regularizare<br \/>\n \u2014 bias\/varian\u021b\u0103<br \/>\n \u2014 curbe de \u00eenv\u0103\u021bare<br \/>\n \u2014 metrice de eroare (precizie, revenire, F1)<br \/>\n \u2014 Ma\u0219ini cu vectori de suport (clasificare cu marj\u0103 mare)<br \/>\n \u2014 K-means<br \/>\n \u2014 Analiza componentelor principale<br \/>\n \u2014 detectarea anomaliilor<br \/>\n \u2014 filtrare colaborativ\u0103 (sistem de recomandare)<br \/>\n \u2014 cobor\u00e2rea gradientului stochastic, mini-batch, batch<br \/>\n \u2014 \u00eenv\u0103\u021bare online<br \/>\n \u2014 map reduce<br \/>\n \u2014 analiza plafonului<br \/>\nDup\u0103 terminarea cursului, \u00een\u021belegerea tuturor acestor subiecte a fost prezent\u0103. Dup\u0103 2 ani, aproape totul s-a uitat natural. Recomand celor care nu sunt familiariza\u021bi cu \u00eenv\u0103\u021barea automat\u0103 \u0219i doresc s\u0103 ob\u021bin\u0103 o bun\u0103 \u00een\u021belegere a conceptelor de baz\u0103 pentru a avansa.<\/p>\n<h2>Prima \u00eencercare<\/h2>\n<p>\nEra deja septembrie \u0219i a venit timpul s\u0103 m\u0103 g\u00e2ndesc la interviu. Deoarece a aplica prin intermediul site-ului era un lucru destul de riscant, am \u00eenceput s\u0103 caut cunoscu\u021bi care lucreaz\u0103 la Google. Am ales <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/datacompboy\/\" class=\"user_link\">datacompboy<\/a><\/noindex>, deoarece el a fost singurul pe care l-am cunoscut personal (chiar dac\u0103 nu direct). A fost de acord s\u0103-mi transmit\u0103 CV-ul, iar \u00een cur\u00e2nd am primit un mesaj de la recrutor, care mi-a oferit s\u0103 rezerv un slot \u00een calendarul s\u0103u pentru prima conversa\u021bie. Dup\u0103 c\u00e2teva zile, ne-am auzit. Am \u00eencercat s\u0103 comunic\u0103m prin Hangouts, dar calitatea a fost \u00eengrozitoare, a\u0219a c\u0103 ne-am mutat pe telefon. La \u00eenceput, am discutat rapid despre \u00eentreb\u0103rile standard de tipul cum, de ce \u0219i pentru ce, iar apoi am trecut la screening-ul tehnic. Acesta a constat \u00een zeci de \u00eentreb\u0103ri de tipul \u201ecare este complexitatea inser\u0103rii \u00eentr-un hash map\u201d, \u201ece tipuri de arbori echilibra\u021bi cuno\u0219ti\u201d. Nu este greu, dac\u0103 ai cuno\u0219tin\u021be de baz\u0103 despre aceste lucruri. Screening-ul a decurs bine \u0219i, \u00een urma acestuia, am decis s\u0103 organiz\u0103m primul interviu \u00een aproximativ o s\u0103pt\u0103m\u00e2n\u0103. <\/p>\n<p>Interviul a avut loc tot prin Hangouts. La \u00eenceput, am discutat c\u00e2teva minute despre mine, apoi am trecut la problem\u0103. Problema a fost legat\u0103 de grafuri. Am \u00een\u021beles rapid ce trebuie s\u0103 fac, dar am ales un algoritm gre\u0219it. C\u00e2nd am \u00eenceput s\u0103 scriu codul, mi-am dat seama de asta \u0219i m-am schimbat pe o alt\u0103 variant\u0103, pe care am finalizat-o. Intervievatorul a pus c\u00e2teva \u00eentreb\u0103ri despre complexitatea algoritmului \u0219i a \u00eentrebat dac\u0103 se poate face mai repede. Cumva, m-am blocat \u0219i nu am reu\u0219it. Asta a fost, iar timpul a expirat \u0219i ne-am desp\u0103r\u021bit. Dup\u0103 aproximativ 10 minute, mi-am dat seama c\u0103, \u00een loc de algoritmul lui Dijkstra pe care l-am folosit, \u00een aceast\u0103 problem\u0103 s-ar fi putut folosi c\u0103utarea \u00een l\u0103\u021bime, ceea ce ar fi fost mai rapid. Dup\u0103 o vreme, recrutorul m-a sunat \u0219i mi-a spus c\u0103 interviul, \u00een general, a decurs bine \u0219i c\u0103 ar fi bine s\u0103 organiz\u0103m unul nou. Ne-am \u00een\u021beles pentru \u00eenc\u0103 unul \u00een aproximativ o s\u0103pt\u0103m\u00e2n\u0103.<\/p>\n<p>De data aceasta, lucrurile au mers mai prost. Dac\u0103 prima dat\u0103 intervievatorul a fost prietenos \u0219i comunicativ, de aceast\u0103 dat\u0103 a fost oarecum sumbru. Problema nu am reu\u0219it s\u0103 o \u00een\u021beleg imediat, de\u0219i ideile pe care le-am avut ar fi putut conduce \u00een principiu la o solu\u021bie. \u00cen cele din urm\u0103, dup\u0103 c\u00e2teva sugestii din partea intervievatorului, am ajuns la o solu\u021bie. De data aceasta, a fost din nou vorba de o c\u0103utare \u00een l\u0103\u021bime, doar c\u0103 din mai multe puncte. Am scris solu\u021bia, m-am \u00eencadrat \u00een timp, dar am uitat de cazurile limit\u0103. Dup\u0103 un timp, m-a sunat recrutorul \u0219i m-a informat c\u0103 de data aceasta intervievatorul a r\u0103mas nemul\u021bumit, deoarece, \u00een opinia sa, am avut nevoie de prea multe sugestii (3 sau 4) \u0219i am modificat constant codul \u00een timpul scrierii. Ca urmare a celor dou\u0103 interviuri, s-a luat decizia de a nu continua \u0219i de a am\u00e2na urm\u0103torul interviu pentru un an, dac\u0103 voi avea dorin\u021ba. Aici ne-am \u0219i desp\u0103r\u021bit. <\/p>\n<p>Din aceast\u0103 poveste, am tras c\u00e2teva concluzii:<\/p>\n<ul>\n<li> Teoria este bun\u0103, dar trebuie s\u0103 te descurci rapid \u00een ea.<\/li>\n<li> Teoria f\u0103r\u0103 practic\u0103 nu ajut\u0103. Trebuie s\u0103 rezolvi probleme \u0219i s\u0103 duci scrierea codului la automatism.<\/li>\n<li> Multe depind de intervievator. \u0218i cu asta nu se poate face nimic.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Preg\u0103tirea pentru a doua \u00eencercare<\/h2>\n<p>\nReflect\u00e2nd asupra situa\u021biei, am decis s\u0103 \u00eencerc din nou peste un an. \u0218i am ajustat u\u0219or obiectivul. Dac\u0103 mai devreme obiectivul principal era studiul, iar interviul la Google ca o morcov\u0103 \u00eendep\u0103rtat\u0103, acum sus\u021binerea interviului era scopul, iar studiul era un mijloc.<br \/>\nA\u0219adar, a fost elaborat un nou plan, care includea urm\u0103toarele puncte:<\/p>\n<ul>\n<li> Continua\u021bi s\u0103 studia\u021bi teoria citind c\u0103r\u021bi \u0219i articole.<\/li>\n<li> Solu\u021biona\u021bi sarcini algoritmice \u00een num\u0103r de 500-1000 de piese.<\/li>\n<li> Continua\u021bi s\u0103 studia\u021bi teoria vizion\u00e2nd videoclipuri.<\/li>\n<li> Continua\u021bi s\u0103 studia\u021bi teoria prin cursuri.<\/li>\n<li> Studia\u021bi experien\u021ba altor oameni \u00een sus\u021binerea interviurilor la Google.<\/li>\n<\/ul>\n<p>\nPlanul a fost realizat de mine \u00een decursul unui an. Mai departe, voi descrie ce am f\u0103cut exact pentru fiecare dintre puncte.<\/p>\n<h4>C\u0103r\u021bi \u0219i articole<\/h4>\n<p>\nNum\u0103rul de articole citite nu \u00eemi amintesc nici acum, le-am citit at\u00e2t \u00een rus\u0103, c\u00e2t \u0219i \u00een englez\u0103. Cel mai util site a fost, probabil, <noindex><a rel=\"nofollow\" href=\"http:\/\/e-maxx.ru\/algo\/\"><u>acesta<\/u><\/a><\/noindex>. Aici este adunat\u0103 descrierea unui num\u0103r mare de algoritmi interesan\u021bi, cu exemple de cod.<\/p>\n<p>Am citit 5 c\u0103r\u021bi: Algorithms, edi\u021bia a 4-a (Sedgewick, Wayne), Introduction to Algorithms, edi\u021bia a 3-a (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview, edi\u021bia a 4-a (Gayle Laakmann), Programming Interviews Exposed, edi\u021bia a 2-a (Mongan, Suojanen, Giguere), Elements of Programming Interviews (Aziz, Lee, Prakash). Acestea pot fi \u00eemp\u0103r\u021bite \u00een 2 categorii. \u00cen prima intr\u0103 c\u0103r\u021bile lui Sedgewick \u0219i Cormen. Acestea sunt teoretice. Celelalte sunt pentru preg\u0103tirea interviului. Sedgewick explic\u0103 \u00een carte ceea ce pred\u0103 \u0219i \u00een cursurile sale. Doar c\u0103 este \u00een format scris. Nu are prea mult sens s\u0103 cite\u0219ti cu aten\u021bie dac\u0103 ai urmat cursul, dar merit\u0103 s\u0103 dai o privire. Dac\u0103 nu ai urm\u0103rit cursul, atunci are sens s\u0103 o cite\u0219ti. Mie Cormen mi s-a p\u0103rut prea plictisitor. Am \u00eenvins, sincer spus, cu greu. Am re\u021binut doar <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Master_theorem_(analysis_of_algorithms)\"><u>teorema st\u0103p\u00e2nului<\/u><\/a><\/noindex>, da \u0219i c\u00e2teva structuri de date mai pu\u021bin folosite (Fibonacci heap, van Emde Boas tree, radix heap).<\/p>\n<p>Merit\u0103 s\u0103 cite\u0219ti cel pu\u021bin o carte pentru preg\u0103tirea interviului. Toate sunt construite dup\u0103 un principiu similar. Descriu procesul interviului \u00een mari companii de tehnologie, ofer\u0103 concepte de baz\u0103 din Computer Science, probleme legate de aceste concepte de baz\u0103, solu\u021bii pentru probleme \u0219i analiza solu\u021biilor. Dintre cele trei men\u021bionate, probabil a\u0219 recomanda Cracking the Coding Interview ca fiind principal\u0103, iar celelalte dup\u0103 dorin\u021b\u0103.<\/p>\n<h4>Probleme algoritmice<\/h4>\n<p>\nAcesta a fost probabil cel mai interesant aspect al preg\u0103tirii. Poate, desigur, s\u0103 stai \u0219i s\u0103 rezolvi problemele \u00een mod brut. Exist\u0103 multe site-uri pentru asta. Eu am folosit \u00een principal trei: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hackerrank.com\"><u>Hackerrank<\/u><\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codechef.com\/\"><u>CodeChef<\/u><\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/leetcode.com\/\"><u>LeetCode<\/u><\/a><\/noindex>. Pe CodeChef problemele sunt clasificate dup\u0103 dificultate, dar nu \u0219i dup\u0103 teme. Pe Hackerrank sunt clasificate at\u00e2t dup\u0103 dificultate, c\u00e2t \u0219i dup\u0103 teme. <\/p>\n<p>Dar, a\u0219a cum am descoperit imediat pentru mine, exist\u0103 o modalitate mai interesant\u0103. \u0218i aceasta este competi\u021bia (programming challenges sau programming contests). Toate cele trei site-uri ofer\u0103 a\u0219a ceva. Totu\u0219i, cu LeetCode exist\u0103 o problem\u0103 - fusul orar inconfortabil. De aceea nu am participat pe acest site. Hackerrank \u0219i CodeChef ofer\u0103 o varietate destul de mare de competi\u021bii, cu o durat\u0103 de la 1 or\u0103 p\u00e2n\u0103 la 10 zile. Diferitele formate au reguli diferite, dar asta ar putea fi o discu\u021bie lung\u0103. Esen\u021ba principal\u0103, de ce competi\u021biile sunt bune, este introducerea unui element competi\u021bional (\u0219i din nou tautologie) \u00een procesul de \u00eenv\u0103\u021bare.<\/p>\n<p>\u00cen total, am participat la 37 de competi\u021bii pe Hackerrank. Dintre acestea, 32 au fost competi\u021bii cu rating, iar 5 au fost sponsorizate (am c\u00e2\u0219tigat chiar 25$ \u00een una dintre ele) sau doar pentru distrac\u021bie. \u00cen competi\u021biile cu rating, am intrat de 10 ori \u00een top 4%, de 11 ori \u00een top 12% \u0219i de 5 ori \u00een top 25%. Cele mai bune rezultate au fost 27\/1459 \u00een cadrul unei competi\u021bii de 3 ore \u0219i 22\/9721 \u00een cadrul unei competi\u021bii s\u0103pt\u0103m\u00e2nale.<\/p>\n<p>Am trecut pe CodeChef atunci c\u00e2nd competi\u021biile pe Hackerrank au devenit mai rare. \u00cen total, am reu\u0219it s\u0103 particip la 5 competi\u021bii. Cel mai bun rezultat a fost 426\/5019 \u00een cadrul unei competi\u021bii de zece zile.<\/p>\n<p>\u00cen total, la competi\u021bii \u0219i doar a\u0219a, am reu\u0219it s\u0103 rezolv pu\u021bin peste 1000 de probleme, ceea ce se \u00eencadra \u00een planul meu. Acum, din p\u0103cate, nu am timp liber pentru a continua activitatea de competi\u021bie, la fel cum nu am un obiectiv sub care s\u0103 pot \u00eencadra timpul meu ocupat. Dar a fost distractiv. Recomand celor care sunt interesa\u021bi s\u0103 g\u0103seasc\u0103 alte persoane cu acelea\u0219i pasiuni. \u00cempreun\u0103 sau \u00een grup este mult mai interesant. Eu m-am distrat cu un prieten, a\u0219a c\u0103 poate de aceea a \u0219i mers at\u00e2t de bine.<\/p>\n<h4>Redare video<\/h4>\n<p>\nDup\u0103 ce am citit cartea lui Skiena, m-am interesat de domeniul \u00een care activeaz\u0103. Ca \u0219i Sedgwick, el este profesor la universitate. Din acest motiv, pe internet se pot g\u0103si \u00eenregistr\u0103ri video ale cursurilor sale. Am decis s\u0103 vizionez cursul <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PL07B3F10B48592010\"><u>COMP300E \u2014 Provoc\u0103ri de programare \u2014 2009 HKUST<\/u><\/a><\/noindex>. Nu pot spune c\u0103 mi-a pl\u0103cut foarte mult. Pe de o parte, calitatea video nu era foarte bun\u0103. Pe de alt\u0103 parte, nu am \u00eencercat s\u0103 rezolv singur problemele discutate \u00een cadrul cursului. A\u0219a c\u0103 implicarea mea a fost destul de sc\u0103zut\u0103.<br \/>\nDe asemenea, \u00een procesul de rezolvare a problemelor, \u00eencerc\u00e2nd s\u0103 g\u0103sesc algoritmul corect, am dat peste videoclipurile lui Tushar Roy. El a lucrat la Amazon \u0219i acum lucreaz\u0103 la Apple. A\u0219a cum am aflat mai t\u00e2rziu, el are <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/user\/tusharroy2525\/videos\">canalul de YouTube<\/a><\/noindex>, unde posteaz\u0103 analize ale diferitelor algoritmi. La momentul scrierii acestui articol, canalul con\u021binea 103 videoclipuri. \u0218i trebuie s\u0103 spun c\u0103 analiza realizat\u0103 de el este foarte bine f\u0103cut\u0103. Am \u00eencercat s\u0103 m\u0103 uit la al\u021bi autori, dar nu mi-au pl\u0103cut. A\u0219a c\u0103, acest canal \u00eel recomand cu certitudine pentru vizionare.<\/p>\n<h4>Participarea la cursuri<\/h4>\n<p>\n\u00cen acest domeniu nu am f\u0103cut nimic deosebit. Am vizionat videoclipuri din Android Developer Nanodegree de la Google \u0219i am urmat un curs de la ITMO <noindex><a rel=\"nofollow\" href=\"https:\/\/www.edx.org\/course\/how-to-win-coding-competitions-secrets-of-champions\">Cum s\u0103 c\u00e2\u0219tigi competi\u021bii de programare: secretele campionilor<\/a><\/noindex>. Nanodegree este destul de bun, de\u0219i, evident, nu am \u00eenv\u0103\u021bat nimic nou de acolo. Cursul de la ITMO are pu\u021bin o teorie \u00eengr\u0103m\u0103dit\u0103, dar cerin\u021bele au fost interesante. Nu a\u0219 recomanda s\u0103 \u00eenceap\u0103 cu acesta, dar, \u00een principiu, timpul petrecut nu a fost irosit.<\/p>\n<h4>Aproape toate acestea sunt pentru a \u00eenv\u0103\u021ba din experien\u021ba altora.<\/h4>\n<p>\nDesigur, mul\u021bi oameni au \u00eencercat s\u0103 ajung\u0103 la Google. Unii au reu\u0219it, al\u021bii nu. Unii au scris articole despre asta. Din lucrurile interesante a\u0219 sublinia <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwasham\/coding-interview-university\">aceasta<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"http:\/\/larrr.com\/wp-content\/uploads\/2016\/10\/InterviewPreparationGuide.pdf\">aceasta<\/a><\/noindex>. \u00cen primul caz, persoana \u0219i-a preg\u0103tit o list\u0103 cu ceea ce trebuie s\u0103 \u00eenve\u021be pentru a deveni Software Engineer \u0219i a ajunge la Google. P\u00e2n\u0103 la urm\u0103, a ajuns la Amazon, dar asta nu mai conteaz\u0103 at\u00e2t de mult. Al doilea manual este scris de inginerul Google, Larisa Agarova (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/larrr\/\" class=\"user_link\">Larrr<\/a><\/noindex>). Pe l\u00e2ng\u0103 acest document, po\u021bi citi \u0219i <noindex><a rel=\"nofollow\" href=\"http:\/\/larrr.com\/\">blogul ei<\/a><\/noindex>.<\/p>\n<p>Are sens s\u0103 cite\u0219ti recenziile despre interviuri pe Glassdoor. Toate sunt mai mult sau mai pu\u021bin asem\u0103n\u0103toare, dar po\u021bi extrage informa\u021bii utile.<\/p>\n<p>Nu voi face referiri la alte articole mai mici, le pute\u021bi g\u0103si singuri pe Google. <\/p>\n<h2>Al doilea \u00eencercare<\/h2>\n<p>\n\u0218i iat\u0103 c\u0103 a trecut un an. A fost un an plin \u00een ceea ce prive\u0219te studiul. Dar cu noua toamn\u0103 m\u0103 preg\u0103team cu cuno\u0219tin\u021be teoretice mult mai profunde \u0219i abilit\u0103\u021bi practice bine exersate. Cu c\u00e2teva s\u0103pt\u0103m\u00e2ni \u00eenainte de termenul stabilit pentru preg\u0103tire, am primit un e-mail de la un recrutor de la Google, \u00een care m\u0103 \u00eentreba dac\u0103 mai am dorin\u021ba de a lucra la Google \u0219i dac\u0103 sunt de acord s\u0103 discut cu el. Evident, am fost de acord. Ne-am \u00een\u021beles s\u0103 ne auzim prin telefon peste o s\u0103pt\u0103m\u00e2n\u0103. De asemenea, mi-au solicitat un CV actualizat, la care am ad\u0103ugat un scurt rezumat al realiz\u0103rilor mele din anul respectiv la locul de munc\u0103.<\/p>\n<p>Dup\u0103 discu\u021bia despre via\u021b\u0103, am decis c\u0103 peste o s\u0103pt\u0103m\u00e2n\u0103 va avea loc un interviu pe Hangouts, ca \u0219i anul trecut. A trecut s\u0103pt\u0103m\u00e2na, a venit timpul interviului, dar intervievatorul nu a ap\u0103rut. A trecut 10 minute, deja \u00eencepeam s\u0103 m\u0103 nelini\u0219tesc, c\u00e2nd dintr-o dat\u0103 cineva a intrat \u00een chat. A\u0219a cum am aflat mai t\u00e2rziu, intervievatorul meu, dintr-un motiv oarecare, nu a putut s\u0103 apar\u0103 \u0219i i-au g\u0103sit rapid un \u00eenlocuitor. Persoana nu era foarte preg\u0103tit\u0103 nici \u00een ceea ce prive\u0219te configurarea computerului, nici \u00een ceea ce prive\u0219te conducerea interviului. Dar apoi totul a decurs bine. Am rezolvat rapid problema, am explicat unde pot ap\u0103rea capcane \u0219i cum le pot ocoli. Am discutat despre diferite variante ale problemei \u0219i complexitatea algoritmului. Apoi am mai vorbit timp de 5 minute, inginerul a \u00eemp\u0103rt\u0103\u0219it impresiile lui despre munca \u00een M\u00fcnchen (pare-se c\u0103 \u00een Zurich nu au g\u0103sit urgent un \u00eenlocuitor), \u0219i asta a fost.<\/p>\n<p>\u00cen aceea\u0219i zi, m-a contactat un recrutor care mi-a spus c\u0103 interviul a decurs excelent \u0219i c\u0103 sunt preg\u0103ti\u021bi s\u0103 m\u0103 invite la un interviu la birou. A doua zi ne-am auzit prin Hangouts \u0219i am discutat detalii. Deoarece trebuia s\u0103 \u00eemi fac viz\u0103, am decis s\u0103 program\u0103m interviul peste o lun\u0103. <\/p>\n<p>\u00cen timp ce preg\u0103team documentele, discutam cu recrutorul despre interviul care urma. Interviul standard la Google const\u0103 din 4 \u00eentreb\u0103ri algoritmice \u0219i un System Design. Totu\u0219i, av\u00e2nd \u00een vedere c\u0103 m\u0103 angajam ca dezvoltator Android, mi s-a spus c\u0103 o parte din interviu va fi specific\u0103 Android. Care vor fi exact \u0219i \u00een ce va consta specificitatea, nu am reu\u0219it s\u0103 scot din recrutor. Din c\u00e2te am \u00een\u021beles, aceasta a fost introdus\u0103 relativ recent \u0219i el \u00eensu\u0219i nu era foarte la curent. Am fost, de asemenea, programat pentru dou\u0103 sesiuni de antrenament: cum s\u0103 trec interviul algoritmic \u0219i cum s\u0103 trec interviul System Design. Sesiunile au fost de utilitate medie. Nici acolo nimeni nu a putut s\u0103-mi explice ce \u00eentreb\u0103ri primesc dezvoltatorii Android. A\u0219adar, preg\u0103tirea mea \u00een aceast\u0103 lun\u0103 s-a rezumat la urm\u0103toarele:<\/p>\n<ul>\n<li>Cump\u0103rarea unui tablou alb \u0219i scrierea din memorie a 2-3 zeci dintre cele mai populare algoritmi. C\u00e2te 3-5 pe zi. \u00cen total, fiecare a fost scris de mai multe ori.<\/li>\n<li>Re\u00eemprosp\u0103tarea memoriei cu diverse informa\u021bii despre Android pe care nu le folosesc \u00een fiecare zi.<\/li>\n<li>Vizionarea unor videoclipuri despre Big Scale \u0219i tot a\u0219a.<\/li>\n<\/ul>\n<p>\nA\u0219a cum am men\u021bionat anterior, am lucrat \u00een paralel la documentele pentru c\u0103l\u0103torie. La \u00eenceput, mi s-au cerut datele pentru a face o scrisoare de invita\u021bie. Apoi, am \u00eencercat mult timp s\u0103 aflu cine pe Cipru emite vize pentru Elve\u021bia, deoarece ambasada elve\u021bian\u0103 nu se ocup\u0103 cu asta. A\u0219a am aflat c\u0103 acest lucru este gestionat de consulatul Austriei. Am sunat \u0219i m-am programat. Acolo m-au solicitat o gr\u0103mad\u0103 de documente, dar nimic deosebit. Fotografie, pa\u0219aport, permis de \u0219edere, o mul\u021bime de certificate diferite \u0219i, desigur, scrisoarea de invita\u021bie. \u00centre timp, scrisoarea nu a sosit. \u00cen cele din urm\u0103, am mers cu o versiune imprimat\u0103 obi\u0219nuit\u0103 \u0219i aceasta a func\u021bionat destul de bine. Scrisoarea a ajuns abia dup\u0103 3 zile, iar cei de la FedEx din Cipru nu au reu\u0219it s\u0103 g\u0103seasc\u0103 adresa mea, a\u0219a c\u0103 a trebuit s\u0103 m\u0103 duc s\u0103 o iau personal. Totodat\u0103, am ridicat de la acela\u0219i FedEx un colet pe care nu mi l-au putut livra, deoarece nu au g\u0103sit adresa, iar acesta a stat acolo din luna iunie (5 luni, Carl). Deoarece eu nu aveam idee de el, desigur, nu am presupus c\u0103 \u00eel au. Am ob\u021binut viza la timp, iar apoi mi-au rezervat un hotel \u0219i mi-au oferit op\u021biuni pentru zbor. Am ajustat op\u021biunile pentru a fi mai convenabile. Nu mai erau zboruri directe, a\u0219a c\u0103 am zburat acolo prin Atena \u0219i \u00eenapoi prin Viena.<\/p>\n<p>Dup\u0103 ce toate formalit\u0103\u021bile pentru c\u0103l\u0103torie au fost rezolvate, au trecut c\u00e2teva zile, iar eu am plecat efectiv spre Zurich. Am ajuns f\u0103r\u0103 aventuri. De la aeroport p\u00e2n\u0103 \u00een ora\u0219 am luat trenul \u2014 rapid \u0219i convenabil. Dup\u0103 ce m-am r\u0103t\u0103cit pu\u021bin prin ora\u0219, am g\u0103sit hotelul \u0219i m-am cazat. Deoarece hotelul era rezervat f\u0103r\u0103 mas\u0103, am luat cina \u00een apropiere \u0219i am adormit, fiindc\u0103 zborul era diminea\u021ba \u0219i deja m\u0103 sim\u021beam obosit. A doua zi, am luat micul dejun la hotel (contra cost) \u0219i m-am \u00eendreptat spre biroul Google. \u00cen Zurich, Google are c\u00e2teva birouri. Interviul meu nu era la cel central. De fapt, biroul ar\u0103ta destul de obi\u0219nuit, astfel c\u0103 nu am avut ocazia s\u0103 v\u0103d toate avantajele unui \u201ebirou normal\u201d Google. M-am \u00eenregistrat la administrator \u0219i am a\u0219teptat. Dup\u0103 un timp, a ie\u0219it un recrutor \u0219i mi-a explicat planul zilei, dup\u0103 care m-a dus \u00een camera unde urmau s\u0103 se desf\u0103\u0219oare interviurile. \u00cen plan erau 3 interviuri, pr\u00e2nzul \u0219i \u00eenc\u0103 2 interviuri.<\/p>\n<h4>Interviul num\u0103rul unu<\/h4>\n<p>\nPrimul interviu a fost pe Android. \u0218i, din p\u0103cate, nu a avut deloc leg\u0103tur\u0103 cu algoritmii. O surpriz\u0103, totu\u0219i. Dar hai s\u0103 trecem peste, a\u0219a e mai obi\u0219nuit. Mi s-a cerut s\u0103 realizez un anumit component UI. Mai \u00eent\u00e2i am discutat despre ce \u0219i cum. Am propus o solu\u021bie folosind RxJava, descriind ce anume \u0219i de ce a\u0219 face. Mi s-a spus c\u0103 este bine, dar s\u0103 facem cu instrumentele framework-ului Android. \u0218i s\u0103 scriem codul pe tabl\u0103. De fapt, nu doar componenta, ci \u00eentreaga activitate care folose\u0219te acest component. La a\u0219a ceva nu am fost preg\u0103tit. E o treab\u0103 s\u0103 scrii pe tabl\u0103 un algoritm de 30-50 de linii, iar alta s\u0103 scrii cod Android, chiar \u0219i cu scurt\u0103turi \u0219i comentarii de genul \u201eei bine, asta nu o voi scrie, c\u0103 e evident\u201d. A ie\u0219it un fel de salat\u0103 pe 3 table. Adic\u0103, am rezolvat sarcina, dar a ar\u0103tat ciudat.<\/p>\n<h4>Interviul num\u0103rul doi<\/h4>\n<p>\nDe data aceasta interviul a fost despre algoritmi. \u0218i au fost doi intervievatori. Unul era, de fapt, intervievatorul, iar cel\u0103lalt era un t\u00e2n\u0103r padawan (intervievator ascuns). Trebuia s\u0103 inventez o structur\u0103 de date cu anumite propriet\u0103\u021bi. La \u00eenceput, ca de obicei, am discutat problema. Am pus diferite \u00eentreb\u0103ri, intervievatorul a r\u0103spuns. Dup\u0103 un timp, mi s-a cerut s\u0103 scriu c\u00e2teva metode ale structurii inventate pe tabl\u0103. De data aceasta, mai mult sau mai pu\u021bin, am reu\u0219it, chiar dac\u0103 cu c\u00e2teva gre\u0219eli mici pe care le-am corectat cu ajutorul intervievatorului. <\/p>\n<h4>Interviul num\u0103rul trei<\/h4>\n<p>\nDe data aceasta a fost un Design de Sistem, care dintr-o dat\u0103 s-a dovedit a fi \u0219i Android. Trebuia s\u0103 dezvolt o aplica\u021bie cu anumite func\u021bionalit\u0103\u021bi. Am discutat cerin\u021bele pentru aplica\u021bie, pentru server, pentru protocolul de comunicare. Apoi am \u00eenceput s\u0103 descriu ce componente sau biblioteci a\u0219 folosi pentru construirea aplica\u021biei. Apoi, c\u00e2nd a fost men\u021bionat Job Scheduler, am avut o mic\u0103 blocare. Ideea este c\u0103 nu l-am folosit niciodat\u0103 \u00een practic\u0103, pentru c\u0103 \u00een momentul \u00een care a ap\u0103rut, m-am mutat pe suportul aplica\u021biilor unde nu erau sarcini pentru utilizarea lui. La dezvoltarea ulterioare a fost la fel. Adic\u0103, \u0219tiu teoretic ce e \u0219i cum se aplic\u0103, dar nu am experien\u021b\u0103 \u00een aplicare. \u0218i se pare c\u0103 asta nu i-a pl\u0103cut foarte mult intervievatorului. Apoi mi s-a cerut s\u0103 scriu cod. Da, la dezvoltarea aplica\u021biei trebuie s\u0103 scrii direct cod. Din nou, cod Android pe tabl\u0103. A ie\u0219it iar ciudat.<\/p>\n<h4>Pr\u00e2nz<\/h4>\n<p>\nAr fi trebuit s\u0103 vin\u0103 o alt\u0103 persoan\u0103, dar nu a venit. Chiar \u0219i Google mai gre\u0219e\u0219te uneori. \u00cen final, am ie\u0219it la pr\u00e2nz cu intervievatorul anterior, colegul ei, \u0219i pu\u021bin mai t\u00e2rziu s-a al\u0103turat urm\u0103torul intervievator. Pr\u00e2nzul a fost destul de decent. Din nou, av\u00e2nd \u00een vedere c\u0103 nu era sediul principal din Zurich, cantina ar\u0103ta destul de obi\u0219nuit\u0103, de\u0219i foarte pl\u0103cut\u0103.<\/p>\n<h4>Interviul num\u0103rul patru<\/h4>\n<p>\n\u00cen sf\u00e2r\u0219it, algoritmi \u00een form\u0103 pur\u0103. Prima problem\u0103 am rezolvat-o destul de repede \u0219i eficient, de\u0219i am gre\u0219it cu un caz limit\u0103, dar cu ajutorul intervievatorului (el a oferit acest caz limit\u0103) am g\u0103sit problema \u0219i am corectat-o. Normal, trebuia s\u0103 scriu codul pe tabl\u0103. Apoi mi s-a dat o problem\u0103 similar\u0103, dar mai complex\u0103. Pentru aceasta am g\u0103sit c\u00e2teva solu\u021bii neoptimizate \u0219i aproape am g\u0103sit solu\u021bia optim\u0103, nu mi-au fost suficiente 5-10 minute pentru a finaliza g\u00e2ndirea. \u0218i nu am reu\u0219it s\u0103 scriu codul pentru aceasta.<\/p>\n<h4>Interviul num\u0103rul cinci<\/h4>\n<p>\n\u0218i din nou interviu pe Android. M\u0103 \u00eentreb de ce am studiat algoritmii toat\u0103 anul?<br \/>\nLa \u00eenceput au fost c\u00e2teva \u00eentreb\u0103ri simple. Apoi intervievatorul a scris pe tabl\u0103 un cod \u0219i m-a rugat s\u0103 g\u0103sesc problemele din el. Am g\u0103sit, am explicat, am corectat. Am discutat. Apoi au \u00eenceput c\u00e2teva \u00eentreb\u0103ri nea\u0219teptate, de genul \u201ece face metoda Y \u00een clasa X?\u201d, \u201ece se afl\u0103 \u00een interiorul metodei Y?\u201d, \u201ece face clasa Z?\u201d. La ceva am r\u0103spuns, dar apoi am spus c\u0103 \u00een ultima vreme nu m-am confruntat cu asta \u0219i, prin urmare, nu-mi amintesc detaliile despre cine, ce \u0219i cum face. Dup\u0103 aceasta, intervievatorul m-a \u00eentrebat ce fac acum. \u0218i \u00eentreb\u0103rile au continuat \u00een acea direc\u021bie. Aici am r\u0103spuns mult mai bine.<\/p>\n<p>Dup\u0103 ce am terminat ultimul interviu, mi-au luat badge-ul, mi-au urat noroc \u0219i m-au trimis acas\u0103. Am f\u0103cut o plimbare prin ora\u0219, am luat cina \u0219i m-am dus la hotel, unde am c\u0103zut \u00een somn, deoarece zborul a fost din nou devreme diminea\u021ba. A doua zi am ajuns cu bine \u00een Cipru. La cererea recrutorului, am scris un feedback despre interviu \u0219i am completat un formular \u00eentr-un serviciu special pentru a returna banii cheltui\u021bi. Din toate cheltuielile, Google pl\u0103te\u0219te direct doar biletele. Hotelul, mesele \u0219i transportul sunt pl\u0103tite de candidat. Apoi complet\u0103m formularul, ata\u0219\u0103m chitan\u021bele \u0219i le trimitem la o companie special\u0103. Ace\u0219tia le proceseaz\u0103 \u0219i transfer\u0103 destul de repede banii \u00een cont.<\/p>\n<p>A durat o lun\u0103 \u0219i jum\u0103tate pentru a procesa rezultatele interviului. Dup\u0103 care mi s-a comunicat c\u0103 am fost \u00abpu\u021bin sub standard\u00bb. Asta \u00eenseamn\u0103 c\u0103 am fost pu\u021bin sub a\u0219tept\u0103ri. Mai exact, 2 interviuri au mers bine, 2 nu foarte bine, iar System Design a mers foarte prost. Dac\u0103 m\u0103car 3 dintre ele ar fi mers bine, a\u0219 fi avut \u0219anse, dar acum nu am nicio \u0219ans\u0103. Mi s-a sugerat s\u0103 \u00eencerc din nou peste un an.<\/p>\n<p>La \u00eenceput, desigur, m-am sim\u021bit dezam\u0103git, deoarece am investit multe eforturi \u00een preg\u0103tire, iar \u00een momentul interviului aveam deja \u00een minte g\u00e2ndul de a p\u0103r\u0103si Cipru. S\u0103 m\u0103 angajez la Google \u0219i s\u0103 m\u0103 mut \u00een Elve\u021bia p\u0103rea o op\u021biune excelent\u0103.<\/p>\n<h2>Concluzie<\/h2>\n<p>\n\u0218i aici ajungem la partea final\u0103 a articolului. Da, nu am trecut de dou\u0103 ori interviul la Google. Este trist. Probabil ar fi fost interesant s\u0103 lucrez acolo. Dar se poate privi \u0219i din alt\u0103 perspectiv\u0103. <\/p>\n<ul>\n<li> \u00cen unsprezece luni am \u00eenv\u0103\u021bat o mul\u021bime de lucruri legate de dezvoltarea software-ului.<\/li>\n<li>Am avut o mare pl\u0103cere particip\u00e2nd la competi\u021bii de programare.<\/li>\n<li>Am fost pentru c\u00e2teva zile la Zurich. C\u00e2nd voi mai ajunge acolo?<\/li>\n<li>Am avut o experien\u021b\u0103 interesant\u0103 de interviu la una dintre cele mai mari companii IT din lume.<\/li>\n<\/ul>\n<p>\nAstfel, tot ce s-a \u00eent\u00e2mplat \u00een aceste unsprezece luni poate fi considerat o formare sau un antrenament. \u0218i rezultatele acestui antrenament s-au f\u0103cut sim\u021bite. G\u00e2ndul meu de a p\u0103r\u0103si Cipru s-a maturizat (din anumite motive familiale), am trecut cu succes prin c\u00e2teva interviuri la o alt\u0103 companie cunoscut\u0103 \u0219i dup\u0103 8 luni m-am mutat. Dar aceasta este o poveste complet diferit\u0103. Totu\u0219i, cred c\u0103 ar trebui s\u0103 \u00eei mul\u021bumesc lui Google at\u00e2t pentru ace\u0219ti unsprezece luni \u00een care m-am dezvoltat, c\u00e2t \u0219i pentru cele 2 zile interesante \u00een Zurich.<\/p>\n<p>Ce pot spune la final. Dac\u0103 lucra\u021bi \u00een IT, preg\u0103ti\u021bi-v\u0103 pentru interviurile la Google (Amazon, Microsoft, Apple etc.). Poate c\u0103, c\u00e2ndva, ve\u021bi reu\u0219i s\u0103 ajunge\u021bi acolo. Chiar dac\u0103 nu dori\u021bi, s\u0103 \u0219ti\u021bi c\u0103 o astfel de preg\u0103tire nu v\u0103 va face r\u0103u. \u00cen momentul \u00een care ve\u021bi \u00een\u021belege c\u0103 pute\u021bi (chiar \u0219i doar printr-un concurs favorabil de \u00eemprejur\u0103ri) s\u0103 trece\u021bi de interviul la una dintre aceste companii, vor ap\u0103rea mult mai multe oportunit\u0103\u021bi dec\u00e2t \u00eenainte de a \u00eencepe preg\u0103tirea. Tot ce ave\u021bi nevoie pe acest drum este un scop, perseveren\u021b\u0103 \u0219i timp. V\u0103 doresc succes \ud83d\ude42<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/419945\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u0430\u0442\u044c\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a epic fail, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e. \u0414\u0430 \u0438 \u0432 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c \u044d\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u043e, \u0445\u043e\u0442\u044c \u0438 \u043d\u0435 \u0432 Google. \u041d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u0440\u0435\u0445 \u0432\u0435\u0449\u0430\u0445: \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u043c\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":52951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-52950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0432 Google \u0438 \u043d\u0435 \u043f\u0440\u043e\u0439\u0442\u0438 \u0435\u0433\u043e. \u0414\u0432\u0430\u0436\u0434\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Cum s\u0103 te preg\u0103te\u0219ti pentru un interviu la Google \u0219i s\u0103 nu-l treci. De dou\u0103 ori | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0432 Google \u0438 \u043d\u0435 \u043f\u0440\u043e\u0439\u0442\u0438 \u0435\u0433\u043e. \u0414\u0432\u0430\u0436\u0434\u044b | ProHoster","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/kak-podgotovitsya-k-sobesedovaniyu-v-google-i-ne-projti-ego-dvazhdy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52950","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 05:32:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:55:29","updated":"2026-01-24 05:32:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/52950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=52950"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/52950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/52951"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=52950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=52950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=52950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}