За последние восемь месяцев я прошел собеседования в самых разных компаниях — DeepMind в Google, Wadhwani Institute of AI, Microsoft, Ola, Fractal Analytics и некоторых других — в основном на позиции Data Scientist, Software Engineer и Research Engineer. По ходу дела мне предоставлялись возможности не только пообщаться со многими талантливыми людьми, но также по-новому взглянуть на себя с пониманием того, что хотят услышать работодатели, когда беседуют с кандидатами. Думаю, если бы я располагал этой информацией раньше, то мог бы избежать многих ошибок и подготовиться к собеседованиям куда лучше. Это и стало импульсом к написанию данной статьи — возможно, она поможет кому-нибудь получить работу мечты.


В конце концов, если уж собираешься две трети своего времени (если не больше) проводить за работой, она должна быть этого достойна.

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

Примечание: хотелось бы обговорить две вещи для тех, кто рассчитывает получить работу при университете. Во-первых, в том, что касается поиска работы, практически все, что я здесь говорю (кроме разве что последнего раздела), для вашего случая неактуально. Однако — и это второе, что я хочу подчеркнуть — как уже упоминалось, университеты в основном берут людей на должности разработчиков, без пересечений со сферой ИИ. Так что данная статья рассчитана именно на тех, кто хочет работать с технологиями ИИ и решать с их помощью интересные задачи. Также нужно добавить, что не все собеседования прошли для меня успешно, но, наверное, в этом весь смысл неудач — на них лучше всего учиться! Возможно, не все советы, которые я здесь привожу, будут вам полезны, но сам я действовал именно так — теперь уже не узнаешь, что еще можно было сделать, чтобы представить себя в лучшем свете.

Как добиться, чтобы вас заметили: приглашение на собеседование


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

Проводите подготовку регулярно и не жалейте на нее сил. Под регулярными действиями я подразумеваю ведение аккаунтов на GitHub и LinkedIn, поддержку вебсайта с портфолио и постоянную доработку резюме. Начнем с того, что ваше резюме должно быть аккуратным и лаконичным. Следуйте руководству от Udacity, Resume Revamp, чтобы придать ему более опрятный вид. Там изложено все, что я собирался сказать — я и сам прибегал к их рекомендациям. Если же нужен шаблон, на Overleaf попадаются неплохие готовые форматы. Лично я использовал deedy-resume. Вот как это примерно выглядит:


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

Следующий важный момент, который нужно оговорить, — это ваш аккаунт на GitHub. Многие недооценивают потенциал этой площадки только потому, что в отличие от LinkedIn там нельзя узнать, кто просматривал вашу страницу. Но люди, на самом деле, вполне себе заходят на ваш аккаунт — это единственный способ проверить, соответствует ли действительности то, что написано у вас в резюме: ведь сейчас принято вставлять всякие модные словечки и прочий белый шум. В области data science, в частности, открытый код играет особенно существенную роль — большая часть инструментов, имплементации различных алгоритмов, списки полезных ресурсов для обучения представлены в открытом доступе. Я писал о том, какие преимущества дает open source разработчикам, в другой своей статье.

Вот тот минимум, который вам необходимо сделать:

  • Завести аккаунт, если у вас еще его нет
  • Создать репозиторий для каждого проекта, в котором вы были задействованы
  • Добавить документацию с четкими инструкциями, как работать с кодом
  • Добавить документацию для каждого из файлов, где бы упоминались роль всех функций, значение всех параметров, правильное форматирование (например, PEP8 for Python), а также, в качестве бонус, скрипт, который позволяет провести его автоматически.

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

Сделать сайт проще простого — сейчас существует множество бесплатных платформ, где процесс крайне безболезненный и сводится к перетаскиванию готовых элементов. Лично я использовал Weebly, очень популярный инструмент. Не помешает взять какой-то образец в качестве отправной точки. Шикарных сайтов сейчас хватает, но я остановился на личной странице Deshraj Yadav, чтобы положить ее в основу работы над своей.


Наконец, многие рекрутеры и старатперы стали в последнее время использовать LinkedIn как основную платформу для поиска сотрудников. Там размещается много хороших вакансий. Активность на ресурсе проявляют не только рекрутеры, но и люди, занимающие высокие должности. Если вы сумеете привлечь их внимание, ваши шансы попасть в компанию сильно возрастут. Вдобавок, держать свой аккаунт в порядке нужно еще и затем, что у людей был стимул с вами контактировать. Поисковая система — важный компонент LinkedIn и чтобы отображаться в выдаче вам необходимо включить в профиль релевантные ключевые слова. Мне понадобилось много попыток и корректировок, чтобы наконец получить приемлемый результат. Кроме того, однозначно стоит попросить ваших бывших коллег или начальников подтвердить ваши навыки и оставить рекомендацию, рассказав о своем опыте совместной работы с вами. Все это работает на ваши шансы быть замеченным. Здесь я снова сошлюсь на Udacity и их руководства по работе с LinkedIn и Github.

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

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

Нетворкинг. Теперь, когда выполнили все из первого пункта и разобрались со вторым, добраться до цели вам поможет нетворкинг. Если не общаться с людьми, вы никогда не услышите о многих возможностях, которые были бы вам по плечу. Очень важно день изо дня устанавливать новые связи, если не лицом к лицу, то на LinkedIn, чтобы в долгосрочной перспективе у вас скопилась обширная и мощная сеть знакомств. Нетворкинг не сводится к тому, чтобы писать людям и просить рекомендовать вас работодателю. В начале своих поисков я часто допускал эту ошибку, пока наконец мне не попалась замечательная статья Марка Мелуна, где рассказывается о том, как важно устанавливать прочные связи с людьми, предлагая им помощь первым.

Еще один важный шаг в нетворкинге — выставлять контент на всеобщее обозрение. Например, если у вас что-то хорошо получается, напишите об этом статью и скиньте ссылку в Facebook и на LinkedIn. Это будет полезно и другим людям, и вам самим. Обширная сеть связей позволяет вам попадаться на глаза намного большему числу людей. Никогда не предугадаешь, кто из лайкающих или комментирующих ваши статьи поможет вам выйти на еще более широкую аудиторию, где может оказаться кто-то, кто ищет человека с вашим набором умений.

Список компаний и стартапов, куда можно отправить резюме


Список я выстроил в алфавитном порядке, чтобы не создавать ложное впечатление каких-то особых предпочтений. Тем не менее, я все же отметил звездочкой те, которые могу рекомендовать лично. Рекомендации эти основываются на следующем: описание миссии, команда, опыт личного общения и возможности для развития. Если звездочек несколько, это связано со вторым и третьим параметрами.

  • Adobe Research
  • *AllinCall?—?(основан выпускником Индийского технологического института Бомбея)
  • *Amazon
  • Arya.ai
  • *Element.ai
  • *Facebook AI Research: программа AI Residency
  • *Fractal Analytics (и дочерние стартапы: Cuddle.ai, **Qure.ai)
  • **Google (Brain / DeepMind / X): программа AI Residency
  • Goldman Sachs
  • Haptik.ai
  • **HyperVerge ?—? основан выпускником Индийского технологического института Мадраса, который работает над ИИ решениями для проблем реального мира с клиентами из самых разных стран. В число основателей также входили те, кто составлял знаменитую группу компьютерного зрения в том же институте.
  • IBM Research
  • *Intel AI labs (обучение с подкреплением)
  • **Jasmine.ai ?—? основан выпускником Индийского технологического института Мадраса, который также получил степень в Мичиганском университете. Команда работает над разговорным искусственным интеллектом. С финансированием у них тоже все в порядке. Сейчас срочно ищут людей для отделения в Бангалоре.
  • JP Morgan
  • *Microsoft Research: стипендия на один или два года в индийской лаборатории или программа AI Residency
  • MuSigma
  • Next Education
  • niki.ai
  • *Niramai?—? команда раньше была частью Xerox Research, сейчас работает над выявлением рака груди на ранних стадиях при помощи тепловых изображений.
  • Ola
  • *OpenAI
  • *PathAI
  • Predible Health
  • Qualcomm
  • *SalesForce
  • Samsung Research
  • *SigTuple
  • *Suki?— голосовой помощник для врачей на базе ИИ. В последнее время также привлек много инвестиций и, возможно, скоро откроет отделение в Индии.
  • *Swayatt Robotics?—?работает над беспилотными автомобилями для Индии.
  • **Wadhwani AI ?— ?основаны миллиардерами Romesh Wadhwani и Sunil Wadhwani, они ставят перед собой цель создать первую организацию, которая будет стремиться использовать технологии ИИ для общественной пользы.
  • *Uber AI Labs & Advanced Technologies Group: программа AI Residency
  • *Umbo CV?— ?компьютерное зрение в сфере безопасности
  • Uncanny Vision
  • Zendrive

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

Еще несколько списков

Как с блеском пройти собеседование


Собеседование начинается ровно в тот момент, когда вы заходите в кабинет, а в промежутке между этим моментом и приглашением рассказать о себе может произойти многое. Большое значение имеет язык тела и то, улыбаетесь ли вы, здороваясь. Особенно актуально это для стартапов, где очень внимательно смотрят, впишется ли кандидат в культуру команды. Вам нужно понять: пусть человек, проводящий собеседование, вам совершенно незнаком, но и вы ему тоже незнакомы. Так что он, возможно, нервничает не меньше вашего.

Важно воспринимать собеседование как диалог между вами и представителем компании. Вы оба находитесь в поисках подходящего варианта: вы ищете классное место работы, а он — классного специалиста (вроде вас), с которым команда могла бы работать. Поэтому зарядитесь уверенностью в себе и возьмите на себя ответственность сделать первые моменты вашего диалога приятными для собеседника. Из всех известных мне способов этого добиться самый простой — это улыбка.

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

Такие собеседования обычно начинаются с вопроса: «Не могли бы вы рассказать о себе?». Тут ни в коем случае нельзя делать двух вещей: говорить о своем университетском аттестате и начинать подробно рассказывать о своих проектах. В идеале ваш монолог должен продолжаться минуту или две, давать общее представление о том, чем вы занимались до сих пор, и не быть завязанным на одной учебе. Здесь можно также упомянуть о своих увлечениях — чтении, спорте, медитации — словом, обо всем, что поможет лучше вас понять как человека. Затем собеседующий оттолкнется от чего-нибудь из сказанного вами, чтобы задать следующий вопрос и перейти к технической части. Цель подобного собеседования — проверить, правду ли вы написали в резюме.
Человек, который действительно решил проблему, сможет осветить ее на разных уровнях. Он будет способен обозначить самую суть — иначе не сумел бы довести дело до конца. — Элон Маск

Будет много вопросов о том, что в ваших проектах можно было реализовать иначе и что бы произошло, если бы вы сделали не Х, а У. Здесь важно знать, какие компромиссы обычно принимаются при имплементации. Например, если представитель компании скажет, что вам стоило бы использовать другой инструмент для более точных результатов, вы можете ответить ему, что работали с небольшим объемом данных и это привело бы к переобучению. На одном из таких собеседований мне дали кейс, который нужно было разрешить и, в частности, спроектировать алгоритм для реальной ситуации. Я заметил, что когда мне дают зеленый свет на рассказ о проекте, лучше придерживаться такой схемы, которая очень нравится сотрудникам, проводящим собеседование:
Проблема > 1-2 существующих подхода > Наш подход > Результат > Выводы

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

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

Мы приближаемся к заключительной части собеседования. На этом этапе у вас поинтересуются, не возникло ли каких-нибудь вопросов. Тут легко поддаться мысли, что все уже закончилось, и просто ответить, что вопросов у вас нет. Я знаю много людей, которых отсеяли только за эту ошибку на последнем этапе. Как я уже говорил, на собеседовании оценивают не только вас. Это взаимный процесс: сами вы тоже смотрите, подходит вам компания или нет. Поэтому очевидно, что, если вы действительно хотите вступить в команду, у вас будет масса вопросов — о культуре работы, о том, какую роль они отводят для вас. Или, может быть, вам просто станет любопытно, чем занимается человек, который проводил собеседование. Вокруг всегда найдется что-нибудь, о чем можно узнать побольше, поэтому постарайтесь оставить у собеседующего чувство, что вы действительно заинтересованы в том, чтобы вступить в их ряды. Последний вопрос, который я стал задавать на всех собеседованиях, касается обратной связи — над чем они посоветовали бы мне поработать. Это очень мне помогло, я до сих помню, какие мне давали советы, и постарался выстроить свою повседневную жизнь с их учетом.

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

На какие компании нужно стремиться работать


Мы живем в эпоху возможностей, и это относится и к тому, чем вам нравится заниматься. Просто стремитесь стать лучшим в своей сфере и рано или поздно найдете способ монетизировать свои умения. Как говорит Gary Vaynerchuk (подпишитесь на него уже): «Хватит соглашаться на всякую хрень, которая вам поперек горла».

Сейчас отличное время для тех, кто работает с искусственным интеллектом, и если вы по-настоящему загорелись темой, то можете добиться очень многого и дать право голоса многим из тех, у кого до сих пор не было шанса высказаться. Мы все время ворчим о проблемах, которые нас окружают, но сейчас, впервые в истории, простые люди вроде нас могут реально что-то изменить, а не просто жаловаться. Цитируя известное высказывание Jeffrey Hammerbacher (основатель Cloudera):
«Величайшие умы моего поколения размышляют над тем, как заставить людей кликнуть на рекламный баннер. И это хреново».

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

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


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

Информатика

Алгоритмы и структуры данных


Операционные системы


Объектно-ориентированное программирование. Вас попросят рассказать, как бы спроектировали систему, например, для бронирования железнодорожных билетов. Соответственно, вам нужно будет обговорить, какие задаются требования, какие будут нужны классы и какие переменные и методы будет содержать каждый из них, как можно использовать наследственность (например, классы Инженер и Ученый могут быть производными одного класса Сотрудники). Таким вещам учатся на практике. С базовой терминологией вы можете ознакомиться здесь.

Математика и статистика

Если вы незнакомы с математическими основами глубокого обучения, советую проработать ресурсы из моего прошлого поста, чтобы их усвоить. Если же вы чувствуете себя достаточно уверенно, я установил, что достаточно прочитать главы 2, 3 и 4 из Deep Learning Book, чтобы изучить или повторить весь необходимый материал для собеседований такого типа. К некоторым из глав я составил конспекты, где попытался объяснить те понятия, с которыми сам долго не мог разобраться — можете обратиться к ним. Ну а если у вас за плечами пройденный курс статистики, то с ответом на вопросы по математики проблем возникнуть не должно. Из статистики стоит проработать вот эти темы — этого должно хватить.

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

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

  • Machine Learning от Andrew Ng?—?CS 229
  • Курс Machine Learning от Caltech Professor Yaser Abu-Mostafa

Самые важные темы — это обучение с учителем (классификация, регрессия, метод опорных методов, дерево принятия решений, random forests, логистическая регрессия, многослойный перцептрон, оценка параметров, байесовское решающее правило), обучение без учителя (метод k-средних, модели гауссовых смесей), уменьшение размерности (метод главных компонент).

Если же вы метите на более солидную вакансию, требующую более основательной подготовки, высока вероятность, что вас будут экзаменовать по глубокому обучению. В этом случае вас нужно быть очень хорошо знакомым со свёрточными нейронными сетями и/или (в зависимости от того, с чем вы работали до этого) рекуррентными нейронными сетями и их вариациями. Под хорошим знакомством я подразумеваю понимание фундаментальных концепций глубокого обучения, того, как работают эти сети, какая архитектура для них предлагалась и какие были причины для введения подобных изменений. Тут пройтись по верхам уже не получится. Либо вы в них разбираетесь, либо вкладываете время, чтобы хорошо разобраться. Для изучения свёрточных сетей рекомендую стэнфордский курс CS 231N, а для рекуррентных — CS 224N. Курс Neural Network от Hugo Larochelle мне тоже показался очень содержательным. Чтобы быстро освежить основное в памяти, загляните сюда. Udacity приходит на помощь и здесь. Как вы уже, наверное, догадались Udacity — вообще хорошее место для тех, кто практикует машинное обучение. Организаций, которые работают над обучением с подкреплением, в Индии не так много и у меня недостаточно опыта в этой сфере. Так что оставим эту тему для будущих дополнений статьи.

Заключение


Поиск работы за пределами университета — это долгий путь самопознания. Я понимаю, что опять накатал огромный пост и очень ценю то, что кому-то интересны мои рассуждения. Надеюсь, эта статья с какой-то стороны окажется для вас полезной и поможет лучше подготовиться к следующему собеседованию в сфере data science. А тех, кому уже помогла, очень прошу вдуматься в то, что я говорю в разделе «На какие компании нужно стремиться работать».

Комментарии (5)


  1. ivan2kh
    14.06.2018 17:59
    +1

    Наконец, многие рекрутеры и старатперы стали в последнее время использовать LinkedIn как основную платформу для поиска сотрудников.

    Ну наконец-то. /s


    1. GeekberryFinn
      14.06.2018 20:43
      -1

      Учитывая, что LinkedIn требует пароль от почтового ящика, а затем пользуясь им пишет всем, не говоря уже о слежке — то…


      1. anprs
        15.06.2018 09:54

        Сарказм же


      1. astono0
        15.06.2018 15:07

        Выпрашивает довольно навязчиво, но вводить его необязательно.

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


  1. fivehouse
    14.06.2018 23:11

    Человек, который действительно решил проблему, сможет осветить ее на разных уровнях. Он будет способен обозначить самую суть — иначе не сумел бы довести дело до конца. — Элон Маск
    Маск «тупой» инженер пытающийся создать лучшую жизнь. Он верит в честность и в то, что причинно-следственные связи находятся в физической реальности. А в реальной же реальности иногда начальники дают задание на решение проблемы строго с той целью, чтобы человек не смог его выполнить (либо для уволнения, либо для вызывания чувства депрессии или вины у исполнителя). А когда человек решает проблему ЭТО вызывает проблему. И у самого человека тоже… А еще есть задания противоречащие бизнес правилам компании. Будте как Маск и не попадайте в компании к уродам.