За шесть дней программист с ником Bay Area Belletrist прошел собеседования в LinkedIn, Yelp, Apple, Amazon, Facebook и Google и получил шесть предложений о работе. В своей колонке на Medium он рассказал, как ему это удалось.
Введение и статистика
Я знал, что хотел работать в Кремниевой долине и развиваться в большой компании. Мне нравилось работать в стартапах, но я решил попробовать что-то новое. Я не был уверен в том, где именно хочу работать и сколько зарабатывать. И я не хотел отправлять резюме в сто компаний, как я делал после окончания университета.
В итоге я написал в 20 компаний, сразу же мне отказали четыре (Reddit, Nest, Stripe, Uber). Из оставшихся 16 десять мне так и не ответили (Lyft, Airbnb, Dropbox, Instagram, YouTube, Square, Robinhood, Twitter, Snap, Slack). Шесть компаний предложили мне побеседовать сперва по телефону, затем пройти собеседование в офисе. По окончании я получил офферы от каждой.
За все время поиска новой работы мой календарь выглядел примерно так:
- Семь созвонов с рекрутером за десять дней
- Cемь собеседований по телефону за одиннадцать дней
- 29 собеседований в офисе за восемь дней
Я очень уставал, поскольку мне приходилось во время каждого перерыва на обед общаться с потенциальными работодателями и вставать рано утром, чтобы уходить пораньше и отвечать на звонки вечером.
Компании
LinkedIn (Саннивейл, Калифорния)
Мне всегда нравились мобильные приложения LinkedIn. Я был очень впечатлен на протяжении всего процесса найма – меня приятно удивила культура компании и их процесс разработки.
Yelp (Сан-Франциско, Калифорния)
Мне очень понравилась атмосфера в офисе. Компания базируется в красивом здании, и я хотел бы работать с каждым из моих интервьюеров. Yelp значительно меньше других организаций, о которых я расскажу в этой статьей, и это хорошо. Коллектив показался мне очень сплоченным и процесс найма прошел быстро.
Apple (Купертино, Калифорния)
С самого детства (или по крайней мере с двенадцати лет) я был большим фанатом Apple. Именно из-за Mac я стал интересоваться программированием. С помощью iOS SDK я разработал первое приложение. И я просто не мог поверить в то, что они пригласили меня на собеседование и впоследствии позвали работать к себе.
Amazon (Пало-Альто, Калифорния)
Конечно, не могу назвать Amazon лучшей компанией по мобильной части. Однако позиция, на которую я претендовал, соответствовала моим критериям. Мне не очень нравится офис в Пало-Альто, но это временно: вскоре они переедут в новое здание. Люди, с которыми я общался, верят в продукт. В целом мне понравилось.
Facebook (Менло-Парк, Калифорния)
Я проходил собеседование в самом новом здании Facebook. В общем и целом все было здорово, но в подробности вдаваться не буду, потому что это было мое пятое собеседование, я мало спал и многое забыл. Я помню, как приятно мне было общаться с сотрудниками этой компании, да и само собеседование прошло интересно.
Google (Маунтин-Вью, Калифорния)
Google, в моем понимании, проводит довольно «общие интервью». Я разговаривал со многими членами команды, занимающимися одним из самых больших продуктов Google по части iOS, но никто из них не был моим интервьюером. После того, как я прошел этап с комитетом по найму Google, я перешел на новую фазу: работу в команде. Они хотели проверить, смогу ли я найти общий язык с другими сотрудниками. Это был очень длительный процесс.
План обучения
В самом начале я практически ничего не знал. Я выполнял простые задачи на Leetcode за 30 минут и в целом знал, как решить примерно 25% средних по сложности задач. Мне нужно было восполнить большой пробел в знаниях.
Я начал с книги «Cracking the Coding Interview». По воскресеньям я отправлялся в кофейню и решал задачи из книги. После этого я возвращался к разделам Leetcode, которые я пропустил. Через несколько недель мне показалось, что я понял основы, и перешел к следующей фазе.
Я начал читать «Elements of Programming Interviews». Эта книга значительно сложнее первой. В ней рекомендовались учебные планы, которым я почти всегда следовал. Через месяц регулярной практики я снова вернулся к задачам на Leetcode. Я не смог выполнить все, но я решил достаточно. Главное в подготовке к собеседованию – научиться понимать проблему. Необязательно знать, как решать каждую задачу. Это невозможно. Почти все вопросы, которые мне задавали во время собеседований, были для меня новыми, но чем-то напоминали те, что я решал во время подготовки.
Вынесенные уроки
Главное – стремление к учебе. Когда я искал работу после университета, я сдался через две недели. Проблема в том, что я не мог заставить себя учиться. С момента начала моего обучения прошла неделя, и я добился минимального прогресса: был ли смысл продолжать терять время дальше? В этот раз у меня не было выбора. Главное – стремление к учебе.
Практиковаться очень важно. Только при помощи практики можно восполнить оставшиеся пробелы в знаниях. Компании не нанимают людей, основываясь на знаниях, с которыми они родились. Они нанимают тех, кто может выполнять свои обязанности хорошо, несмотря на то, как они получили свои знания.
Практикуйтесь с друзьями. Симуляция среды собеседования помогает бороться со страхом и волнением. Практикуйтесь с друзьями. Озвучивайте свои пусть даже глупые мысли касательно решения задачи. Лучше всего делать это с человеком, который понимает проблему, чтобы он смог подтолкнуть вас к решению. Такой опыт бесценен.
Это игра цифр. Вы можете эффективно практиковаться и все равно не получить работу, потому что нужный человек не увидел ваше резюме или вы не сразу поняли решение задачи. Лучшее, что вы можете сделать – увеличить свои шансы. Отправляйте резюме в каждую компанию, где вы хотели бы работать.
Фокусируйтесь на процессе решения задачи, а не на самом решении. Недостаточно просто запоминать куски чужого кода. Проанализировав около 20 алгоритмов, я увидел закономерности и смог приводить решение на ходу.
Не расстраивайтесь. На некоторых собеседованиях я не знал, как решить задачу, и интервьюеры подталкивали меня к решению. И все равно я получил от них офферы. Однажды мне показалось, что я полностью провалил интервью, но мне все равно предложили работу позже. Все может случиться. Главное – не опускать руки.
Не отбрасывайте задачи. Я помню, как занимался с другом, и он отбрасывал сложные проблемы, объясняя это тем, что они никогда не попадутся на собеседовании. Как ни странно, из четырех таких задач мне попались две. Если вы видите, что определенная концепция встречается чаще остальных, попробуйте ее понять.
Не недооценивайте важность поведенческих вопросов. Я думаю, что смог добиться успеха благодаря своим честным ответам на вопросы. Как мне кажется, многие разработчики обладают сильными техническими навыками и все равно не могут найти работу, потому что ведут себя невежливо или чувствуют себя некомфортно на собеседованиях. Практикуйте поведенческие навыки так же усердно, как и технические.
Если вы знаете больше, покажите это. Довольно часто на собеседованиях я отвечал на вопрос и упоминал еще что-то, не связанное напрямую с задачей. Не инициируйте разговор о предмете, с которым вы не до конца знакомы, но если вы уверены в своих знаниях, покажите это.
Это было сумасшедшее приключение, и я ни о чем не жалею. Я надеюсь, все мои советы помогут преодолеть страх и получить работу мечты.