Як підготуватись до співбесіди в Google і не пройти його. Двічі

Як підготуватись до співбесіди в Google і не пройти його. Двічі

Стаття статті звучить як epic fail, але насправді все не так однозначно. Та й загалом ця історія закінчилася дуже позитивно, хоч і не в Google. Але це вже тема іншої статті. У цій статті я розповім про три речі: яким чином проходив мій процес підготовки, яким чином проходили інтерв'ю в Google і чому ж на мій погляд все не так однозначно, як може здатися.

Як все починалося

Одним холодним кіпрським зимовим вечором мені раптом спало на думку думка, що мої пізнання в класичній Computer Science дуже далекі навіть від середніх, і з цим треба щось робити. Якщо до речі раптом хтось ще не читав, чому вечір кіпрський та холодний, то можна про це дізнатися тут. Після деяких роздумів було вирішено для початку пройти онлайн курс з алгоритмів та структур даних. Від одного з колишніх колег чув про курс Роберта Седжвіка (Robert Sedgewick) на Coursera. Курс складається з двох частин (частина 1 и частина 2). Якщо раптом посилання зміниться, можна завжди нагуглить на ім'я автора. Кожна частина йде 6 тижнів. На початку тижня видаються лекції, а протягом тижня ще потрібно робити вправи. Перша частина курсу покриває базові структури даних, основні види сортувань та складність алгоритмів. Друга частина вже більш просунута, починається з графів та закінчується такими речами як Linear Programming та Intractability. Обміркувавши вищевикладене, я дійшов висновку, що це саме те, що мені потрібно. Тут до речі допитливий читач може запитати, а до чого тут Google. До цього моменту він був тут зовсім ні до чого. Але мені потрібна була мета, тому що займатися 12 тижнів вечорами без мети дещо важко. А яка може бути мета отримання нових знань? Звісно, ​​їх застосування практично. У повсякденному житті це досить проблематично, а на співбесіді у велику компанію запросто. Побіжне гуглення показало, що Google (вибачте вже за тавтологію) є однією з найбільших компаній у Європі (а я розглядав саме Європу), в якій проводять такі співбесіди. А саме, їхній офіс знаходиться в Цюріху, Швейцарія. Отже вирішено - вчимося і йдемо співбесіду в Google.

Підготовка до першого заходу

12 тижнів пройшли непомітно, і я закінчив обидва курси. Мої враження від курсів є більш ніж позитивними, і я можу їх рекомендувати всім зацікавленим. Сподобалися мені курси з таких причин:

  • Лектор говорить досить чіткою англійською
  • Матеріал добре структурований
  • Шикарні презентації, що показують начинки кожного алгоритму
  • Грамотна добірка матеріалу
  • Цікаві вправи
  • Вправи автоматично перевіряються на сайті, після чого створюється звіт

У мене робота над курсами зазвичай проходила в такий спосіб. За 1-2 дні я прослуховував лекції. Потім проходив швидкий тест знання матеріалу. Залишок тижня робив вправу у кілька ітерацій. Після першої отримував свої 30-70%, наступні доводили результат до 97-100%. Вправа зазвичай полягала у реалізації якогось алгоритму, наприклад Висічення швів або bzip.

Після закінчення курсів я усвідомив, що багато знань це багато печалі. Якщо раніше я знав, що нічого не знаю, то тепер почав усвідомлювати, що саме я не знаю.

Так як був ще травень місяць, а співбесіду я запланував на осінь, я вирішив продовжити свою освіту. Після перегляду вимог до вакансії було прийнято рішення піти паралельно за двома напрямками: продовжити вивчення алгоритмів та пройти базовий курс з машинного навчання. Для першої мети я вирішив перейти з курсів на книгу і вибрав монументальну працю Стівена Скієни (Steven Skiena) «Алгоритми. Посібник із розробки» (The Algorithm Design Manual). Не такий монументальний, як у Кнута, але все ж таки. Для другої мети знову пішов на Coursera і записався на курс Ендрю Ына (Andrew Ng) машинне навчання.

Пройшло ще 3 місяці, і я закінчив курс та книгу.

Почнемо із книги. Читання виявилося досить цікавим, хоч і непростим. В принципі, я б книгу рекомендував, але не так відразу. Загалом і в цілому, книга дає глибший розбір того, що я дізнався на курсах. Плюс до цього я відкрив для себе (з формального погляду) такі речі як евристики та динамічне програмування. Звичайно, раніше мені доводилося їх використовувати, але як вони називаються я не знав. Так само в книзі присутня деяка кількість байок із життя автора (War Story), які дещо розбавляють академічність викладу. Другу половину книги можна до речі опустити, там йде скоріше опис наявних проблем та методів їх вирішення. Корисно, якщо регулярно застосовується на практиці, інакше забудеться відразу.

Курс мене більш ніж порадував. Автор явно знає свою справу та розповідає цікаво. Плюс неабияку частину, а саме лінійну алгебру та основи нейронних мереж я пам'ятав ще з університету, тому особливих труднощів не зазнав. Структура курсу є досить стандартною. Курс розбито на тижні. Щотижня спочатку йдуть лекції упереміш із короткими тестами. Після лекцій видається завдання, яке потрібно зробити, надіслати, і воно автоматично перевіриться. Коротко, список, що викладається в курсі наступний:
- 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
Після проходження курсу, розуміння всіх цих тем було присутнім. Через 2 роки вже багато природно забулося. Рекомендую тим, хто не знайомий із машинним навчанням і хоче отримати хороше розуміння базових речей для руху далі.

Перший захід

Надворі був уже вересень і настав час задуматися про співбесіду. Так як подаватися через сайт справа досить згубна, зайнявся пошуком знайомих, які працюють у Google. Вибір упав на datacompboyтому що він був єдиним, кого я знав безпосередньо (нехай і не особисто). Він погодився передати моє резюме, і незабаром я отримав від рекрутера листа, що пропонує забронювати слот у нього в календарі для першої розмови. Через пару днів відбувся дзвінок. Пробували спілкуватися через Hangouts, але якість була жахлива, тому перейшли на телефон. Спочатку швидко обговорили стандартні, як, навіщо і чому, а потім перейшли до технічного скринінгу. Він складався з десятка питань на кшталт «яка складність вставки в hash map», «які збалансовані дерева ви знаєте». Неважко, якщо є базове знання цих речей. Скринінг пройшов добре і за результатами вирішили організувати перше інтерв'ю за тиждень.

Інтерв'ю також було через Hangouts. Спочатку хвилин 5 поговорили про мене, потім перейшли до завдання. Завдання було на графи. Я швидко зрозумів, що треба зробити, але вибрав не той алгоритм. Коли почав писати код, усвідомив це і переключився на інший варіант, який і дописав. Інтерв'юер поставив кілька запитань на тему складності алгоритму, запитав, чи можна швидше. Я якось затупив і не зміг. На цей час вийшло, і ми розпрощалися. Потім, хвилин через 10 до мене дійшло, що замість алгоритму Дейкстри, який я використав, саме в цьому завданні можна було б використовувати пошук завширшки, і це було б швидше. Через деякий час зателефонував рекрутер і сказав, що інтерв'ю загалом пройшло добре і треба було б організувати ще одне. Домовилися ще через тиждень.

На цей раз справи пішли гірше. Якщо вперше інтерв'юер був доброзичливий і товариський, то цього разу якийсь похмурий. Завдання я відразу розкусити не зміг, хоча ті ідеї, що я видавав, в принципі могли привести до її вирішення. У результаті після кількох підказок інтерв'юера до мене дійшло рішення. Цього разу це знову виявився пошук завширшки, лише з кількох точок. Рішення я написав, під час уклався, але забув про граничні випадки. Через якийсь час зателефонував рекрутер і повідомив, що цього разу інтерв'юер залишився незадоволений, тому що на його думку мені знадобилося дуже багато підказок (3 або 4 штуки) і я постійно змінював код під час написання. За результатами двох співбесід було ухвалено рішення далі не йти, а відкласти наступне інтерв'ю на рік, якщо маю таке бажання. За цим і попрощалися.

І цій історії я зробив кілька висновків:

  • Теорія це добре, але в ній треба швидко орієнтуватися
  • Теорія без практики допоможе. Потрібно вирішувати завдання і доводити написання коду до автоматизму.
  • Багато залежить від інтерв'юера. І із цим нічого не зробити.

Підготовка до другого заходу

Обдумавши ситуацію, я вирішив спробувати ще через рік. І трохи підредагував мету. Якщо раніше основною метою було навчання, а інтерв'ю в Google як далека морквина, то тепер проходження інтерв'ю було метою, а навчання засобом.
Отже, було розроблено новий план, куди входили такі пункты:

  • Продовжуватиме вивчати теорію шляхом читання книжок та статей.
  • Вирішувати алгоритмічні завдання у кількості 500-1000 штук.
  • Продовжувати вивчати теорію шляхом перегляду відео.
  • Продовжуватиме вивчати теорію шляхом курсів.
  • Вивчити досвід інших людей щодо проходження співбесід у Google.

План був виконаний мною протягом року. Далі я опишу, що саме я робив у кожному з пунктів.

Книги та статті

Кількість прочитаних статей я вже навіть не згадаю, читав їх як російською, так і англійською. Найкориснішим сайтом виявився напевно ось цей. Тут зібрано опис великої кількості цікавих алгоритмів із прикладами коду.

Книг я прочитав 5: Algorithms, 4th edition (Sedgewick, Wayne), Introduction to Algorithms 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4th edition (Gayle Laakmann), Programming Interviews Expos , Giguere), Елементи з програмування (Aziz, Lee, Prakash). Їх можна поділити на 2 категорії. У першу потрапляють книги Седжвіка та Кормена. Це теорія. Решта – це підготовка до інтерв'ю. Седжвік у книзі розповідає приблизно те саме, що й у своїх курсах. Просто письмово. Немає особливого сенсу читати уважно, якщо ви проходили курс, але переглянути варто у будь-якому випадку. Якщо курс не дивилися, то є сенс почитати. Кормен мені здався надто занудним. Здолав чесно кажучи важко. Виніс звідти тільки master theorem, і кілька рідко використовуваних структур даних (Fibonacci heap, van Emde Boas tree, radix heap).

Книгу для підготовки до інтерв'ю варто прочитати бодай одну. Всі вони побудовані приблизно за одним принципом. Описують процес інтерв'ю у великих технологічних компаніях, пропонують базові речі з Computer Science, завдання на ці базові речі, розв'язання задач і розбір рішень. З наведених трьох я напевно б рекомендував Cracking the Coding Interview як основну, а решту за бажанням.

Алгоритмічні завдання

Це, напевно, був найцікавіший пункт підготовки. Можна, звісно, ​​сісти і тупо вирішувати завдання. Для цього є багато різних веб-сайтів. Я в основному використав три: Хакерранк, CodeChef и Код. На CodeChef завдання розбито за складністю, але не за темами. На Hackerrank і складно, і за темами.

Але як я одразу для себе з'ясував, є цікавіший спосіб. І це змагання (programming challenges чи programming contests). Усі три сайти їх надають. Щоправда, з LeetCode є проблема — незручна тимчасова зона. Тому я не брав участі на цьому сайті. Hackerrank та CodeChef надають досить велику кількість різних змагань, тривалістю від 1 години до 10 днів. У різних форматів різні правила, та це про це можна довго розповідати. Основна суть, чому змагання це добре, це внесення змагального (і знову тавтологія) елемента у процес навчання.

Загалом я взяв участь у 37 змаганнях на Hackerrank. З них 32 були рейтингові, а 5 або спонсоровані (я навіть отримав 25 $ в одному з них) або фаном. У рейтингових я 10 разів входив у топ 4%, 11 разів у топ 12% та 5 разів у топ 25%. Найкращими результатами були 27/1459 у 3-х годинному та 22/9721 у тижневому.

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

Загалом на змаганнях і просто так я вирішив трохи більше 1000 завдань, що вписувалося в план. Зараз на жаль вільного часу на продовження змагальної діяльності немає, так само як і немає мети, під яку можна списати невільний час. Але це було весело. Рекомендую тим, хто цим зацікавиться знайти однодумців. Удвох чи групою набагато цікавіше. Я цим розважався з другом, тож може так добре й пішло.

Перегляд відео

Прочитавши книжку Скієни, я зацікавився тим, чим він займається. Як і Седжвік, він є професором університету. У зв'язку з цим у мережі можна знайти відеозаписи його курсів. Я вирішив переглянути курс COMP300E - Programming Challenges - 2009 HKUST. Не скажу, що мені дуже сподобалося. По-перше, якість відео не дуже. По-друге, я не пробував сам вирішувати завдання, які розбираються в рамках курсу. Тож залученість була не дуже висока.
Також у процесі розв'язання задач, намагаючись знайти правильний алгоритм, я натикався на відео Tushar Roy. Він працював у Amazon, а зараз працює в Apple. Як пізніше я для себе з'ясував, він має канал на YouTube, де він викладає аналіз різних алгоритмів. На момент написання статті канал містить 103 відео. І треба сказати, що розбір у його виконанні зроблений дуже пристойно. Я намагався дивитися інших авторів, але якось не зайшло. Отже, цей канал однозначно можу рекомендувати до перегляду.

Проходження курсів

Тут я особливо нічого не займався. Переглянув відео з Android Developer Nanodegree від Google і пройшов курс від ІТМО How to Win Coding Competitions: Secrets of Champions. Nanodegree цілком собі, хоча нічого нового звідти я природно не впізнав. Курс від ІТМО у плані теорії трохи зім'ятий, але завдання були цікаві. Я б не рекомендував з нього починати, але в принципі час на нього було витрачено недаремно.

Вивчити досвід інших людей

Само собою безліч людей намагалися потрапити до Google. Хтось потрапив, хтось ні. Дехто писав про це статті. З цікавих речей напевно зазначу ось цю и ось цю. У першому випадку, людина підготувала для себе список того, що йому потрібно вивчити, щоб стати Software Engineer і потрапити до Google. Потрапив він у результаті в Amazon, але це вже не так важливо. Другий мануал написаний інженером Google, Ларисою Агарковою (Larrr). Крім цього документа, можна також почитати її блог.

Має сенс прочитати відгуки про співбесіди на Glassdoor. Вони все більш-менш схожі, але якусь корисну інформацію можна виловити.

Посилання на інші дрібні статті не наводитиму, ви їх самі чудово зможете знайти в Google.

Другий захід

І ось рік минув. Видався він дуже насиченим щодо навчання. Але до нової осені я підходив із набагато глибшими теоретичними знаннями та відпрацьованими практичними навичками. До закінчення призначеного мені терміну відведеного на підготовку року залишалося ще кілька тижнів, як раптом на пошту впав лист від рекрутера з Google, в якому він мене запитував, чи я маю все ще бажання працювати в Google і чи не проти поспілкуватися з ним. Звичайно, я був не проти. Домовилися зателефонувати за тиждень. Також у мене попросили оновлене резюме, до якого я додав короткий опис того, що зробив за рік на роботі та в принципі.

Після спілкування за життя вирішили, що за тиждень буде Hangouts інтерв'ю, як торік. Тиждень минув, настав час інтерв'ю, але інтерв'юер не з'явився. Пройшло 10 хвилин, я вже почав нервувати, як раптом хтось увірвався до чату. Як з'ясувалося трохи пізніше, мій інтерв'юер з якоїсь причини не зміг з'явитися і терміново знайшли заміну. Людина була дещо не готова як у плані налаштування комп'ютера, так і в плані проведення інтерв'ю. Але потім все пішло добре. Завдання я вирішив швидко, описав де можливі каверзи, як їх можна обійти. Обговорили кілька різних варіантів завдання, складність алгоритму. Потім ще 5 хвилин поспілкувалися, інженер розповів свої враження від роботи у Мюнхені (у Цюріху бачити термінової заміни не знайшли), на тому й розлучилися.

Того ж дня зі мною зв'язався рекрутер і повідомив, що співбесіда пройшла чудово і вони готові запросити мене на співбесіду до офісу. Наступного дня зателефонували через Hangouts та обговорили подробиці. Оскільки мені потрібно було робити візу, вирішили призначити співбесіду за місяць.

Поки готував документи, принагідно обговорював з рекрутером майбутнє інтерв'ю. Стандартне інтерв'ю в Google складається з 4 алгоритмічних та одного System Design. Але, так як я влаштовувався як розробник Android, мені було сказано, що частина інтерв'ю буде з Android специфікою. Які саме і в чому буде специфіка, я з рекрутера так і не зміг витрусити. Наскільки я зрозумів, це ввели відносно недавно, і він сам був не дуже в курсі. Також мене записали на дві тренувальні сесії: як проходити алгоритмічне інтерв'ю та як проходити System Design інтерв'ю. Сесії були середнього ступеня корисності. Там мені теж ніхто не зміг розповісти, що ж питають у Android розробників. Тому моя підготовка цього місяця звелася до наступного:

  • Купівлі маркерної дошки та написання 2-3 десятків найпопулярніших алгоритмів на ній по пам'яті. По 3-5 штук щодня. Усього кожен був написаний кілька разів.
  • Освіження в пам'яті різної інформації по Android, яку не використовую щодня
  • Перегляньте кілька відео про Big Scale і таке інше

Як я вже казав, я паралельно робив документи для поїздки. Для початку у мене запитали дані, щоб зробити лист запрошення. Потім я довго намагався з'ясувати, хто ж на Кіпрі робить візи до Швейцарії, оскільки швейцарське посольство цим не займається. Як з'ясувалося, цим займається представництво Австрії. Подзвонив та записав на прийом. Там зажадали пачку документів, але нічого особливо цікавого. Фото, паспорт, посвідка на проживання, купу різних довідок і природно запрошення листа. Лист тим часом не приходив. У результаті поїхав зі звичайним роздруком і це цілком прокотило. Сам же лист прийшов ще через 3 дні, причому кіпрський FedEx не зумів знайти мою адресу і довелося їхати за ним самому. Заодно отримав все в тому ж FedEx'e посилку, яку вони теж не змогли мені доставити, тому що не знайшли адресу і яка там лежала з червня (5 місяців, Карл). Так як я про неї не знав, що природно і не припускав, що вона в них є. Візу я отримав вчасно, після чого мені забронювали готель та запропонували варіанти перельоту. Варіанти я підкоригував, щоб було зручніше. Прямих рейсів вже не було, зрештою летів туди через Афіни, а назад через Відень.

Після того, як усі формальності з поїздкою були улагоджені, минуло ще кілька днів і я власне вилетів до Цюріха. Дістався без пригод. Від аеропорту до міста доїхав поїздом — швидко та зручно. Трохи поплутавши містом знайшов готель і заселився. Так як готель був заброньований без їжі, повечеряв по сусідству і завалився спати, бо рейс був ранковий і вже хотілося спати. Наступного дня поснідав у готелі (за окремі гроші) та вирушив до офісу Google. Загалом у Цюріху у Google кілька офісів. Моя співбесіда була не в центральній. І загалом офіс виглядав досить звичайно, так що не довелося мені подивитися на всі плюшки "нормального" офісу Google. Зареєструвався в адміністратора і сів чекати. Через якийсь час вийшов рекрутер і розповів мені план на день, після чого відвів у кімнату, де й мали проходити інтерв'ю. Власне, у плані значилися 3 інтерв'ю, обід і ще 2 інтерв'ю.

Інтерв'ю номер разів

Перше інтерв'ю було саме по Android. Причому взагалі не було пов'язано з алгоритмами. Сюрприз, однак. Ну та гаразд, так навіть звичніше. Попросили зробити певний UI компонент. Спершу обговорили, що і як. Запропонував зробити рішення на RxJava, описав, що саме і чому зробив. Сказали, що це, звичайно, добре, але давайте зробимо засобами Android фреймворку. А заразом напишемо код на дошці. Причому не просто компонента, а всієї Activity, яка використовує цей компонент. Ось до такого я не був готовий. Одна справа писати на дошці алгоритм на 30-50 рядків, а інша справа локшину Android коду, нехай навіть зі скороченнями та коментарями на кшталт «ну, це я писати не буду, тому що і так очевидно». Вийшов якийсь вінегрет на 3 дошки. Тобто. завдання я вирішив, але виглядало це стрімко.

Інтерв'ю номер два

На цей раз інтерв'ю було за алгоритмами. І інтерв'юерів було двоє. Один власне інтерв'юер, а другий юний падаван (shadow interviewer). Треба було придумати структуру даних із певними властивостями. Спочатку зазвичай обговорювали проблему. Я ставив різні запитання, інтерв'юер відповів. Через якийсь час попросили написати кілька методів вигаданої структури на дошці. Цього разу більш-менш вдалося, щоправда, з кількома дрібними помилками, які я виправив із підказки інтерв'юера.

Інтерв'ю номер три

На цей раз System Design, який раптом теж виявився Android. Потрібно було розробити програму з певним функціоналом. Обговорили вимоги до додатку, сервера, протоколу комунікації. Далі я став описувати, які компоненти або бібліотеки я використовував би при побудові програми. А потім при згадці Job Scheduler стався певний затік. Суть у тому, що я ніколи не використовував його на практиці, тому що в момент його виходу якраз переключився на підтримку додатків, де завдань для його застосування не було й близько. Під час розробки наступних було те саме. Тобто в теорії я знаю, що це за штука, коли і як застосовується, але досвіду в застосуванні немає. І інтерв'юеру це, схоже, не дуже сподобалося. Потім попросили написати код. Так, при розробці програми відразу потрібно писати код. Знову ж таки Android код на дошці. Вийшло знову страшненько.

Обід

Мав прийти ще один чоловік, але не прийшов. І у Google бувають промахи. У результаті на обід пішов із попереднім інтерв'юером, її колегою і трохи пізніше приєднався наступний інтерв'юер. Обід був цілком пристойний. Знову ж таки, оскільки це не головний офіс у Цюріху, їдальня виглядала досить звичайно, хоч і дуже приємно.

Інтерв'ю номер чотири

Нарешті алгоритми в чистому вигляді. Перше завдання я вирішив досить швидко і відразу ефективно, правда схибив з одним граничним випадком, але за підказкою інтерв'юера (він дав цей граничний випадок) знайшов проблему і виправив. Само собою треба було писати код на дошці. Потім було дано схоже завдання, але складніше. Для неї я знайшов пару неоптимальних рішень і майже знайшов оптимальне, не вистачило 5-10 хвилин, щоб дотиснути думку. Та й код для неї я написати вже не встиг.

Інтерв'ю номер п'ять

І знову Android інтерв'ю. Цікаво, навіщо я навчав алгоритми цілий рік?
Спершу було кілька простих питань. Потім інтерв'юер написав на дошці код та попросив знайти в ньому проблеми. Знайшов, пояснив, виправив. Обговорили. А далі почалися дещо несподівані питання на кшталт «а що у класі Х робить метод У», «що усередині методу У», «що робить клас Z». Щось я, звичайно, відповів, але потім сказав, що в роботі останнім часом з цим не стикався і природно не пам'ятаю, хто, що і як у деталях робить. Після цього інтерв'юер розпитував, що я зараз роблю. І питання пішли на цю тему. Тут я вже відповідав набагато краще.

Після закінчення останнього інтерв'ю у мене забрали перепустку, побажали удачі і відправили додому. Трохи погуляв містом, повечеряв і пішов у готель, де й завалився спати, бо рейс знову рано зранку. Наступного дня благополучно дістався Кіпру. Написав на прохання рекрутера фідбек за інтерв'ю та заповнив у спеціальному сервісі форму на повернення витрачених грошей. З усіх витрат Google безпосередньо оплачує лише квитки. Готель, їжа та проїзд оплачуються кандидатом. Потім заповнюємо форму, прикладаємо чеки та відправляємо до спеціальної контори. Вони це обробляють та досить швидко перераховують гроші на рахунок.

На те, щоб опрацювати результати інтерв'ю, пішло півтора тижні. Після чого мені повідомили, що я був a bit below the bar. Тобто трохи не дотягнув. Якщо конкретніше, то 2 інтерв'ю пройшли добре, 2 трохи не дуже, а System Design дуже не дуже. Ось якби хоча б 3 пройшли добре, то можна було б поборотись, а так без шансів. Запропонували заходити ще за рік.

Спочатку я звичайно засмутився, тому що на підготовку було витрачено багато сил, і на момент інтерв'ю у мене вже зріла думка про те, щоб залишити Кіпр. Пристрій у Google і переїзд до Швейцарії здавалися чудовим варіантом.

Висновок

І тут ми наближаємося до заключної частини статті. Так, я двічі не пройшов інтерв'ю у Google. Це сумно. Напевно, було б цікаво попрацювати там. Але можна поглянути на справу і з іншого боку.

  • За півтора роки я дізнався величезну кількість речей, пов'язаних із розробкою програмного забезпечення.
  • Я отримав неабияке задоволення, беручи участь у змаганнях із програмування.
  • Я з'їздив на кілька днів до Цюріха. Коли ще туди виберусь?
  • Я отримав цікавий досвід інтерв'ю в одній із найбільших IT компаній світу.

Таким чином, все, що сталося за ці півтора роки, можна просто вважати навчанням, або тренуванням. І результати цього тренування дали про себе знати. Моя думка покинути Кіпр дозріла (за деякими обставинами сімейного характеру), я успішно пройшов кілька співбесід до іншої відомої компанії і через 8 місяців переїхав. Але це вже зовсім інша історія. Тим не менш, думаю, що мені все одно варто подякувати Google як за ці півтора роки, які я працював над собою, так і за 2 цікаві дні в Цюріху.

Що я можу сказати насамкінець. Якщо ви працюєте в IT, підготуйте себе до інтерв'ю Google (Amazon, Microsoft, Apple і т.д.). Можливо, колись ви туди заходите потрапити. Навіть якщо не захочете, то повірте, що від такої підготовки вам гірше не стане. У той момент, коли ви зрозумієте, що можете (нехай навіть при успішному збігу обставин) пройти інтерв'ю в одну з цих компаній, перед вами буде відкрито набагато більше доріг, ніж перед початком вашої підготовки. А все, що вам знадобиться в дорозі, це мета, наполегливість і час. Бажаю успіхів 🙂

Джерело: habr.com

Додати коментар або відгук