Что нужно чтобы работать в гугле
Как устроиться на работу в Google
Работать где-то мечтают не все. Работать в компании Google мечтают многие, кто решил связать свою жизнь с IT.
Google — компания-гигант, одна из крупнейших IT-корпораций. Сотрудники такой компании нужны постоянно (новые области, текучка кадров).
Всё, что написано ниже, основано на личном опыте, а так же опыте тех людей, которым я могу доверять.
Шаг 1 — резюме.
В компании Google к резюме особое отношение. Получая миллионы заявок в год, компания выбирает несколько сотен сотрудников. Именно поэтому отличное резюме — первый шаг к работе мечты.
Что писать в резюме нужно обязательно:
Шаг 2 — поиск вакансий
После того, как вы написали отличное резюме для компании, стоит заняться поиском вакансий, на которые вы будете претендовать. Для этого стоит посетить google.com/jobs.
Выбор вы можете осуществить как по месту будущей работы (будут показаны все вакансии офиса), так и по ключевым словам (например, если вы хотите работы с русскоговорящей аудиторией — ищите russian).
В каждой вакансии существуют минимальные требования к кандидатам. Обратите на них внимание — если вы не подходите хотя бы по одному пункту, то стоит задуматься. Чем больше вы соответствуете этому блоку, тем больше шансов получить приглашение на собеседование.
В компании Google существует так же срочная потребность в кандидатах. Для таких вакансий в поиск нужно вбить «For immediate consideration». Вам отобразятся все «горящие» вакансии. Высылать своё резюме необходимо будет на e-mail, который так же указан на странице. Обратите внимание, что написано в строке Important.
Если вы укажете тему письма неверно, письмо будет отклонено. К сожалению, в компании работают люди, а не роботы, поэтому случаются накладки, которые медленно, но исправляются (я так отправлял на одну вакансию 6 раз резюме, с точно указанной темой, а оно отклонялось; через 3 недели починили).
Шаг 3 — отправка резюме
Тут всё просто — заполняете форму на сайте, и ждёте. Напишите обязательно CV, его и вправду читают сотрудники, которые потом будут проводить вам первое собеседование.
Если вы отправляете резюме на электронный адрес (горящая вакансия), то отправлять его рекомендуется в html.
Здесь есть небольшой хинт, который может повлиять на решение рекрутера. Хинт называется «отправка резюме сотрудником Google». Где взять или познакомиться с таким человеком? В социальных сетях (LinkedIn, Профессионалы). Если сможете договориться и подружиться, то при успешном исходе вы получите работу, а советчик — денежное поощрение.
Шаг 4 — подготовка к первому собеседованию
Если все три предыдущих шага были выполнены хорошо, то через некоторое время (у меня это было 1-3 дня) вам придёт письмо от рекрутера, в котором вам укажут предварительное время вашего собеседования (скрининг), а так же возможные темы для обсуждения. Не поленитесь прочитать так же о компании и её продуктах.
Шаг 5 — телефонное интервью
В телефонном интервью будут задавать простые вопросы, в основном на базовые понятия и мотивацию. Впрочем, эти вопросы задают 90% рекрутеров при первом этапе собеседований. Спрашивают ожидания, про предыдущие работы. Не поленитесь, в интернете есть подборки различных вопросов на разные вакансии, изучите их.
Шаг 6 — техническое интервью
Если рекрутер посчитал, что вы можете подойти для работы в компании — вам напишут письмо, в котором поздравят с прохождением на следующий этап, назначат дату.
О чём говорят на тех. интервью — вообще-то тайна, но некоторые люди, которые не прошли его, и не расслышали про NDA, выкладывают вопросы. Для разных вакансий они разные, в основном — на знание предметной области, но могут быть и на логику и соображалку.
Если шаг 6 пройден, и вы всё еще устраиваете компанию, вас пригласят на интервью в офис. При этом вам оплатят приезд в офис компании (либо локальный, либо в тот, где вы планируете работать). Интервью проводят 4-5 сотрудника Google, которые выясняют ваши компетенции. По вашему желанию вы можете встретиться с тем человеком, который рекомендовал вас на работу.
Шаг 8 — получение Job offer
Если все 5 кандидатов отозвались о вас, как об отличном работнике с достойным уровнем компетенции, компания предлагает вам работу. Детали Job offer, как и вопросы интервью защищены NDA. Но при переезде компания предлагает приятные компенсационные пакеты, за условия которых можно торговаться.
Общая информация, которая может быть полезна
Подумайте, ведь всего 8 шагов отделяют вас от работы мечты миллионов. Возможно, именно вас компании не хватает! Почему бы не попробовать?
Как устроиться на работу в Google и создать успешную карьеру?
Как устроит ь ся в Гугл
С технической стороны трудоустройство в Гугл ничем не отличается от трудоустройства в другую компанию:
вы должны быть специалистом, соответствующим свободной вакансии;
компания должна предлагать открытую вакансию под вашу специальность;
если вы соответствуете вакантному месту, то вас могут пригласить на собеседование, где нужно будет подтвердить, что вы — это вы и что у вас действительно есть необходимые навыки;
если пройдете собеседование, то вам предложат поработать какой-то период, чтобы убедиться в вашей компетенции;
если стажировка проходит удачно, то вам предлагают постоянное место работы, где вы трудитесь и приносите пользу.
Как устроит ь ся в Гугл: советы
Образование
достаточно молодой специалист,
есть небольшой опыт работы и несколько небольших успешных проектов в резюме;
готов выполнять много рутинной работы и при этом много обучаться.
Тут важно п о чувствовать баланс : а бсолютно «зеленым» программистам будет сложнее устроит ь ся работать в Гугл, как и супер крутым специалистам.
Резюме
Не рассчитывайте, что после первого резюме вас пригласят на собеседование. Вообще, при трудоустройстве в Гугл налажена очень жесткая фильтрация. Первая ступень — это автоматическая проверка резюме, потом проверка резюме HR, потом консультация по телефону, потом приглашение в компанию на первое интервью. А интервью может быть несколько.
При этом отказ в офисе компании вам пойдет на руку. Парадокс? Нет. Просто многие другие IT-компании знают о системе фильтрации кандидатов в Гугл. Они понимают, что Гугл не приглашает к себе на собеседование в офис всех подряд. Поэтому раз вы были в офисе Google на собеседовании и вам отказали, то при трудоустройстве в другие компании это будет вашим преимуществом.
Помните, ваша задача — это попасть на собеседование в офис компании!
Что учить и к чему готовит ь ся, чтобы точно устроит ь ся в Google
С Гугл не работает система : «Я выучил конкретный язык программирования — с ним больше шансов, что меня возьмут». Такое может «прокатить» лишь с компанией Apple, если выучить Swift, который использует только она.
В Гугл требуются специалисты разных сфер программирования:
Важно знать какой-нибудь язык программирования, но еще важнее понимать основы программирования:
Заключение
Как устроит ь ся в Гугл? Быть хорошим специалистом в своей нише, не боят ь ся обучаться и выполнять самую нудную работу, иметь голову на плечах и не терять надежды, отправляя в десятый раз свое резюме.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Как попасть на работу в Google, даже если вы были худшим студентом на курсе
Редактор направления Истории
По данным сайта вакансий Glassdoor, Google занимает пятое место по размеру средней зарплаты в США. Но чтобы получить одну из этих высокооплачиваемых позиций, вам нужно разработать и следовать целой стратегии – особенно если вы только окончили университет и не можете похвастаться высоким средним баллом. Издание Business Insider рассказывает о способах выгодно выделиться на общем фоне, даже с не самой лучшей успеваемостью – на примере советов из обсуждений на Quora.
Google известна тем, что пройти все этапы отбора в компанию крайне трудно. Но недавно она отказалась от оценивания результатов выпускных экзаменов и среднего балла, которые раньше были критическим параметром для отсеивания соискателей на вакансии.
«Всем известно, что в Google просили предоставлять информацию о среднем балле и оценках за итоговые экзамены, но больше мы этого не делаем, если после вашего выпуска из университета прошло хотя бы несколько лет. Мы поняли, что эти параметры не несут в себе никакой пользы», – сказал бывший глава отдела кадров Google Ласло Бок.
Но Google все равно запросит ваш диплом в процессе отбора. «Мне сказали предоставить диплом и информацию о дисциплинах, пройденных на программе бакалавриата. Это было нетрудно, но я такого не ожидал», – гласит отзыв одного из соискателей на Glassdoor.
Если вы недавно окончили университет или подаете заявку на участие в стажировке, то важность среднего балла возрастает. Однако есть вещи, которые могут помочь выделиться из толпы независимо от этого. Ниже представлены 12 способов это сделать.
Источник: Thomson Reuters
1. Получите профессиональный опыт
«Если у вас есть ценный опыт работы, то можно даже вообще не иметь диплома университета. (Хотя, конечно, всегда лучше, когда у вас подходящая специальность.)», – говорит Лутц Энке, сотрудник Google из Гамбурга.
2. Развивайте навыки программирования (если претендуете на техническую позицию)
«Средний балл – это всего лишь один из критериев. Когда вы только начинаете, важнее то, как хорошо вы понимаете код, можете придумать способы его улучшения и как быстро вы сможете расти», – отмечает один из участников обсуждения, разработчик Гаанеш Кап.
3. Лучше не подавать заявку через общий сайт компании (вместо этого сфокусируйтесь на стажировках, программах набора в университетах и рекомендациях)
«Лучшие способы попасть на интервью, имея не самый высокий средний балл, такие же, что и лучшие способы попасть на интервью вообще… Если вы подали заявку через внешний ресурс, например, через раздел вакансий на веб-сайте компании, то ваши шансы не так уж высоки», – Джон Л. Миллер, специалист по собеседованиям в Microsoft, Amazon и Google.
4. Свяжитесь напрямую с рекрутером Google
«У меня были два собеседования в Google (оба я с треском провалил)… но они у меня были. На первое я попал после того, как нашел рекрутеров Google через LinkedIn и отправил им письма. Я написал троим, и один из них ответил», – отмечает системный инженер Марк Куцмарски.
5. Совершенствуйтесь в своей профессиональной области и станьте тем, кого в Google называют «Т-образно развитым» человеком
«В Google ищут «Т-образно развитых людей» – очень компетентных в одной области, порой даже лучших в ней, но также имеющих и другие интересы», – пишет компания Staff.com в своем блоге.
6. Не стоит добавлять информацию о своем среднем балле, если он низок
«Всем известно, что в Google не станут смотреть на средний балл, если инженер достаточно хорош. Но тем не менее, когда специалист по кадрам будет сравнивать ваше резюме с тысячами других, лучше не добавлять в него то, что не является вашим преимуществом. И я думаю, что низкий средний балл все-таки снижает ваши шансы», – говорит специалист по кибербезопасности Шубхам Бансал.
7. Дождитесь, пока с момента вашего выпуска из университета пройдет больше трех лет
«Если вы подадите заявку в течение трех лет с момента выпуска, в Google запросят информацию об оценках в вашем дипломе, и она навсегда останется в досье, которым пользуются рекрутеры компании. Если вы немного потерпите и не предоставите эту информацию специально, то никто не должен вас об этом спрашивать», – отметил Харви Алькабес, выпускник MIT по специальности «Информатика».
8. Заполните резюме дополнительными увлечениями и активностями
«Главная сложность в том, чтобы пройти проверку резюме. Лучше, если в нем будет что-то кроме информации о среднем балле. Они получают по 3000 резюме в день и физически не могут пригласить на собеседование всех», – уверяет Брюс Р. Миллер, инженер отдела кадров Google.
9. Продемонстрируйте свои инженерные навыки
«Позаботьтесь о том, чтобы у вас были доказательства ваших незаурядных инженерных способностей», – советует Ноам Бен-Ами, инженер по аналитике в Mulesoft.
10. Получите опыт работы над проектами open source
«Я знаю, что все будут стараться подбодрить вас, но реальность такова, что без достаточно солидного опыта работы над проектами с открытым кодом вас вряд ли ждет успех. И это работает не только для Google. Чем больше у вас будет опыта и впечатляющих достижений, тем меньше будет важность оценок», – говорит выпускник Утрихтского университета Ли Провост.
11. Покажите, что вам интересны технологии и работа компании
«Человек, который проводит собеседования кандидатов на работу в компании, должен эту компанию очень любить. Покажите свою страсть к тому, что интересно этому человеку. Да, вы можете сказать, что это попытка выслужиться, и будете отчасти правы. Но именно эта энергия может в конечном счете перевесить все в вашу пользу», – советует один из участников обсуждения на Quora Арнольд У. Мок.
12. Четко обозначьте, чем вы можете быть полезны компании
Источник: Life at Google/Facebook
«К концу дня все сводится к одному вопросу – чем вы можете помочь компании? Страсть, креативность, инициатива и желание доводить дело до конца могут сыграть вам на руку», – пишет Гейл Лаакмаан МакДауэлл, автор книги «Резюме для Google: как подготовиться к карьере и получить работу в Apple, Microsoft, Google или любой другой крупной технологической компании».
Как попасть на работу в Google: 6 советов от бывших сотрудников
Многие хотят попасть в Google, но не все знают о тонкостях трудоустройства в эту компанию. Шесть бывших сотрудников Google рассказали о том, как им удалось туда попасть, и поделились полезными советами для новичков.
Выделяйте правильные пункты резюме
Первый шаг для устройства в Google — сделать так, чтобы на ваше резюме обратили внимание. Кевин Миллер проработал в отделе продаж Google AdWords два года. «Если вас пригласили на собеседование в Google, то, скорее всего, это произошло потому, что в вашем резюме были указаны отличные оценки в колледже и хороший опыт работы», — сказал он.
Похожим опытом делится Нил Сомани, студент Калифорнийского университета, который недавно прошел практику в Google. «Думаю, мне помогло то, что я четко и подробно расписал в резюме свой опыт работы фрилансером», — признался Нил.
Ищите связи
Вспомните про теорию шести рукопожатий. Бывший дизайнер поисковика Нейт Смит проработал в Google четыре года и попал в компанию по знакомству. «Меня пригласили на собеседование в Google по рекомендации моей хорошей знакомой. Она устроилась в Google за год до моего прихода», — рассказал он.
Покажите свою «гугловость»
Google ищет не только кандидатов с определенными навыками и опытом, но и тех, кто определяется неким набором качеств или «гугловостью». Бывший вице-президент Google по персоналу Лазло Бок объяснил, что в вас должны сочетаться веселый нрав, интеллектуальная скромность и добросовестность. Помимо этого, у идеального кандидата должен быть опыт создания различных интересных проектов.
Гугловость отражает вашу личность, считает Кевин Миллер. Она показывает, как хорошо вы ладите с людьми. «На собеседовании в Google у вас спросят, хотели бы вы работать с каждым из рекрутеров каждый день. Или смогли бы вы хорошо работать вместе и нравилось бы вам присутствие этого человека?».
Майкл Брандт проработал в Google два года на позиции продакт-менеджера. Он считает, что ваша личность и коммуникативные навыки, относящиеся к «гугловости» крайне важны для успешного трудоустройства в компанию. «Вас будут постоянно перекидывать на разные проекты, там очень много задач, связанных с разными продуктами и специалистами, — сказал он. — Вам придется постоянно общаться с людьми, занимающими различные позиции в компании».
Будьте готовы, что вам будут задавать вопросы, и не забывайте спрашивать сами
Нейт Смит считает, что важно не только подготовиться к самому собеседованию, но и продумать варианты ответов на возможные вопросы. Когда Нейт работал в Google, он проводил собеседования на должность менеджера по продукту. Сначала он повторял вопросы, которые задавали его коллеги, а затем стал придумывать собственные.
«В основном, эти вопросы касались различных навыков, необходимых на данной должности (умение оценивать продукт, аналитически думать), а также способности в сфере дизайна и программирования, — сказал он. — Обычно в Google подбирают вопросы под конкретного человека. А еще рекрутеры любят, когда кандидаты сами о чем-то спрашивают».
На собеседованиях в Google часто звучит фраза «расскажите о том времени, когда вы. ». Например, вас могут попросить о том, как вы когда-то справились с какой-нибудь проблемой.
«Чаще всего такие вопросы будут связаны с вашим опытом работы, — сказал Миллер. — Например, если вы раньше занимались маркетингом, вас могут попросить рассказать о случае, когда вам не удалось привлечь органический трафик на сайт. Что вы сделали, когда начальник оказался вами недоволен? Как вы отреагировали? И как вам удалось выкрутиться из этой ситуации?»
Но не всегда будут спрашивать только про работу. «В жизни людей случается множество разных испытаний, например, в виде болезней, — добавил Миллер. — Вас могут попросить просто рассказать какую-нибудь историю о том, как вы справились с неприятностями. По ней команда Google лучше поймет, что вы за человек».
Покажите свою заинтересованность
Google предлагает очень привлекательные условия работы, поэтому, чтобы не упустить шанс, некоторые стараются вести себя на собеседованиях осторожно и только отвечать на вопросы рекрутеров. Фалон Фатеми устроилась в Google в 2005 году, когда ей было 19 лет. Ушла она из компании только в 26, все это время она работала в команде YouTube. По словам Фатеми, нерешительное поведение может, наоборот, обернуться против вас. Рекрутеры хотят понять, что вас мотивирует. Не нужно давать слишком правильные ответы на вопросы и говорить то, что хотели бы услышать рекрутеры. Да и на некоторые вопросы невозможно найти верный ответ. Например, у Фатеми на собеседовании спросили, в каком времени она бы хотела жить — в прошлом или будущем.
«Кадровикам нравятся люди, которые дают развернутые и уникальные ответы», — добавила она. — На вопрос о времени я ответила, что хотела бы жить в 60-е в районе Сан-Франциско и увидеть своими глазами дни расцвета хиппи в районе Хейт-Эшбери».
Выскажите свое мнение о продуктах Google
Перед собеседованием обязательно ознакомьтесь со всеми продуктами, с которыми вам предстоит работать на новой должности. Такой совет дала Ажар Хасем, бывшая глава по маркетингу Google Fiber.
«Умейте критиковать эти продукты, — советует Хасем. — Что вам в них нравится? Что можно улучшить? В Google хотят видеть, что вы умеете относиться к продукту критически и что вы в нем разбираетесь». Не бойтесь резко высказывать свое мнение. Еще вас могут попросить рассказать о каком-нибудь событии, например, маркетинговой кампании или запуске продукта, которое прошло либо удачно, либо не очень. Не стоит приводить банальные примеры (например, из опыта Apple). Вспомните о чем-нибудь не таком очевидном — тогда на вас точно обратят внимание.
Продемонстрируйте свои навыки решения проблем
Умение решать проблемы — ценный навык для сотрудников Google. Когда Брандт проходил собеседование, после стандартных технических вопросов ему сказали следующее: «Придумайте несколько вариантов применения дорожного оградительного конуса». К его удивлению, он нашел множество вариантов — от очевидного применения на дороге до возможности делать с его помощью украшения для гигантского торта.
«Такие вопросы задают, чтобы понять, умеете ли вы рисковать и отвечать на неожиданные вопросы, ответы на которые не так очевидны, — прокомментировал Брандт. — Зачастую лучшие идеи появляются на свет, когда группа людей свободно высказывает свои мысли».
Подумайте, какое итоговое впечатление о вас сложится
Скорее всего, окончательное решение о вашем найме будут принимать не те же самые люди, с которыми вы общаетесь на собеседовании. Рекрутеры обычно передают свои отзывы о кандидатуре в специальный комитет.
«В этот комитет входят особенно опытные сотрудники. Обратите внимание на рекрутеров, с которыми вы общаетесь. Если вы заметили, что ваш собеседник наверняка лишь недавно начал заниматься наймом, то комитет явно учтет этот факт, когда будет выслушивать его мнение, — считает Брандт. — Такая система помогает Google находить не только способных сотрудников, но и тех, кто хорошо вписывается в корпоративную культуру компании. Постарайтесь показать на собеседовании, чем вы выгодно отличаетесь от других кандидатов и сделать так, чтобы вас заметили».
«Я разбираюсь в технике, но это не самое мое главное качество. Я человек творческий и очень общительный — именно это я и постарался показать на собеседовании в первую очередь», — добавил он.
Важно произвести нужное впечатление на рекрутеров, чтобы они потом рассказали о нем комитету, считает Миллер. «Сможет ли кандидат показывать достойный результат на работе и хотят ли другие сотрудники видеть этого человека в своей команде? Если ответ «да», тогда результат очевиден», — сказал он.
Как попасть в Google: инструкция по подготовке
Авторизуйтесь
Как попасть в Google: инструкция по подготовке
Сергей Сема, Software Engineer в команде Google в Цюрихе, рассказал на dou.ua о своём опыте трудоустройства
Я постараюсь описать весь свой опыт и те подводные камни, которые я встретил при подготовке к собеседованию в Google и другие компании Долины (Microsoft, Amazon, Snapchat, Evernote, Cruise Automation, Uber и др.). Я ставил цель получить оффер от Google или Facebook, а еще лучше от обеих, все остальные компании были из разряда «ну если там будет очень интересно, то можно». С первого дня, когда я начал подготовку, до момента, когда я получил оффер от Google, прошло 1 год и 5 месяцев. Первый оффер я получил после 1 года и 2 месяцев подготовки. Всего было 7 онсайтов (интервью в офисе компании), из них 3 оффера (Google, Evernote, Cruise Automation). Таки приступим.
Предыстория
Я был вендором в Google в Mountain View на протяжении полутора лет. Там же было несколько гуглеров, которые тоже были вендорами до этого. Конечно, мозг постоянно подсказывал, что они «другие», что они «умнее-лучше-круче», чем я. А мой удел — быть вендором. Я даже один раз попробовал решить задачку на LeetCode. Осилить я смог 5-ю easy задачку, которая получилась на 120 строк кода и в результате так и не прошла тесты. На это ушло 5 часов прекрасного субботнего калифорнийского дня. Я окончательно понял, что вот всем вокруг «дано», а мне нет.
Мотивация
Подготовка к интервью в больших компаниях — это не спринт, это марафон. По моему опыту — от полугода до полутора лет. На этот марафон нужно много топлива, и будет очень печально, если оно закончится на середине пути или в его конце. Поэтому нужно подготовить ресурсы заранее.
Что я имею в виду
Подготовка требует много времени: приблизительно 2-3 часа каждый рабочий день и каждый выходной полностью. То есть, по сути, все свободное время. Я был без жены и детей, и было проще, с одной стороны, — никто не требует постоянного внимания. С другой — никто и не поддерживает.
Я считаю, с людьми, с которыми ты тесно связан, нужно договариваться «на берегу», чтобы они знали, чего ожидать, разделяли цели, помогали в трудные периоды (они будут, у всех они были).
Кроме того, нужно четко понимать, для чего ты это делаешь и что хочешь получить. И лучше всего, чтобы эта цель была вне тебя, больше, чем ты. Если что-то делаешь только для себя — в трудные периоды можно забить, если для кого-то — мотивация намного выше, и это помогает не остановиться.
Пример 1: «Я хочу в Google, потому что это круто», «Я хочу в Facebook, потому что там много денег» — это для себя. В любой момент можно найти статью о том, что Google — это тлен, что денег там дали меньше, чем в другой компании, что там скучно, много политики. И что? И все, мотивация упала, книжки с алгоритмами летят в окно.
Пример 2: «Я хочу в Google, чтобы вывезти свою семью в США и дать детям хорошее образование», «Я смогу, имея деньги от Facebook, сделать это и это». В моем случае мотивация звучала так: «Я хочу быть ближе к дому». Я рассматривал переезд в Лондон либо Цюрих. Когда я начал подготовку, я себе так сказал: «Пацан, ты следующий раз полетишь домой, когда получишь оффер, и только так». Домой хотелось, и это давало энергию. Я думаю, это работает не для всех и не всегда, но для меня сработало.
Второй трюк — подготовка в парах. Лично я его не использовал, но мои друзья успешно так готовились. После работы люди вместе садятся в одной переговорке и решают задачки, каждый свою. А еще решают задачки у доски: один играет роль интервьюера, второй интервьюируемого. Таким образом можно получать фидбэк.
Процесс в общем
Весь путь можно разделить на несколько этапов:
Решение задач
Это самая важная и самая длительная часть подготовки.
Сколько задач нужно решить? Я считаю — 200-250, из которых 40-50% easy, 40-50% medium, 10-20% — hard. Я решил около 300, мои друзья — 120-160.
А что если сначала пройти курс по алгоритмам, а потом решать задачки? Это была моя первая идея, спасибо друзьям, отговорили. Задачки уровня easy не требуют знания сложных алгоритмов, а простые можно дочитать в процессе решения задач.
А что если я сначала прочитаю всю книжку «Cracking Coding Interview» с решенными задачками и уже весь подготовленный пойду в бой? Не стоит:) Решение, которое я просто прочитал, я не мог вспомнить даже под конец того же дня, не говоря уже через несколько дней.
Можно прочитать начало «Cracking Coding Interview». Там хорошо описан сам процесс интервью, как общаться, базовые вещи об алгоритмах и структурах данных, как анализировать сложность алгоритмов и т. д. К примеру, как анализировать сложность рекурсивных алгоритмов я понял именно из нее.
Перед тем как начать решать задачки на определенную тему можно прочитать решение схожих задач в «Cracking Coding Interview». Причины тут две:
А какие вообще существуют задачи, какие темы нужно покрыть?
Понять, какие вообще тематики существуют, можно с InterviewBit. Мне не очень понравилось там решать задачи, но вот общее представление я получил. Ну и кроме того, можно полистать «Cracking Coding Interview».
В какой последовательности стоит решать задачи?
Нужно идти от простых тем к сложным (InterviewBit подскажет порядок). В каждой теме решать задачки до тех пор, пока не начнет хоть чуть-чуть получаться, и в этот момент сразу переключиться на следующую тему. Начинать, конечно, с уровня easy. Я пытался решать каждую задачу на протяжении около получаса-часа. Если не смог — шел смотреть решение. На LeetCode к каждой задаче есть форум, где люди постят свои решения, обсуждают, голосуют. Я выбирал топ решений и изучал их, так и учился. Наверное, эти форумы — самое ценное место для обучения. Далеко не все решения просто понять, даже те, под которыми стоят комментарии «This is absolutely awesome. ».
Например, начал я решать задачи на строки. 1-я — не решил, пошел смотреть решение, 2-я… 5-я — то же самое. 6-я, 7-я — решил. Значит, пора переключиться на следующую тему. Секрет такой — переключаться между темами нужно как можно чаще, так лучше запоминается. Но если переключиться до того, как начнет получаться, то через несколько тем можно демотивировать себя полостью. Мозг услужливо подскажет: «Ну раз ты ничего не можешь решить — то иди выпей пивка и посмотри футбол, это просто не твое». Нужно быть готовым к тому, что самооценка и настроение будут как американские горки: получается — мы несемся вверх, не получается — унываем и падаем вниз. Просто нужно помнить, что и первое, и второе — это временно, нужно продолжать. Если долго нет результата — брать задачки проще.
Как происходит решение задачи?
Конечно, можно просто взять и решать задачки на LeetCode и не заморачиваться с тем, что я опишу ниже. Но результат будет куда лучше, если использовать следующий алгоритм, поскольку он полностью повторяет шаги на реальном интервью:
Я понимаю, что это звучит как «чертова куча бесполезной работы». «Я же могу просто взять и написать код в LeetCode». Но все эти шаги после некоторой практики будут занимать минуты или даже секунды, что критично на интервью. Очень многие ребята засыпались на том, что им не хватило времени, чтобы дописать-отдебажить решение. И я один из них.
А что же делать, если задачка не решается?
Когда я не смог придумать решение за полчаса-час (сначала бывало, что я по полдня страдал над одной задачей), то шел смотреть лучшие решения на форуме. Разбор решения — почти всегда непростая задача и требует времени: нужно пересмотреть и понять несколько решений, понять сложность, дочитать ссылки на алгоритмы, которые указывают авторы решений. Большинство алгоритмов я нашел и изучил после того, как встретил их в реальных решениях. А что же дальше с этим делать? А дальше нужно повторить с этой задачкой все шаги, которые я привел выше. И куда лучше сделать это на следующий день или как минимум под конец этого дня.
Все свои решения я заливал на GitHub. Хорошо видна статистика, и всегда есть доступ к коду. Это я начал делать после того, как LeetCode затер все мои решения. Так что LeetCode — не лучшее место для хранения своих решений.
Важно вести статистику (вот моя), в которой будет следующее:
Это я считаю критически важным, так как задачи нужно будет повторить, и в первую очередь нужно повторять A, за ними — B.
Ноу-хау «дверь»
После того, как я решил порядка 230 задач (это был мой изначальный план), я переключился на изучение алгоритмов (об этом позже). Когда я прокачался в алгоритмах, что заняло около двух месяцев, пришло время задачи повторять. И вот здесь получилась интересная штука: повторить задачу — по времени не многим меньше, чем решить ее (так как шаги нужно использовать те же, только код из тетрадки не переписывать в IDE). И тут пришла долгожданная демотивация — не чувствует организм, что делает что-то полезное, и все тут. Я стал думать, как проблему решать, понял, что я визуал и мне нужно визуальное подтверждение своей деятельности. И оно нашлось. Каждую задачу, которую повторил, я записывал на стикере: номер задачи, сложность (easy, med, hard), тема и краткое решение. Краткое решение — это не код. Как оказалось, код запомнить почти невозможно, а вот простые шаги типа «1. Создаем мапу с каунтерами, 2. Находим в ней Х …»- вполне. Задачи из одной темы попадают в один ряд, сложность можно отмечать цветами (это я понял позже).
Цель была следующая — все решенные задачи должны быть повторены и появиться на двери как стикеры. Когда я наклеил первые 10 стикеров и это отняло несколько дней, честно скажу, хотелось плакать. Мозг подсказывал: «До 230 осталась бесконечность».
В результате на моей двери появилось 218 наклеек. Некоторые задачи я так и не успел повторить.
Алгоритмы
Я изучал алгоритмы по курсам дедушки Седжвика на Coursera (часть 1, часть 2). Видео этих курсов можно найти на торрентах.
После первой домашки из этих курсов я решил, что делать их не буду. Причина — в домашних работах больше использование готовых библиотек с алгоритмами, нежели реализация этих алгоритмов. Но и просто прослушивание курса результата не даст вовсе. Я слушал и полностью конспектировал, в результате у меня получилось две тетрадки с полным конспектом, которые я перечитал 4-5 раз. Очень помогало в последние несколько дней перед собеседованием, когда нужно повторять много и быстро.
Второй важный нюанс — в процессе решения задач стало понятно, что есть некоторые алгоритмы и трюки, которые в курсы Седжвика не входят, но знать их нужно. К примеру, как построить лабиринт? А как по лабиринту пройтись и найти выход? И, конечно, по каждой такой проблеме есть миллион документов. Но перед собеседованием нет времени читать миллион документов — нужно кратко и по сути. Вот я и собрал в один док такие вещи.
Дизайн-интервью
Дизайн-интервью состоит из так называемых открытых вопросов по дизайну, типа «как задизайнить YouTube». По началу я совсем не мог понять, что требуется и как это должно выглядеть. Потом я нашел курс «Grokking the System Design Interview», который мне открыл глаза. Он стоит свои 80 баксов.
Вот еще одно видео от Джексона (Facebook guy), которое даст понимание процесса. Хорошее обсуждение на Quora.
Еще очень полезно почитать примеры реальных проблем, например, на High Scalability. Если у компании, в которую идем на собеседование, есть инженерный блог, его точно стоит почитать.
Behavioral-интервью
Можно писать много, но за меня хорошо скажет Джексон. В моей практике такое интервью было только в Facebook. Задача интервьюера — понять, что ты собой представляешь как личность, будет ли с тобой комфортно работать, как ты себя будешь вести в условиях конкретной компании.
Например, на таком интервью в Facebook меня спросили следующее. Вот две команды. В первой есть менеджер, аналитики, задачи пишутся, процессы построены, все знают, кто и что должен делать. Вторая — не структурирована, нет четкого лидера (эта роль переходящая), как делать — не ясно, понятно только, что должно получиться в результате (то есть полная неопределенность). В какой команде тебе более комфортно работать? Вопрос был еще более сложно завернут. Суть такая — в Facebook команды не структурированы, второй вариант хорошо описывает, как у них все строится. И если тебе с этим не комфортно жить, значит, наверное, нанимать тебя не стоит.
Mock-интервью
Mock-интервью — это то же самое, что и обычное интервью с той разницей, что его проводят друзья, коллеги или специальные компании. А потом дают свой отзыв — что хорошо, что нужно поправить. Это тоже критически важный шаг, упускать его не стоит. Конечно, будучи в Долине, сделать это в разы проще. Вокруг меня было много друзей гуглеров, действительно клевых ребят, которые мне провели порядка 20-ти mock-интервью. Я был как Том Сойер, который взялся красить забор, а в результате красили забор все. Интервью мы проводили, конечно, на английском на вайтборде со строгим ограничением по времени.
Телефонные mock-интервью (а потом и реальные) я проходил на interviewing.io. Я просто полюбил этот ресурс, ребята реально молодцы. Но они сейчас заточены под США и предоставляют этот сервис по США. Бывали дни, когда у меня в неделю было около 7-8 собеседований на interviewing.io.
Сначала было страшно и некомфортно. Но к 10-му разу я привык, и стало нравиться. Первые интервью я валил, потом стало получаться. Средняя конверсия была 50%, то есть половину прошел, половину — нет. Всего телефонных собеседований (реальных и mock) было около 30-35.
Как подаваться
Самый простой и самый малоэффективный метод — заполнить форму на сайте компании. Но иногда и он дает результаты. К примеру, я заполнил форму на сайте Snapchat, и на следующий день со мной связался рекрутер, мы договорились о телефонном интервью. С Google, я думаю, это абсолютно бесполезно, так как эту формочку заполняют тысячи раз в день.
Второй способ — сайты работ типа Hired.com. Ты заполняешь все данные о себе, а потом компании, которым ты подходишь, сами с тобой связываются. Сервис ориентирован на рынок США. Без H1 или грин-карты там делать нечего.
Способ третий — interviewing.io, о котором я упоминал выше, и схожие сервисы. Они работают так: сначала ты проходишь на их платформе телефонные mock-интервью. Как только ты успешно проходишь два, они дают тебе возможность проходить анонимные телефонные интервью с реальными компаниями на их платформе. К примеру, сотрудник Uber и ты заходите в одно и то же время, и он тебя собеседует. Если прошел — дальше онсайт. Mock-телефонное и реальное телефонное интервью не отличаются вовсе. Минусов в interviewing.io несколько. Первый — они больше сотрудничают со стартапами, больших компаний мало. Второй — ориентированы на Штаты (нужна H1 или грин-карта).
Способ последний и самый эффективный — через реферала. Это когда человек, который работает в компании Х, дает референс на тебя рекрутеру. Он должен указать, откуда он тебя знает и почему считает, что ты подходишь + твое резюме. Вероятность, что с тобой после этого свяжутся, очень высока. Если не связались, скорее всего, рекрутер увидел в резюме что-то, что его насторожило.
Резюме
Резюме инженера в Долине и Украине очень отличается. Оно должно быть кратким (лучше не выходить за рамки двух страниц), показывать, что ты реально сделал (твой импакт для компании).
Лариса, инженер в Google, много пишет на тему интервью, Google, Долины в своем блоге. У нее есть интересный раздел «Резюме на проверку». Здесь люди открывают доступ к Google doc со своим резюме, Лариса и другие читатели его комментируют и пытаются улучшить.
Телефонное интервью
Стандартное телефонное интервью включает в себя общение голосом (по телефону, скайпу, hangouts и т. д.) и написание кода в shared Google doc или shared online IDE. Занимает по времени 1 час либо 45 минут, это нужно уточнить заранее.
Первые пару минут уходят на знакомство — интервьюер расскажет немного о себе, соискатель в ответ тоже должен рассказать, кто он и что он. У меня сначала с этим было туго, потом я написал и отточил self-presentation на 2 минуты, отрепетировал ее с помощью диктофона. Это, по сути, первое впечатление о тебе, и лучше его не испортить.
Дальше интервьюер копирует в shared doc условие задачи и несколько примеров. Сразу стоит уточнить, сколько дается времени на решение задачи, поскольку задач может быть одна, две или даже три. Часто это две задачи — одна простая для старта и вторая уже более серьезная. Иногда это одна задача, но после того, как готова первая часть, интервьюер усложняет исходную задачу дополнительными условиями. После всех уточнений нужно идти по плану, который я приводил для решения задачи.
Очень важный момент — ни в коем случае не начинать писать код до того момента, пока ты полностью не понял решение задачи. Иначе очень большая вероятность напутать в процессе и превратить код в спагетти с последующим провалом. Еще раз — ни в коем случае не писать код, пока не нашел решение. Я совершил эту ошибку до десятка раз, и каждый раз жалел об этом.
Самый эпический пример этой ошибки у меня случился на онсайт-интервью в Evernote. Задача была следующая — распарсить CSV-файл с расписанием поездов и написать программку, которая будет подбирать оптимальный поезд по определенным условиям. Можно гуглить. Я до этого код для работы с файлами на джаве не писал и растерялся. Решил так, я сейчас быстренько с файлами разберусь, а там уже как-то алгоритм построю. Времени на все — 1 час 15 мин. Я полчаса строил красивые врапперы вокруг чтения из файла, пучок сущностей, описывающих поезда, маршруты и прочий мусор. При этом мало представлял, как алгоритм выбора будет работать. Дальше я понял, что я не успеваю, не понимаю, как строить алгоритм, подступила паника. За 12 минут до конца собеседования я понял, как оно должно быть. За 15 минут (с опозданием в 3 минуты) я написал код (с парой ошибок, правда). Так быстро я не писал код никогда в своей жизни.
Онсайт-интервью
Если телефонное интервью прошло успешно, следующий шаг — онсайт. Компания покупает тебе билеты на самолет, оплачивает отель, и ты летишь к ним в гости. Я так летал в Лос-Анджелес на интервью в Snapchat.
Все интервью проходят в один день, одно за одним с перерывом на обед. Рекрутер высылает заранее имейл с расписанием, в котором указано время, тип интервью, имя интервьюера. К примеру в Snapchat у меня было два технических до ланча и три после. Между интервью нет перерыва, если затянул одно интервью — украл у себя время на следующем. Поэтому лучше сразу узнать, где у них вода и уборная, и, если нужно, бежать туда, как человек-молния.
Какие бывают типы интервью на онсайте и как к ним подготовиться
Классическое техническое интервью с задачами
Тут все относительно понятно — то же самое, что и на телефонном. Нужно держать в голове следующий факт — уложиться нужно в ⅔ времени и ⅓ оставить на непредвиденные обстоятельства, поверьте они будут. В Google одно интервью 45 минут, это означает, что после знакомства у вас есть 25 минут на все. Из них 2-5 минут на то, чтобы понять задачу и нарисовать примеры, 2-5 — чтобы придумать решение и 15-20 на написание кода и дебаггинг. Во время дебаггинга, конечно, всплывут ошибки, и их нужно быстро и красиво пофиксить. Именно на это и нужна та заветная ⅓.
Нюанс — всегда нужно идти на интервью со своим лэптопом. Первым делом нужно спросить, можно ли кодить на нем. В Facebook меня спросили: есть лептоп? хочешь на нем кодить? Ответ — конечно, да! Это быстрее, и вероятность ошибки в разы ниже. К тому же, переписывать код на вайтборде и в IDE — это две большие разницы. У меня неоднократно была ситуация, когда я исправлял ошибки на вайтборде, в результате чего код становился абсолютно нечитаемым (и, скорее всего, с новыми ошибками). Интервьюеры смотрели на это с грустью и слезами.
На лэптопе должны быть любимая IDE и проектик с типовыми шаблонами:
Еще помните мой печальный опыт с Evernote? Так вот, на следующем онсайте меня тоже попросили распарсить CSV, это заняло 3 минуты. Интервьюеры не против, если ты используешь такие шаблоны — это экономит время, и они понимают, что ты способен нагуглить, как распарсить файл.
Важный момент — нужно всегда контролировать время. На одном из интервью в Google мой интервьюер, парень лет 25-ти, задал мне хитрую задачку на динамическое программирование. Я нашел способ, как ее решить за квадратичное время, на что он спросил: «А лучше можно»? И я начал искать, как это сделать, подступала паника, но решение «лучше» найти я не мог. Наш диалог дальше:
Я: Не могу придумать решение лучше. Может, напишем мое решение и после этого подумаем?
Он: Давай еще 10 мин подумаем. Если не найдешь, напишем твое.
Я: Мне кажется, что времени может быть мало. Давай все же напишем мое сначала.
Он: Ну ок.
Я успел дописать свое решение с опозданием в 5 минут. Если бы послушал его, то не написал бы ничего и провалил интервью на 100%. А после такого в космонавты не берут. Штука в том, что он прикидывал, сколько времени нужно ему для написания задачки на доске, зная решение досконально.
Рассказ о предыдущем проекте
К этому вопросу нужно хорошо подготовиться заранее, продумать, что рассказывать. Можно даже подготовить небольшую презентацию в Google Slides и рассказывать по ней, параллельно рисуя диаграммы на вайтборде. Здесь нужно показать важность решения (для чего все это) и сложность решения.
После первого провала на таком интервью я сделал презентацию на 14 слайдов с множеством смешных гифок (это идет, друзья!) и отточил ее дома перед зеркалом. Потом в начале такого интервью я всегда спрашивал, сколько у меня есть времени на презентацию, и дальше показывал либо все слайды, либо только ключевые. Конечно, нужно быть уверенным в том, что вся информация на слайдах является публичной и не выдает корпоративных секретов.
Дизайн-интервью
Это отдельный зверь, не очень страшный, но специфический. Здесь тебе дают очень общие начальные условия типа «Нужно построить Dropbox» и смотрят, как ты продираешься через терновые кусты неопределенности. Какие вопросы ты задаешь, как анализируешь проблему.
Мои выводы по этому типу интервью:
Вопросы интервьюеру
В конце каждого собеседования интервьюер оставляет 5 минут для того, чтобы ты мог задать вопросы.
Пример плохих вопросов: на каком языке программирования вы пишете? На каком клауде у вас стоит инфраструктура? Какая у вас СУБД? В чем тут проблема — компания нанимает универсального солдата, который за месяц-два должен разобраться в технических деталях. То есть это, по сути, не важно, это как-бы слишком узко.
О чем лучше спрашивать? Самое простое: что интервьюеру нравится и не нравится в компании, почему он выбрал эту компанию. Можно спрашивать о бизнесе: как он устроен, какие проблемы и потребности существуют. Можно спрашивать об условиях работы: когда люди приходят и уходят с работы, работают ли удаленно, как много митингов, каких именно.
За 10 дней до важного онсайта
У меня было два самых важных онсайта — Google и Facebook. Google был первым, и я достаточно сильно переживал. За 10 дней до онсайта я составил расписание на каждый день, что нужно сделать. Оно содержало следующее: повторение алгоритмов, типовых задач, задач, которые встречались на собеседованиях в Google, вопросы по дизайну. 5 дней до интервью я не ходил на работу и ушел в подготовку с головой.
Мне стало интересно, как спортсмены готовятся перед важными соревнованиями. Что они делают для того, чтобы не запаниковать в критический момент? Один из важных моментов — это прокручивание в голове будущего выступления и тренировка в условиях, приближенных к реальным.
Поскольку я был TVC в Google (и мне до выходных назначили переговорку, где будет проходить интервью) я приходил и готовился там. Я приезжал в то же время, когда я приеду в день интервью, и парковал машину там, где буду это делать через несколько дней. Я переставлял стулья и выбирал цвет маркера, размер шрифта, которым удобно писать на вайтборде. Возможно, именно это позволило взять себя в руки в момент, когда я чуть было не завалил одно из интервью.
Финал
Через несколько дней после онсайта мне позвонил рекрутер. Поздравил, сказал, что я молодец, все прошло хорошо. Мне нашли команду в Швейцарии в Цюрихе. Официальная позиция — Software Engineer. Я выдохнул. Голова была абсолютно пустой, я добежал. Забег в 1 год и 5 месяцев объявляется закрытым.