За пять дней программист Цзэн Сяаохань прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook и получил пять предложений о работе. Он поделился своими впечатлениями в блоге на Medium.
С чего все началось
Я работал в Groupon на протяжении трех лет. Это моя первая работа, и мне посчастливилось быть в одной команде с талантливыми людьми и заниматься интересными проектами. Мы разрабатывали классные вещи. Но позже мне начало казаться, что я научился там всему, чему мог, и пора было двигаться дальше. Я был разработчиком и жил в Чикаго. На тот момент меня привлекали технические компании, расположенные в Кремниевой долине.
Фото: Medium
Жизнь коротка, а профессиональная жизнь еще короче. Я поговорил с женой и, убедившись в ее поддержке, решил сменить работу.
Подготовка
Меня интересовали позиции, связанные с машинным обучением. В каждой компании они называются по разному, следовательно, отличается и сам процесс собеседования. На тот момент мне подходили три разных вакансии – разработчик машинного обучения (LinkedIn, Google, Facebook), дата-инженер (Salesforce) и разработчик в целом (Airbnb). Соответственно, мне нужно было готовиться по трем различным направлениям: кодинг, машинное обучение и проектирование системы.
Так как я все еще работал в Groupon, на подготовку у меня ушло два-три месяца. Вот как я готовился:
Кодинг
Я считаю, очень сложно оценить навыки программиста, просто посмотрев, как он пишет код. И все же пока не придумали способа лучше, поэтому это просто надо пережить, чтобы получить работу.
В основном для занятий я использовал Leetcode и Geeksforgeeks, но думаю, что вам так же отлично подойдут Hackerrank и Lintcode. Я потратил несколько недель на повторение алгоритмов и структур данных, затем я сфокусировался на том, чего не знал. Каждый день я решал примерно по две проблемы.
Фото: Unsplash
Мои советы:
- Занимайтесь. Занимайтесь как можно чаще и усерднее.
- Не решайте все 600 проблем на Leetcode. Лучше попробуйте понять каждую проблему. В целом я решил 70 задач, и этого было достаточно. Если вам не помогут 70 задач, тогда, вероятно, вы делаете что-то не так.
- Решайте самые сложные проблемы. Потом все будет проще.
- Если вы застряли на какой-то задаче и не знаете, что делать дальше, посмотрите решения. Не тратьте время зря.
- Справившись с задачей, сверьтесь с решениями. Иногда я был просто поражен, как красиво и легко представлены некоторые решения, особенно если они были написаны на Python.
- Пишите на языке, который лучше всего знаете.
Проектирование системы
Эта область уже более тесно связана с опытом работы. Во время собеседований вас могут спрашивать об архитектуре системы, объектно-ориентированном проектировании, проектировании схем баз данных, масштабируемости и так далее.
Есть огромное количество онлайн-ресурсов, которые помогут вам подготовиться. Вот некоторые из них. Мне они показались очень полезными:
- http://blog.gainlo.co
- http://horicky.blogspot.com
- https://www.hiredintech.com/classrooms/system-design/lesson/52
- http://www.lecloud.net/tagged/scalability
- http://tutorials.jenkov.com/software-architecture/index.html
- http://highscalability.com/
Несмотря на то, что на таких собеседованиях задают абсолютно разные вопросы, есть общие рекомендации, как подойти к решению проблемы:
- Для начала поймите требования, затем опишите проект и плавно перейдите к деталям реализации. Не перескакивайте сразу к деталям, не прочитав внимательно требования.
- Не существует идеального проектирования системы. Просто поймите, что от вас требуется, и сделайте это.
Как лучше всего подготовиться к такому собеседованию? Сесть и начать проектировать систему. Вместо того чтобы выполнять минимальную работу, углубитесь в инструменты, фреймворки и библиотеки, которые вы используете.
Блоги, кстати, также являются прекрасными источниками знаний. Я очень рекомендую Hacker Noon.
Дайте свободу своему любопытству. Обучайтесь постоянно. Будьте губкой, которая впитывает всю информацию.
Машинное обучение
Такие собеседования следует разделить на две части: теория и разработка продукта.
Если у вас нет опыта работы в машинном обучении, я бы посоветовал прочитать некоторые учебники. Есть классические сборники на английском – например, «Elements of Statistical Learning», «Pattern Recognition» и «Machine Learning».
Фото: Unsplash
Вы должны понимать базовые концепции, такие как дилемма смещения и дисперсии, переобучение, градиентный спуск, L1 и L2-регуляризация, Теорема Байеса, коллаборативная фильтрация и так далее. Повторите общие формулы. Попробуйте внедрить простые модели, например, дерево принятия решений и метод k-средних. Если вы укажете какие-то из моделей в своем резюме, убедитесь в том, что вы действительно понимаете их и сможете рассказать об их преимуществах и недостатках на собеседовании.
Вот что я вам посоветую для разработки продукта на основе машинного обучения:
- Выясните цель.
- Выберите правильный алгоритм. Будьте готовы обосновать свой выбор.
- Подберите или спроектируйте подходящие функции, основываясь на имеющейся информации.
- Выберите метрики производительности вашей модели.
- Дополнительно расскажите, как можно оптимизировать модель для прозводства.
Процесс собеседования
Сначала я просто отвечал на сообщения HR-менеджеров на LinkedIn. В итоге меня пригласили на пять собеседований, и я отправился в Сан-Франциско. Я прилетел в воскресенье, пообщался с 30 интервьюерами в лучших технических компаниях мира и, к моему удивлению, получил все пять предложений о работе.
Фото: Medium
Собеседования по телефону
Обычно все телефонные собеседования проходят одинаково. Единственное отличие – их длительность: LinkedIn, например, общались со мной час, Airbnb и Facebook – 45 минут.
Самое главное – профессионализм, ведь у вас есть всего лишь один шанс, и время очень ограничено. Вам необходимо быстро распознать тип проблемы и выдать правильное и качественное решение. Озвучивайте интервьюеру ход своих мыслей. В начале это может немного вас замедлить, но общение здесь важнее всего.
Для экономии времени я решил пройти все телефонные собеседования за один вечер. С одной стороны, это довольно удобно, с другой стороны, если первое собеседование пойдет не по плану, ваше плохое настроение может повлиять на ход последующих. Поэтому не всем такой подход может прийтись по душе.
В офисе
Это было мое первое собеседование в Калифорнии. Мне очень понравился офис. Все выглядело очень стильно, и люди оказались большими профессионалами.
Фото: HGA
Каждая сессия длилась один час. Вопросы по кодингу были абсолютно стандартными, а вот с машинным обучением было сложнее. Мне повезло, потому что HR-менеджер заранее отправила мне письмо с материалами для подготовки. Это очень помогло. В конечном итоге, не было никаких сюрпризов.
Видимо, тот факт, что компанию приобрела Microsoft, пошел LinkedIn на пользу. Они теперь свободны и могут делать по-настоящему интересные вещи. LinkedIn уделяет первоочередное внимание росту и развитию своих сотрудников.
Salesforce Einstein
Крутой проект крутой команды. Когда я пришел в Salesforce Einstein, у меня сложилось ощущение, что я собираюсь устроиться в стартап. Я проходил собеседование в офисе в Пало-Альто. Здесь работает очень сплоченная команда, кроме того, компания соблюдает баланс между работой и личной жизнью. Собеседование делилось на четыре сессии, и они были короче по сравнению с другими компаниями. На самом деле, я бы с радостью посидел там еще дольше.
Абсолютный лидер индустрии, тут нечего добавить. Офис просто гигантский. Нет, вы не представляете, насколько он гигантский. И очереди за едой могут быть очень длинными – что совсем неудивительно. Это отличное место для разработчиков.
Фото: Shutterstock
Я проходил собеседование в офисе в кампусе Маунтин-Вью, и до сих пор не помню, в каком именно. Интервьюеры показались мне очень умными, в чем я убедился, когда они начали говорить. Было бы здорово поработать с такими людьми.
Мне понравилось, что в Google особое внимание уделяют анализу сложности алгоритма. Повторите на всякий случай концепцию «О» большого и «о» маленького!
Airbnb
Растущая быстрыми темпами компания-единорог с уникальной культурой и самым красивым офисом в Кремниевой долине. Отличный выбор, если вы склонны к риску и хотите развиваться.
Собеседование в Airbnb было уникальным, особенно когда мне нужно было писать код. Вам придется писать код в IDE, поэтому нужно, чтобы он скомпилировался и дал правильный ответ. Некоторые проблемы оказались очень сложными
Кроме того, Airbnb проводит межфункциональные собеседования. Компания очень серьезно относится к своей культуре, и даже если вы будете лучшим профессионалом по технической части, не факт, что вы получите работу. Первые два собеседования мне очень понравились. Мы общались на разные темы, и в конце концов я остался доволен.
Фото: Dezeen
Тем не менее, в Airbnb мне было сложнее всего – собеседования были дольше, проблемы – сложнее. Очень важно понимать культуру и ценности этой компании.
Еще один гигант, который продолжает развиваться быстрыми темпами, – Facebook. Их продукт доминирует на рынке социальных сетей, и они продолжают инвестировать в искусственный интеллект и виртуальную реальность. Это отличное место для работы, если вас интересует машинное обучение.
Я не уверен, были ли какие-то инструкции у интервьюеров, но я не получил никакого фидбека касательно моих решений. Я, конечно, считаю, что они были правильными, но все же не уверен, согласны ли были со мной интервьюеры.
Собеседования длились четыре дня, и к концу моя усталость давала о себе знать. Мне казалось, что я справился плохо. Все же я удивился, когда получил предложение и от них.
Люди там верят в будущее компании и гордятся тем, чем они занимаются. Facebook – отличное место для карьерного роста.
Заключение
В итоге я принял предложение от Airbnb. Их подход для меня оказался ближе всего.
Вот какие выводы из своего опыта я могу сделать:
- Жизнь коротка. Профессиональная жизнь еще короче. Сделайте правильный шаг в правильный момент.
- Собеседование – отличная возможность обзавестись контактами и друзьями.
- Продолжайте постоянно обучаться.
- Помните, что нет предела совершенству. Не прекращайте развиваться.
Я очень долго готовился к собеседованиям, потому что продолжал работать в Groupon. Несколько недель я засиживался допоздна за учебниками и просыпался рано утром.
Проходить собеседования в пяти компаниях пять дней подряд – тоже непростое дело. Я бы не советовал вам повторять это. Если вы хотите, чтобы у вас все получилось, не забывайте о необходимости постоянного обучения и усердной подготовки.
Материалы по теме:
Я бросил работу в Google, чтобы основать компанию. Вот как мне это удалось
9 секретов успеха от Уоррена Баффета
Как попасть в Microsoft, Amazon и Twitter без престижного образования
Как не сгореть на работе: почему неэффективны сотрудники, работающие на износ
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
- Пройти курс «Старт работы на Wildberries»
- 1 Более половины длинных постов на LinkedIn написал искусственный интеллект
- 2 Соцсеть LinkedIn внедрила ИИ для поиска работы или сотрудника
- 3 Попали под сокращение? Вот как обновить профиль в LinkedIn, чтобы не отпугнуть рекрутеров
- 4 Эксперимент: можно ли полностью отказаться от сервисов Google и других цифровых гигантов
ВОЗМОЖНОСТИ
28 января 2025
03 февраля 2025
28 февраля 2025