Как я уволился с постоянной работы, учился в Udacity и устроился на работу в BMW

Прошлый год был для меня настоящим путешествием. Год назад я оставил свою постоянную работу в области проектирования компьютерных микросхем, чтобы «вернуться в школу» и сменить профессию на машинное обучение. Однако я не вернулся в школу в традиционном смысле слова - я решил продолжить онлайн-образование через Udacity. После года онлайн-обучения и двух месяцев поиска работы я устроился на работу в технологический офис BMW в Кремниевой долине, где занимался машинным обучением применительно к их усилиям по созданию беспилотных автомобилей.

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

Мой фон

До смены карьеры я занимался проектированием компьютерных микросхем. Я завершил свое традиционное образование в Мичиганском университете (Go Blue!), Получив степень бакалавра компьютерной инженерии и магистра электротехники еще в 2009 году. После окончания я нашел работу в бостонском офисе AMD. работает над различными аспектами проектирования и проверки компьютерных микросхем. Первые несколько лет были воодушевляющими: я изучал лучшие отраслевые практики, вносил свой вклад в продукты, которые используют миллионы людей, и мне казалось, что я добиваюсь профессионального прогресса.

Время перемен?

Однако примерно в конце 2014 года я почувствовал, что в полупроводниковой отрасли наблюдается стагнация, и продолжал слышать новости о консолидации внутри отрасли. Я хотел работать в отрасли с высоким потенциалом роста, поэтому знал, что не смогу оставаться на месте. К счастью, за это время популярность МООК росла, поэтому я воспользовался этим и узнал о веб-разработке, разработке под Android, машинном обучении и искусственном интеллекте - и все это через онлайн-МООК. Я чувствовал, что ML / AI были наиболее интересными из этих тем, и потенциал роста казался сильным, поэтому я решил сосредоточиться на этом.

В 2015 году моей целью было получить опыт в области машинного обучения. После работы и по выходным я изучал Урок машинного обучения Эндрю Нг на Coursera, читал сообщения на / r / machinelearning sub-Reddit (в большинстве случаев совершенно запутался) и читал онлайн-уроки машинного обучения (например, Андрей Карпати сообщения в блоге »; это было до появления CS231n). В ноябре 2015 года Udacity объявили о своей Наностепени машинного обучения (MLND), и я с радостью подписался. К сожалению, я чувствовал, что мой прогресс был слишком медленным, когда я работал полный рабочий день, скорее всего, из-за моей плохой самодисциплины. По вечерам после работы я часто чувствовал, что мой мозг слишком устал, и я не мог заставить себя выполнять какую-либо умственную работу, например, учиться. В основном я добивался успехов по выходным.

Зная, как быстро развиваются технологии, я действительно хотел как можно скорее стать частью революции искусственного интеллекта. Альтернативные издержки оставаться на месте были слишком высоки. В финансовом отношении у меня были расходы на жизнь в виде ликвидных сбережений на 2–3 года, поэтому было возможно бросить работу и учиться на полную ставку. Я кратко подумывал о поступлении в традиционный университет, чтобы получить степень магистра компьютерных наук. Окончив учебу во время Великой рецессии, я воочию убедился, что степень в уважаемом университете не гарантирует работу, поэтому предложение о соотношении затрат и ожидаемой ценности меня не привлекало. Во время учебы в университете я пропускал много лекций и почти не ходил в рабочие часы, поэтому я подумал, что онлайн-образование мне подойдет. В 2015 году я услышал о новой программе от Технологического института Джорджии под названием OMSCS. С точки зрения финансовых затрат это казалось отличным вариантом (если, конечно, меня приняли в программу). Тем не менее, Udacity анонсировала MLND, ориентированное на отрасль образование, и сроки его завершения были значительно короче, чем у OMSCS. Поскольку временные и финансовые затраты на MLND были относительно небольшими, а образование было ориентировано на промышленность, я подумал, что это правильный путь для меня. Я планировал завершить MLND за 5–6 месяцев, работать над личными дополнительными проектами и войти в индустрию ML / AI в 4 квартале 2016 года.

С моим генеральным планом, разработанным в конце 2015 года, и с участием друзей и семьи, я был готов сделать шаг и исполнить. В январе 2016 года я уведомил своего менеджера о завершении своего шестилетнего пребывания в AMD.

Обратно в школу

Конечно, не всегда все идет по плану. Вот последовательность событий, произошедших в 2016 году:

  • Ян: Оставь работу, отдохни несколько недель.
  • Февраль: Работа над MLND, а также Front-End Web Developer Nandodegree (FEND), так как мне было любопытно веб-разработка.
  • Март: месячный отпуск в Таиланде, проведите время с родителями.
  • Апрель: недельный отпуск в Японии (так как это был стыковочный рейс в Бостон), затем закончить FEND.
  • Май: Закончил MLND до последнего проекта, хотел сделать что-нибудь «модное» для моего открытого завершающего проекта. Начало просмотра лекций CS231n на Youtube
  • Июнь-Июль: Я трачу много времени на просмотр лекций по CS231n, слишком много играю в видеоигры.
  • Август: Закончил аудит CS231n на Youtube, решил, что хочу сделать свой MLND краеугольным камнем в глубоком обучении с подкреплением, вдохновленный AlphaGo ранее в том же году.

В сентябре 2016 года произошло кое-что интересное: Udacity анонсировала новую 9-месячную Nanodegree в беспилотных автомобилях. Для меня самое интересное применение искусственного интеллекта - это робототехника, и беспилотные автомобили - своевременное и невероятно полезное применение этого. Я уже отставал от графика в моем генеральном плане, но я подумал, что эта новая Self-Driving Car Nanodegree (SDCND) будет стоить дополнительных затрат времени. Поскольку первые три месяца Nanodegree будут сосредоточены на глубоком обучении и компьютерном зрении, я почувствовал, что могу начать подавать заявки на работу в этой области достаточно скоро. При этом мой график на 2016 год продолжился следующим образом:

  • Сен: Завершил мой проект MLND. Увидел, что SDCND принимает заявки, взволнованно подал заявку
  • Октябрь: принят в октябрьскую когорту SDCND! Запущен SCDND
  • Ноябрь-декабрь: работа над SDCND

Подготовка к поиску работы

К середине декабря 2016 года я завершил первые 3 проекта SDCND: базовое обнаружение полосы движения, классификация дорожных знаков и поведенческое клонирование. Udacity дал мне отличную отправную точку для портфолио, но я хотел добавить что-то еще, прежде чем я начну искать работу. Я всегда находил демонстрации обнаружения объектов визуально крутыми, поэтому я решил заняться проектом обнаружения объектов на основе глубокого обучения (5-й проект SDCND на самом деле является обнаружением транспортных средств, но он не использует глубокое методы обучения). В итоге я потратил 4 недели на создание проекта обнаружения дорожных знаков, реализовав популярный алгоритм SSD с нуля в TensorFlow.

Параллельно я выполнял проекты Udacity по развитию карьеры, в основном обновляя свое резюме, профиль LinkedIn и профиль GitHub. Рецензенты Udacity давали ценные советы и поддерживали на протяжении всего этого процесса. Для моего резюме и профиля в LinkedIn моей главной задачей было составить краткое, но убедительное резюме, поскольку я определенно был нестандартным кандидатом. После долгого самоанализа и отличных отзывов от карьерных служб Udacity я использовал следующее итоговое утверждение:

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

В настоящее время обучается в программе Udacity по самоуправляемым автомобилям Nanodegree, входящей в состав первой группы, которая началась в октябре 2016 года. Также работает наставником для других студентов в Nanodegree.

Еще одна прекрасная возможность представилась, когда товарищ по программе SDCND Патрик Пун создал Бостонскую группу по самовождению автомобилей. Первоначально встреча была посвящена SDCND от Udacity. Поскольку я был частью первой когорты SDCND, я вызвался поделиться своим опытом в неформальной беседе, которую я провел в середине декабря. Патрик предложил записать выступление и загрузить его на Youtube, что было отличной идеей, поскольку помогло укрепить мое присутствие в Интернете, а также участие в группе встреч. В течение следующих месяцев благодаря встрече для меня открылась пара профессиональных возможностей.

Поиск работы

Приложения

К концу января 2017 года я был готов устроиться на работу. Я сосредоточился в основном на глубоком обучении и работе с компьютерным зрением, отдавая предпочтение работам, связанным с автономными транспортными средствами. Я также подал документы на вакансии в области дизайна микросхем AI (не получил ни одного собеседования) и общего машинного обучения. Каналы приложений, которые я использовал: LinkedIn Jobs, AngelList, подача заявок непосредственно на веб-сайтах компаний, местный сторонний рекрутер в Бостоне и карьерные службы Udacity. Всего активно подал заявку примерно на 90 вакансий.

Вопросы на собеседовании

Как правило, я брал интервью на два типа ролей: (1) инженер по машинному обучению и компьютерному зрению и (2) инженер-программист для реализации алгоритмов исследователей машинного обучения.

Для (1) вопросы собеседования были сосредоточены на концепциях машинного обучения (особенно глубокого обучения), о том, как ML / DL применяется к компьютерному зрению, и «традиционных» концепциях компьютерного зрения (перспективное преобразование, обнаружение границ, обнаружение линий и т. Д.). Кроме того, было много вопросов о поиске полос движения и выяснении того, как улучшить алгоритмы обнаружения полос. Большая часть интервью была также потрачена на обсуждение моих прошлых проектов в области глубокого обучения и компьютерного зрения - моей мотивации, процесса, через который я прошел, как я мог бы улучшить проекты. Постоянно возникал один конкретный вопрос: «Как вы вышли за рамки требований курсовой работы?» Или, аналогично, «какие из ваших проектов не были частью вашей курсовой работы?». Важная черта - искренне интересоваться темой, выходить за рамки требований проекта и / или создавать свои собственные интересные проекты.

Для пункта (2) интервьюер оценивал мой общий интерес к машинному обучению, а затем задавал вопросы по кодированию, подобные тем, которые приведены в Cracking the Coding Interview или LeetCode. По статистике, я не преуспел в этих интервью, так как только несколько недель назад я начал измельчать CTCI / LeetCode.

Интервью и предложения - цифры

В конце (середина марта) у меня было 9 собеседований из моих ~ 90 заявлений о приеме на работу, то есть около 10% заявлений приводят к собеседованиям. На мой взгляд, это был довольно хороший коэффициент конверсии. Из этих 9 собеседований 4 из них приводят к собеседованию заключительного раунда: 2 собеседования заключительного раунда для работы на полную ставку, 2 собеседования заключительного раунда для стажировки. Я хорошо справился с этими 4 интервью, поскольку все они приводят к предложениям. По окончании двухмесячного поиска работы у меня было 2 предложения на полный рабочий день и 1 предложение на стажировку для роли самостоятельного вождения автомобиля, а также 1 предложение на стажировку для роли понимания естественного языка (применение NLU / AI для понимания медицинских записей) . В конце концов, я решил принять постоянное предложение от BMW.

BMW

заявка

Позвольте мне перемотать назад и описать процесс подачи заявки и собеседования в BMW. В начале февраля Udacity объявил, что BMW нанимает на различные должности, и они заинтересованы в кандидатах от программы SDCND. Я просмотрел открытые вакансии, и особенно меня заинтересовала их позиция Разработчик программного обеспечения, машинное обучение. Эта должность была сосредоточена на машинном обучении, применяемом к автономному вождению BMW, включая поиск и оценку технологий, создание прототипов и передачу технологий в производство. Это звучало как идеальное сочетание исследований и инженерии. Также было бы здорово поработать над самоуправляемыми биммерами! Я с энтузиазмом устроился на эту работу.

Интервью

Через неделю или две я получил ответ от BMW, что они хотят взять у меня интервью. В целом, мое собеседование состояло из первого телефонного собеседования, за которым следовало собеседование на месте. Оба интервью включали технические вопросы о машинном обучении и компьютерном зрении, а также о его применении в автономных транспортных средствах. На собеседовании на месте меня попросили выступить с докладом и вопросами и ответами о данных и машинном обучении, конкретная тема которых была отправлена ​​мне заранее. Я подумал, что эта тема была очень интересной, и мне было весело готовить и давать доклад, а также вопросы и ответы. Конечно, оба интервью дали мне возможность задать вопросы и лучше понять роль и команду.

Предложение

Мое пребывание в BMW было положительным опытом. Команда, с которой я буду работать, казалась великолепной, а роль была супер интересной и имела большой потенциал. К этому времени у меня уже было несколько других предложений SDC, поэтому я очень хотел получить ответ от BMW, поскольку они были моим лучшим выбором. После недели постоянной проверки своей электронной почты / телефона каждые несколько минут я получил электронное письмо от BMW HR, в котором говорилось, что они хотели бы продлить мне предложение! Мы запланировали телефонный звонок для дальнейшего обсуждения и согласовали детали. Пора подготовиться к переезду по стране и начать новую карьеру :)

Сегодня

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

Последние мысли

Год назад я сделал шаг в неизвестность, оставив свою постоянную работу в области проектирования компьютерных микросхем, чтобы изучать машинное обучение через Udacity. Некоторые могли подумать, что это странное решение, но я был уверен (возможно, наивно), что сделал правильный выбор, и все будет хорошо. Забегая вперед, я успешно сменил карьеру на машинное обучение - машинное обучение применимо к беспилотным автомобилям BMW. Я надеюсь, что мой рассказ дал вам ценную информацию и вдохновение для человека, находящегося в таком же положении, как я. Я надеюсь, что для всех мой рассказ стал интересным источником данных, который можно добавить в вашу базу знаний. Спасибо за прочтение!