[Перевод] My Silicon Valley Road — пять лучших предложений интернет-компаний за пять дней

машинное обучение Программа перевода самородков интервью дизайн

My Silicon Valley Road - 5 лучших предложений интернет-компаний за 5 дней

В течение пяти дней с 24 по 28 июля 2017 года я проходил собеседования для LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook и получил предложения от всех пяти компаний.

Это был удивительный опыт, и мне повезло, потому что моя тяжелая работа окупилась. Поэтому я решил написать что-нибудь о том, как я готовился, как проходил собеседование и как я отношусь к пяти компаниям.


С чего начать

Я работаю в Groupon почти три года. Это моя первая работа, и я работаю с оченьОтличная командаделаетудивительный проект.
Наша команда делала крутые вещи, оказывала влияние в компании, публиковала статьи и т. д.
Хотя я стремился узнать больше, я чувствую, что скорость моего обучения начинает падать. Меня, инженера-программиста из Чикаго, всегда очаровывало множество крупных компаний в районе залива Сан-Франциско.

Жизнь коротка, карьера еще короче. Поговорив с женой и заручившись ее полной поддержкой, я решил рискнуть и начать свою первую смену карьеры.

полностью подготовить

Хотя меня всегда восхищали вакансии, связанные с машинным обучением, названия и процедуры собеседования для этих вакансий в пяти перечисленных выше компаниях немного различаются. Три из них — инженеры по машинному обучению, Salesforce — инженер по данным, а Airbnb — общий инженер-программист. Из этого я должен был подготовить знания в трех разных областях: кодирование, машинное обучение и проектирование систем.

У меня также есть постоянная работа, на подготовку которой у меня ушло в общей сложности два или три месяца. Ниже показано, как я подготовил эти три области.

кодирование

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

Я в основном использую LeetCode и Geeksforgeeks для практики. Hackerrank и Lintcode также являются хорошими практическими инструментами.
Несколько недель я работал над распространенными структурами данных и алгоритмами. Затем я сосредоточился на областях, с которыми раньше не был знаком, и в итоге ответил на несколько часто задаваемых вопросов. Из-за нехватки времени я обычно задаю только два вопроса в день.

Говорить об идее,

  1. Практикуйтесь больше, это ничего не сказать
  2. Задайте как можно больше разных типов вопросов, уделяя время проработке каждого типа. Не пытайтесь написать все вопросы на Leetcode. Всего я ответил на Leetcode около 70 вопросов, и я думаю, что сделал достаточно. На мой взгляд, если 70 вопросов мало, это значит только, что ваш метод неверен, даже если вы причешите 700 вопросов, он бесполезен
  3. Задавай самые сложные вопросы, остальное легко
  4. Если проблема зависла более чем на 2 часа, посмотрите решения других людей, возможно, это не стоит дополнительного времени.
  5. Когда вы закончите, сравните его с ответами, представленными другими. Меня часто поражают мудрые и элегантные решения чужих детей, особенно детей, которые решают проблемы с помощью одной строки кода Python.
  6. Ответьте на вопрос на языке программирования, с которым вы лучше всего знакомы, и объясните его интервьюеру в доступной для понимания форме.

Системный дизайн

Эта область больше связана с практическим опытом работы. На собеседованиях по проектированию системы будет задано множество вопросов, включая, помимо прочего, архитектуру системы, объектно-ориентированное проектирование, проектирование баз данных, проектирование распределенных систем, высокомасштабируемые системы и т. д.

Есть много онлайн-ресурсов, которые помогают нам практиковаться. Большую часть времени я читаю статьи о системном проектировании и распределенные интервью по проектированию систем, а также анализ некоторых случаев проектирования. Ниже я даю некоторые полезные ресурсы для справки.

Хотя собеседования по проектированию систем охватывают множество тем, есть несколько общих формул, которые могут помочь нам в их решении.

  1. Сначала разберитесь с требованиями, затем нарисуйте эскизный проект высокого уровня и, наконец, перечислите детали реализации. Не вдавайтесь в детали, не поняв требований.
  2. Не существует идеального дизайна системы, необходимо должным образом учитывать фактические потребности.

Сказав все это, лучший способ справиться с собеседованием по проектированию системы - это сесть и действительно спроектировать систему.Например, не всегда выполняйте поверхностную работу в своей повседневной работе, вы можете попытаться глубоко понять Используемые инструменты, фреймворки и сторонние библиотеки.
Например, если вы используете HBase, вместо того, чтобы просто использовать клиент для выполнения некоторых операций DDL и запросов, лучше попытаться понять его общую архитектуру, процесс чтения и записи, как HBase обеспечивает строгую согласованность и какие основные или присутствуют незначительные инкапсуляции Как система использует кэш LRU и фильтр Блума для повышения эффективности.
Вы даже можете сравнить сходства и различия в дизайне между HBase и Cassandra. Таким образом, когда вас попросят спроектировать распределенное хранилище ключей и значений, вы сможете с легкостью справиться с задачей.

Многие блоги также являются хорошими источниками знаний, например, Hacker Noon и технические блоги некоторых компаний, а также официальная документация для многих проектов с открытым исходным кодом.
Самое главное — оставаться скромным и любопытным, как губка, впитывающая все полезные знания.

машинное обучение

Собеседования по машинному обучению обычно делятся на две части: теория и дизайн продукта.

Полезно прочитать некоторые книги, связанные с машинным обучением, если у вас нет опыта исследований в области машинного обучения или у вас есть хороший курс по машинному обучению. Более классические книги, такие как «Дорога к машинному обучению», «Распознавание образов» и «Машинное обучение», — все это очень хороший выбор. Если вы заинтересованы в определенной области, вы можете выбрать больше книг в этой области.

Убедитесь, что вы понимаете основные понятия, такие как баланс дисперсии смещения, переоснащение, градиентный спуск, регуляризация L1/L2, байесовская теория, ансамблевое обучение, совместная фильтрация, уменьшение размерности и т. д.
Знакомство с распространенными формулировками, такими как уравнения Байеса, и популярными моделями вывода, такими как логистическая регрессия и SVM. Попробуйте реализовать следующие простые модели, такие как деревья решений и кластеризация K-средних.
Если вы указываете несколько моделей в своем резюме, убедитесь, что вы полностью понимаете и можете указать плюсы и минусы этих моделей.

Что касается дизайна продукта для машинного обучения, я понимаю общий процесс создания продукта машинного обучения Вот мой подход.

  1. Уточнить наши цели: предсказание, рекомендация, классификация и поиск и т. д.
  2. Найдите правильный алгоритм: контролируемый или неконтролируемый, классификация или регрессия, общие линейные модели, деревья решений, нейронные сети и т. д. И уметь аргументировать свой выбор.
  3. Найти соответствующие характеристики доступных данных
  4. Дайте показатели производительности модели
  5. Оцените, как оптимизировать приведенную выше модель в реальном приложении проекта (необязательно)

Здесь я снова хотел бы подчеркнуть любознательность и постоянное обучение. Не просто вызывайте Spark MLlib или API XGBoost,
Постарайтесь понять причину этого. Например, почему стохастический градиентный спуск подходит для распределенного обучения,
Чем XGBoost отличается от традиционного GBDT, что особенного в его функции потерь, зачем ему вычислять вторую производную и т. д.

Процесс интервью

Начните с ответов на сообщения отдела кадров в Linkedin и попросите рефералов. После неудачной попытки подать заявку на звездный стартап (о нем я расскажу позже),
Начались месяцы упорной подготовки. С помощью рекрутеров я организовал недельные собеседования в районе залива.
Я прилетел в Силиконовую долину в воскресенье, поэтому у меня было пять дней, чтобы провести около 30 интервью с некоторыми из крупнейших технологических компаний мира.
К счастью, я получил предложения от пяти из них.

Телефонное интервью

Собеседования по телефону стандартны в этих компаниях, разница только в продолжительности собеседования. Некоторым компаниям, таким как LInkedin, требуется час, а Facebook и Airbnb — 45 минут.

Профессионализм - ключ к электрической поверхности. Потому что у вас есть только ограниченное время и обычно только один шанс. Вы должны быстро определить тип проблемы и предложить высокоуровневое решение.
Не забудьте рассказать интервьюеру о своих мыслях и намерениях, это может замедлить вас в начале, но общение является самым важным и самым полезным на собеседовании. Не повторяйте свои ответы, интервьюер легко их увидит.

Некоторые компании будут задавать вопросы по машинному обучению для ролей машинного обучения, если вы проходите собеседование, убедитесь, что вы готовы к этим навыкам.

Чтобы лучше использовать свое время, я запланировал три телефонных интервью в один и тот же день с интервалом в один час каждое.
Преимущество этого в том, что я был в состоянии горячих рук, а недостаток в том, что если первый не работает хорошо, это может повлиять на последующее исполнение. Так что не всем рекомендую это делать.

Одно из преимуществ одновременного собеседования в нескольких компаниях даст вам определенное преимущество. После одного телефонного интервью я успешно пропустил второй раунд телефонных интервью с Airbnb и Salesforce, потому что у меня уже были очные интервью с LInkedin и Facebook.

Что еще более удивительно, так это то, что Google позволил мне пропустить их телефон и запланировать собеседование на месте после того, как узнал, что на следующей неделе у меня будет четыре собеседования на месте. Я знаю, что это будет утомительно, но никто не может отклонить приглашение Google на место.

Интервью на месте

LinkedIn

Это было мое первое выездное собеседование в Саннивейле, в офисе всегда светло, а люди выглядят очень профессионально.

Один час на раунд, проблема кодирования приличная, но проблема машинного обучения немного сложнее. Тем не менее, подготовительные материалы, которые я получил от HR, очень помогли. До конца интервью не было вопросов, которые меня слишком удивили.
Я слышал, что в Linkedin лучшая еда в Силиконовой долине, и, как я видел, это не за горами, если это неправда.

После приобретения Microsoft кажется, что Linkedin избавился от финансового бремени, и они начали сбрасывать руки, чтобы делать действительно крутые вещи, захватывающие новые функции, такие как видео, профессиональная реклама и т. д. Как компания, занимающаяся профессиональным развитием, Linkedin уделяет первостепенное внимание увеличению числа сотрудников.
Многие команды, связанные с рекламой и подпиской, расширяются, поэтому поторопитесь, если хотите присоединиться.

Salesforce Einstein

Звездный проект, сделанный звездной командой. Это довольно новая команда и похоже на стартап. Продукт построен на Scala Stack, так что безопасность типов там реальна. Мэтью Товбин выступил с отличными докладами на Scala Days Chicago 2017, а Лия Макгуайр выступила с отличными докладами на Spark Summit West 2017.

Мое интервью проходило в офисе Пало-Альто. Их команда имеет сильную культурную сплоченность и очень хороший баланс между работой и личной жизнью. Все действительно увлечены тем, что они делают. После четырех туров интервью обычно короче, чем в других компаниях, но я хотел бы остаться немного дольше. После интервью Мэтью даже провел меня по гаражу HP.

Google

Абсолютный лидер отрасли, о всем известном Google много говорить не приходится. Но он действительно очень большой. Мне потребовалось 20 минут, чтобы покататься на велосипеде, чтобы встретиться с друзьями. Также есть много людей, стоящих в очереди, чтобы заказать еду, что всегда является хорошим местом для программистов.

Я проходил собеседование в одном из многих зданий кампуса Маунтин-Вью, и я не знаю, в каком именно, потому что оно было таким большим.

Мои интервьюеры выглядели умными. Вы найдете их умнее, когда они начнут говорить. Какое удовольствие было бы работать с этой группой людей.

В интервью Google я думаю, что анализ временной сложности особенно важен. Убедитесь, что вы действительно понимаете, что означает Big O.

Airbnb

Быстрорастущая компания-единорог с уникальной корпоративной культурой и самой красивой офисной средой в Bay Area. Новые продукты, такие как бронирование столиков в ресторанах, элитные сегменты и расширение на китайском рынке, указывают на светлое будущее компании. Это идеальный вариант, если вы хотите быстрого роста и опыта перед IPO и можете терпеть риск.

Тесты Airbnb по коду немного особенные, потому что вы будете писать в IDE, а не на доске, поэтому ваш код должен компилироваться и давать правильные ответы. Некоторые проблемы действительно трудны.

У них также есть то, что они называют типом кросс-функционального интервью. Вот как Airbnb ценит корпоративную культуру, и только техническое совершенство не гарантирует трудоустройства. Два раунда кросс-функциональных интервью меня очень порадовали. У меня был легкий разговор с интервьюером, и мы все были счастливы после сеанса.

В целом я считаю собеседования на месте в Airbnb самыми сложными из-за сложных вопросов, длительности и межфункциональных собеседований. Если вам интересно, обязательно узнайте об их культуре и основных ценностях.

Facebook

По сравнению с Google Facebook — еще один быстрорастущий гигант, небольшой, но динамично развивающийся. Его продуктовая линейка монополизирует социальные сети и фокусируется на инвестициях в искусственный интеллект и виртуальную реальность.Очевидно, что Facebook имеет огромный потенциал роста в будущем. Благодаря таким громким именам, как Yann LeCun и Yangqing Jia, это отличное место для работы людей, обучающихся машинному обучению.

У меня было собеседование в корпусе 20 с садом на крыше и прекрасным видом на море. Там же находится офис Цукерберга.

Я не уверен, что интервьюер был проинструктирован, но я не получил ясного намека на то, был ли мой ответ правильным. Я все еще считаю, что компания проинструктировала их не оценивать правильность ответа кандидата.

Тяжелый труд первых четырех дней сказался на моем теле: в полдень у меня начала болеть голова, и я настоял на том, чтобы закончить интервью во второй половине дня. Мне кажется, что я совсем не в порядке. Я был немного удивлен, когда получил от них предложение.

В целом я думаю, что люди здесь верят в видение своей компании и гордятся тем, что они делают. Будучи быстрорастущей компанией стоимостью 500 миллиардов долларов, Facebook — идеальное место для начала вашей карьеры.

переговоры о зарплате

Это огромная тема, и я не буду обсуждать ее здесь. Кому интересно, могут обратитьсяэта статья.

Некоторые вещи, которые я считаю важными:

  1. Будьте профессионалом
  2. Используйте свои ресурсы
  3. Искренний интерес к проекту и команде
  4. Будьте терпеливы и уверены
  5. Решительный, но вежливый
  6. не лги

Мой неудачный опыт собеседования - Databricks

Неудача — мать успеха, и, конечно же, интервью.
Прежде чем отправиться в вышеупомянутую поездку на собеседование в Силиконовую долину, я провалил интервью с Databridck в мае.

В апреле Xiangrui связался со мной через Linkedin и спросил, заинтересована ли я в должности в команде Spark MLlib, что тронуло меня. Потому что 1) я люблю Scala с использованием Spark, 2) инженеры Databridck — первоклассные,
3) Spark произвел революцию во всем мире больших данных. Это была возможность, которую нельзя было упускать, поэтому я начал это интервью через несколько дней.

Порог Databridck довольно высок, а процесс обработки довольно длительный, включая предварительное рассмотрение анкеты, телефонное интервью, проверку кода и собеседование на месте.

Мне удалось получить приглашение на собеседование и посетить их офис в центре Сан-Франциско, где мы могли увидеть «Остров сокровищ».

Мой интервьюер был чрезвычайно умным и таким же скромным человеком. Во время собеседования я часто чувствовал себя доведенным до предела. Интервью шло хорошо до катастрофического раунда, когда я полностью облажался из-за отсутствия навыков и подготовки и с треском провалился.
Xiangrui был очень внимателен и некоторое время ходил со мной после интервью, я очень благодарен за возможность поговорить с ним.

Через несколько дней я получил письмо с отказом. Как и ожидалось, это все еще расстраивает меня в течение нескольких дней. Хотя я упустил возможность работать в Databricks, я искренне надеюсь, что они и дальше будут более эффективными и успешными.

небольшое впечатление

  1. Жизнь коротка, профессиональная жизнь короче, сделайте правильный шаг в нужное время. Сделайте правильный выбор в нужное время
  2. Интервью – это не просто собеседование. Это идеальное время для общения и знакомства. Интервью – это не просто собеседование, это лучшее время для общения и знакомства.
  3. Всегда будь любопытным и учись.
  4. Переговоры важны для получения удовольствия от работы Навыки ведения переговоров важны для получения удовольствия от работы
  5. Получение предложения о работе означает, что вы соответствуете только минимальным требованиям. Максимальных требований нет. Продолжайте совершенствоваться. У жизни нет верхнего предела, будь лучше сам

С первого собеседования в мае и до получения предложения в конце сентября моя первая смена места работы была такой долгой и трудной.

Это действительно нелегко для меня, потому что мне нужно выполнять мою текущую работу по графику. Неделями подряд я готовился к собеседованию до часа ночи, а затем просыпался в 8:30 утра, чтобы подготовиться к дневной работе.
Собеседование на пять вакансий за пять дней очень напряжно и рискованно, и я не рекомендую делать это, если у вас нет очень плотного графика. Но у него есть то преимущество, что у вас есть несколько предложений, что дает вам преимущество при ведении переговоров.

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

Спасибо также читателям этой длинной статьи.

ты сможешьLinkedInилиTwitterнайди меня на.

Xiaohan Zeng

10/22/17

Обновление переводчика: автор наконец остановился на предложении Airbnb и присоединится к нему в ноябре.


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,React,внешний интерфейс,задняя часть,продукт,дизайнЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.