Устроиться на работу инженером по машинному обучению — непростая задача (положительное примечание для начала статьи). Но это вполне выполнимо, если у вас есть терпение и дисциплина. Плохая новость заключается в том, что вам нужно много учиться, чтобы получить работу в технологической компании. Хорошая новость заключается в том, что квалифицированных инженеров по машинному обучению не хватает даже в крупных технологиях, а зарплаты сумасшедшие. Серьезно сумасшедший. Стоит ли оно того? Для меня это полностью. Но это зависит от вас.
Итак, как мне начать?
Знай свой с**т
Прежде чем даже думать о подаче заявления, вы должны знать основы. И под основами я не подразумеваю сверточные нейронные сети. Даже К-Минс. Я имею в виду основные принципы информатики. Алгоритмы и структуры данных, языки программирования (предпочтительно Python), отладка, тестирование, контроль версий, облачные вычисления. У этого списка нет конца.
Но помни. Инженер по машинному обучению — это прежде всего инженер-программист. Он не Data Scientist или Data Analyst. Чтобы узнать все, я лично выбрал бы этот замечательный курс от Coursera по программированию на Python и этот от Udacity по алгоритмам и структурам данных.
Знай свое машинное обучение
Не так важно, как первый шаг, но все же полезно. Вам следует ознакомиться с основными алгоритмами, такими как регрессия, деревья решений, K-средние, и запачкать руки предварительной обработкой данных и моделированием. Опять же, не слишком увлекайтесь. Компании, как правило, не ищут людей, которые могут математически доказать обратное распространение. Они ищут разработчиков для написания кода и построения конвейеров машинного обучения. И в этих пайплайнах машинное обучение занимает около 5% работы. Опять же, эти курсы от Coursera и Udacity — ваши друзья.
Чтобы получить более полный список ресурсов, вы также можете ознакомиться с моим бесплатным курсом, где я объясняю все шаги, которые необходимо предпринять, чтобы начать работу с машинным обучением. Вы можете подписаться здесь.
Получить опыт
Предполагая, что вы знаете основы (а вы должны), следующим важным шагом будет получение опыта. Я рекомендую начать работу над некоторыми личными проектами, которые вы считаете интересными (возможно, вы можете предсказать цену биткойнов с помощью нейронных сетей или запустить быструю сортировку в массивном наборе данных, я не знаю), поучаствовать в одном или двух соревнованиях Kaggle и, возможно, получить несколько небольших фриланс-концерты от клиентов.
Важно то, что построить все с нуля. От базы данных и сервера до развернутого API в продакшене. Это единственный способ по-настоящему понять весь стек и войти в контакт со всеми компонентами пайплайна. Поверьте мне. Ни один курс или урок не может сравниться с этим. Это сразу даст вам совершенно новую перспективу.
Создайте портфолио и резюме
Теперь, когда вы чувствуете себя уверенно и поработали над несколькими реальными проектами, пришло время составить свое резюме. Однако ваше резюме — это не просто PDF-файл. Это персональный сайт, на котором представлены все ваши проекты и курсы. Это учетная запись LinkedIn (чрезвычайно важная) со всей актуальной информацией о вас. Это профиль GitHub, содержащий весь код, который вы написали за последние месяцы. И, возможно, это блог, демонстрирующий то, что вы уже узнали. Предпочтительно все вышеперечисленное.
Так вы привлечете внимание рекрутера из компании своей мечты. Это то, что менеджер по найму обнаружит, когда он Google ваше имя.
Подготовьтесь к собеседованиям по кодированию
А теперь самое интересное (не очень). Вы должны подготовиться к интервью по кодированию. Не думайте, что вы знаете, что делаете. Даже если у вас есть степень магистра в Массачусетском технологическом институте. Позвольте мне сказать это еще раз. Вы должны подготовиться.
Если вы уверены в своих навыках работы с алгоритмами и структурами данных, вот что вам нужно сделать. Возьмите копию интервью Cracking the coding (библия для интервью по программному обеспечению) и откройте учетную запись Leetcode. Начните практиковаться на простых задачах. Попробуйте придумать решение грубой силы, а затем попытайтесь его оптимизировать. Когда вы застряли, подумайте, какие еще структуры данных вы можете использовать. Или проверьте книгу для подобных проблем. Но не сдавайся.
Затем сделайте еще один. И еще один. По мере того, как вы решаете все больше и больше, вы начинаете выявлять закономерности и можете переходить к средним или даже сложным задачам. Сколько задач вы должны решить? Чем больше, тем лучше. Возможно, 150, если вы хотите работать в FAANG. В противном случае около 50.
Кроме того, мой совет — постарайтесь как можно скорее сымитировать реальный опыт собеседования во время практики. Установите таймер. Объясни свои мысли вслух.
Дизайн системы обучения
Неотъемлемой частью собеседований являются этапы проектирования системы, на которых вы описываете, как бы вы построили популярную архитектуру, такую как Instagram или Netflix. Он оценивает все ваши технические способности, ваш опыт и ваши общие знания. Следовательно, это не то, чему можно научиться за одну ночь.
Хотя можно подготовиться. Вы можете начать с изучения системного дизайна 10 самых популярных приложений, а затем попробовать разработать другое. И повторяйте процесс, пока не почувствуете себя уверенно.
Вы также должны уделять особое внимание архитектурам машинного обучения, таким как системы рекомендаций или автозаполнение поиска. В общем, это раунд, в котором компания проверяет ваш опыт машинного обучения. Но имейте в виду, что это разговор на очень высоком уровне.
Применять
Последний шаг – начать подачу заявки. Вы можете, конечно, подавать заявки на онлайн-платформе компании. Но не ждите никаких результатов. Чтобы ускорить процесс, я бы сосредоточился на 3 вещах:
-
Найдите рекрутеров в LinkedIn, отправьте им запрос на добавление в друзья, выразив интерес к вакансии, и пусть ваше резюме / учетная запись GitHub / веб-сайт сделают всю работу за вас. Но делайте это тонко. Выразите интерес к компании, попросите информационный звонок и т.д.
-
Попросите друга, работающего в технологической компании, дать вам рекомендацию (рекомендации — основной источник новых сотрудников в Америке).
-
Посещайте ярмарки вакансий и сетевые мероприятия
Или вы даже можете искать работу на фрилансе вместо того, чтобы присоединиться к большой компании, где вы можете выбирать своих клиентов и проекты, над которыми вы работаете. И самое приятное то, что иногда оплата может быть даже лучше (да, я знаю, что вы не за деньги, но это всегда хороший фактор, который следует учитывать). Кстати, если вы хотите узнать и сравнить ставки, этот калькулятор ставок машинного обучения от Toptal определенно может вам помочь.
Это было? Это так просто? Ржу не могу. Возможно, это долгий процесс, и требуется мужество и решимость, чтобы продолжать работу после отказов. Но не обескураживайте себя. Нет ни одного человека, которому бы не отказали. Вы также должны знать, что, к сожалению, это также вопрос времени и удачи.
Но в конце концов все ваши усилия окупятся. И это не вопрос времени или удачи. Это уверенность.
* Раскрытие информации: Обратите внимание, что некоторые из приведенных выше ссылок могут быть партнерскими ссылками, и мы без дополнительных затрат для вас получим комиссию, если вы решите совершить покупку после перехода по ссылке.