Вступление
Не так давно, а именно двенадцать месяцев назад, начался мой последний год аспирантуры на физическом факультете ВУЗа под названием University of California, Davis. Вставал законный вопрос — что делать дальше? За преподаванием, движением науки и прочими развлечениями год пройдёт очень быстро. Решать надо было заранее. Основной план был найти позицию постдока, причем где-нибудь в Токио, Рио де Жанейро или Сингапуре, так что вроде как и путешествуешь, а вроде как и работаешь. И по идее под это дело у меня всё было подготовлено: и статьи, и знакомые, и знаний в определённых областях физики конденсированных сред — на троих. Я начал активно гуглить сайты разных вузов, в интересующих меня географически частях мира, написал научно ориентированный CV, подписался на рассылки где публикуются вакансии постдоков, намекнул всем знакомым, что если что — то мне надо сказать в первую очередь. Я даже по скайпу с какими то профессорами общался на тему работы в их научных группах. В общем всё куда-то катилось.
Примерно в то же время к нам в городок заехал один мой знакомый, который в свое время тоже выпустился с нашего доблестного факультета, но на пару лет раньше. Последние пару лет он мыкался и тыкался в разные конторы и вот наконец нашёл работу на позицию под названием Data Scientist. Посидели в баре, потрепались — то, чем он занимается, особенно не зацепило (когда каждый день пытаешься разобраться что и куда квантовать, чтобы описать свойства наноматериалов, рассказы о том, как в некой базе данных что-то куда-то аггрегируется и почему это важно для каких-то продаж офисных принадлежностей, вообще не цепляет), но зацепила зарплата. Для справки, в США грязными, то есть до вычета налогов:
А мой знакомый без профильного образования и без опыта работы сходу был принят на $100k. То есть лихо объехал весь недружный коллектив постдоков. (Как выяснилось позже он ещё и продешевил, ему надо было на 130-150k идти, так бы и профессуру обошёл.)
Но не в деньгах счастье и даже не в их количестве. Деньги — это, всё-таки, инструмент и не более того.
Знакомый уехал, и я окунулся обратно в пучину академической среды. Я как раз лекции в той четверти читал, то есть и лекцию подготовить, и quiz'ы, и на email'ы студентов ответить. Замотался я. Но как четверть закончилась я снова начал думать о том, куда податься после окончания обучения.
Что меня всегда смущало в академической среде, так это то, насколько она закостенелая, всмысле не динамичная. Все сидят в зоне комфорта и отказываются из неё вылезать. Скучно. А вот судя по фильмам про Кремниевую Долину, там всё динамично и молодёжно. Но в программисты идти не хотелось, во-первых, не интересно, а, во-вторых, меня туда и не возьмут. Всё мои околопрограммистские знания — это самообучение, а фундаментального образования в этой области нет. Тут как раз ещё один знакомый проявился, который как раз недавно выпустился и он тоже устроился на позицию Data Scientist'а. И то ли он сам по себе на уши вешает лучше, то ли его работа и правда была интереснее, но в этот раз меня зацепило.
Начал гуглить: не понятно ничего. Data Science упоминается в совершенно различных контекстах, описания требований на позицию Data Scientist принципиально отличаются от вакансии к вакансии. Куча красивых слов про большие данные и искусственный интеллект, но в общую картину они никак не скаладывалются.
Надо было с чего-то начинать. И первый шаг, который я сделал — это записался на специализацию Data Science на Coursera. В специализации 9 курсов, каждый в месяц длинной, так что всё это в теории растягивается на 9 месяцев, но этого времени у меня не было. Шел январь, а выпускаться я собирался в июне. То есть времени для того, чтобы набраться знаний в совершенно новой для меня области, да ещё и работу найти, толком не оставалось. Поэтому эти 9 курсов я брал по три за раз. Иногда было тяжко, но в целом это реально.
Что я из этой специалиазации вынес: Data Science — дело тёмное, в том смысле, что каждый пытается натянуть эти два слова на всё что хоть как-то связано с данными. Но стало понятно, что универсальный Data Scientist должен знать статистику, разбираться в машинном обучении и уметь писать код на R, Python, Java, Scala.
Шёл март. Некая структура в голове появилась, но так как эта специализация очень базовая по уровню, да и лекторы, с точки зрения уровня их преподавания и общей организации курсов, скажем честно, на троечку, то многого я оттуда не вынес. Но! В одном из курсов был упомянут сайт на котором можно практиковать своё знание машинного обучения, а именно kaggle.com. И в моём случае информация о существовании этого сайта сильно помогла мне с дальнейшим поиском работы. Я потыркался, пару соревнований с треском завалил, но потом втянулся и последующие много месяцев не смотря на хроническое отсутствие времени участвовал во всех соревнованиях.
Параллельно я написал первую версию своего резюме, попробовал улучшить свой профиль на LinkedIn, даже пару интервью получил. Но в целом время шло, работу я искал не очень активно, слово за слово — июнь, защитился, больше откладывать поиск работы нельзя. И вот тут я закатал рукава и начал действовать.
Основная часть
До этого были сказки. А теперь я попытаюсь писать более структурировано, потому что поиск работы — это дело серьёзное.
Процесс интервью на позицию Data Scientist в США состоит из следующих стадий:
- Резюме попадает к рекрутеру.
- Если резюме рекрутеру понравилось — вы попадаете на следующую ступень, а именно телефонный разговор с рекрутером.
- Если этот телефонный разговор прошёл успешно — вы переходите на следующую ступень, а именно разговор с членом Data Science team.
- Если и этот разговор прошёл успешно — вы переходите на следующую ступень, а именно телефонное техническое интервью. Обычно в расшареных google docs, collabedit или в каком-нибудь похожем инструменте.
- Как правило, если сомнений в ваших технических навыках нет, то вас пригласят на on-site интервью, где вас будут интервьюировать куча разных людей на протяжении многих часов с перерывом на обед.
- Если прошлая стадия прошла нормально вам сделают предложение о работе и вы начнёте оговаривать детали. (negotiation)
Это стандартный набор, но вопрос как нанять правильного Data Scientist'a стоит очень остро. Поэтому в каждой компании немного свой подход, например, после технического интервью вам могут на дом дать некие данные, которые надо как-то проанализировать, и представить в виде презентации на onsite интервью (Пример — Pivotal, Bidgely, Uptake), или же это задание дадут перед техническим интервью(Пример — Capital One). Могут попросить решить задачки на HackerRank (Опять же Capital One). А могут пропустить техническое и сразу пригласить на onsite(Пример Affirm).
Между каждой из ступеней может проходить от одного дня до нескольких недель, поэтому начинать надо заранее! В больших компаниях вроде LinkedIn или Google, можно смело подавать на работу за 9 месяцев до окончания обучения. (Это был один из моих серьёзных просчётов, я никак не ожидал, что поиск работы требует так много времени.)
Каждая из ступеней этого процесса требует различных навыков. Итак.
Резюме / профиль на LinkedIn
Во-первых, вы должны хорошо выглядеть на бумаге. А это профиль в LinkedIn и ваше резюме. (Кому интересно, может зайти ко мне на LinkedIn и скопировать оттуда всё, что вам понравится. Сработало для меня, может и вам как-то поможет.)
Распространённая ошибка людей, которые составляют резюме/заполняют LinkedIn — они вставляют в него то, чем они гордятся, а вовсе не то, что там на самом деле надо писать. Например, критерием вашей личной крутизны в академической среде являются ваши статьи (порядок авторов важен, лучше быть первым — это жутко модно), выступления на конференциях и прочие достижения, которые в общем-то всем, вне вашего замкнутого мирка безразличны. Они вам дороги, вы о них усиленно думали на протяжении последних многих лет, но о них писать не надо. В крайнем случае можно упомянуть.
Писать в резюме надо то, что продаётся на это конкретную вакансию. В теории лучше писать отдельное резюме для различных вакансий, но это очень муторно. Основная задача резюме — это чтобы рекрутер с вами связался и назначил телефонный разговор.
Весь опыт работы у меня — это промышленный альпинизм, преподавание и движение науки в университете и служба в армии. Это не продать.
Научные публикации и выступления на конференциях по темам, которые с Data Science напрямую не связаны — не продать.
Образование — это продаётся, но плохо. У меня сложилось стойкое впечатление, что в San Francisco Bay Area никто не хочет смотреть на ваше резюме если у вас нет опыта работы, PhD по чему-то, или как минимум степени магистра по специальности Computer Science. Осложняется это ещё и тем, что выпускники (Fresh Grads) делятся на людей первого сорта (выпускники Stanford и UC Berkley) и на всех остальных. Это распространено и вполне ожидаемо, что вы не получите phone screening только потому что у ваc нет PhD, а даже если оно у вас есть, то phone screening вы всё-равно не получите, потому что вы не со Stanford'a. (Есть достаточно много стартапов у которых жёсткое правило. Набирать только из top schools. Про большие компании не знаю, но думаю, что они более адекватно относятся к процессу и такой фигнёй страдают меньше). Короче, в резюме идёт образование, но без подробностей (имя университета, специализация, период обучения).
Хорошо ценится, если то, чем вы занимались во время обучения в университете связано с анализом данных, особенно если рекрутер может понять хотя бы на уровне идеи, как эти знания можно применить в компании. (Тут можно врать, но не очень сильно.)
Несколько строчек в моём резюме посвящены результатам соревнований по машинному обучению упомянутому выше. Я в kaggle вбухивал достаточно много времени, поэтому в резюме он у меня вписался хорошо.
Важный, но неочевидный кусок резюме — это Communication and Leadership. Идея в том, что академическая среда деформирует личность в том плане, что общаться с «ботаниками» тяжело. Плюс часто в команде работать они не умеют. Тут мне моё преподавание пригодилось, как минимум как строчка в резюме, которая пытается сказать, что я умею объяснять технически сложные темы людям, которые в этом мало что понимают.
И всё-равно куча свободного места. Туда я вствил названия online курсов, которые я брал на coursera и edx на связянную с Data Science тематикой и подсекцию назвал Independent Coursework. Любят американцы слово Independent, да и Coursework звучит хорошо.
Собственно и всё. По сути только научная степень, kaggle и куча воды. Но и бог с ним. Задача резюме получить phone screening.
Вышло как-то вот так.
Как сделать так, чтобы ваше резюме попало к рекрутеру?
- LinkedIn — список вакансий, которые создали на самом LinkedIn, а также те вакансии, которые LinkedIn надёргал с других ресурсов. Недостаток — легкий доступ к списку вакансий и как следствие много апликантов. 300 — 1000 апликантов на одну вакансию — это нормально. Из достоинств — вакансий много, можно массово подавать во всё, что можно.
- dice.com — какие-то вакансии есть и там, но я ни одного интервью с ними не получил.
- monster.com — тоже ксть какие-то вакансии, но я на нём зарегестрировался достаточно поздно
- Секция jobs на kaggle.com
- Знакомые, которые где-то работают могут вас посоветовать. (Я так получил интервью с Google и Pebble)
- Знакомые, которые получили job offer, отклонили его, но вместо себя посоветовали вас. (Я так получил интервью с Uptake и Bidgely)
- Career Fair в UC Davis было бесполезное, а на Career Fair в Stanford или Berkley без соответствующего студенческого билета не просочится. Но это я поздно спохватился. Если бы раньше мозг включил, может быть что-нибудь бы и придумал.
- Meetups — в Bay Area чуть не каждый день проводятся всевозможные митапы на темы связанные с Data Science. Там как минимум можно с кем-то познакомится, а как максимум, можно и впечатлить (Недавний пример — надо мне было пробки переждать, я зашёл на митап, который проходил неподалёку под названием Deep Learning в Natural Language Processing. И мне эта тема никогда не давалась. По отдельности и нейронные сети и NLP работают, а когда их скрещиваешь — резльтат у меня получался средненький. Вот я и зашёл просветится. Но не угадал. Там все были неопытные, поэтому я два часа у доски им лекцию читал о том, что знаю на эту тему и на следующий день пара присутствующих на митапе написали, что у них на работе есть вакансия ну вот как раз для меня. Но это скорее исключение. Да и митапы где я ничему не учусь мне не нравятся.).
И вот вроде бы у вас замечательное резюме, и вы его рассылаете, но что-то вам не отвечают. Одна из проблем состоит в том, что в большие компании, где рекрутеры опытные, море кандидатов, причём их рекомендуют, а вы сами по себе. Вы теряетесь в общей массе. Но, рекрутеры адекватные. (В хорошую сторону отмечаю Googe, Pivotal и LinkedIn. В LinkedIn особо отмечаю Михаила Обухова, я вот не знаю, что он там понаписал в отчете по итогам интервью, но спрашивал хорошие вопросы и исключительно по делу)
Со стартапами ситуация другая — там рекрутеры юные и неопытные и не очень знают что они хотят в резюме увидеть. Например, объявления о работе у крупных компаний они короткие, но конкретные, а у многих мелких стартапов — море требований. Например, был один стартап, который хотел от потенциального Data Scientist'a:
- Знания алгоритмов машинного обучения на уровне эксперта.
- Знания статистики на уровне эксперта
- Знания генетики на уровне эксперта.
- Умение писать production quality code
- Умение работать со всевозможными базами данных.
- Естественно, у вас должна быть PhD по технической специальности.
И ещё простыня требований. Причём работу они кандидатам не предлагали, а предлагали низкооплачиваемый контракт на несколько месяцев, по итогам которого возможно вас бы перевели на полную ставку. Найти кандидата, который подходит под эти критерии, да ещё и согласится работать за еду — нереально.
Это я к тому, что рассылать своё резюме надо везде и всюду. Даже если это вакансия вам не интересна. Каждое интервью — это опыт прохождения интервью. А этот опыт для того, кто этого делать не умеет, на вес золота.
Phone Screening
Вам звонит рекрутер. Что он хочет? А хочет он (гораздо чаще это она) дополнить ваше резюме комментариями.
Типичные вопросы:
- Почему вы хотите работать в нашей компании?
- Закончили вы ваше образование и если нет, то когда заканчиваете?
- Интервьюируитесь ли с другими компаниями?
- Каков ваш визовый статус? И когда ваша виза позволит вам выйти на работу?
- Каков ваш опыт работы с данными?
- Куча вопросов по резюме ответами на которые вы должны убедить её, что она не получит по шапке за трату драгоценного времени, когда передаст ваше резюме с комментариями кому-то, кому она должна его передать.
Тут всё прямолинейно. Чем лучше у вас резюме — тем меньше дурацких вопросов вам зададут. Причём когда я говорю, что резюме хорошее я не говорю, что вы там освещены хорошо — я говорю, что рекрутеру это освещение понравится. По сути ваше резюме должно быть подстроено под её/его ожидания от вас. Обычно с этой на следующую ступень переходится без проблем, хотя есть исключения — один раз я пролетел, потому что контора работает с какими-то секретными данными, и меня в силу российского гражданства к ним допускать нельзя.
Разговор с членом Data Science team
Разговор похож на разговор с рекрутером, но более технический. Про визу тут уже не спрашивают.
Начинаются мутные мотивы. Народ приходит в Data Science со всевозможных направлений: Computer Science, Statistics, Physics, Math, Economics, Biology, и т.д. Причём интервьюировать обычно начинают почти сразу. То есть опыта работы толком нет, опыта интервьюирования тоже толком нет, но есть идеи и желание попрактиковаться. И тут им попадаетесь вы…
Хотят они от вас много разных вещей.
Типичные вопросы:
- Приведите пример вашей работы с данными?
- Вот вам такая задача, как бы вы к ней подступились?
- А вот какие проблемы были бы у нас если бы мы взяли эти данные, этот алгоритм и попытались ответить на этот вопрос?
Тут у меня выстреливал кагл. После полу года работы над различными задачками на эту тему я могу трепаться часами. Но без кагла я бы тут сильно плыл. Спектр вопросов с одной сторны узок — про данные и про ваш опыт, но с сдругой он необъятен, потому что спросить могут про что угодно из Machine Learning, Statistics, про Use Case, причём не обязательно, что вопрос будет на базовом уровне. И по темам разным гоняют. Могут про Natural Language Processing, могут про Credit Card Fraud Detection, а могут про Recommender Systems. И нет никаких гарантий, что они сами в этой теме разбираются хоть как-то. Часто любят задавать вопросы на которые не знают ответа и сами с ними мучаются по работе. Вы тренируетесь проходить интервью, а они на вас тренируются интервьюировать людей, а как известно, дурацкие вопросы проще задавать, чем на них отвечать.
Был такой случай. В Pebble меня парень спросил:"Гики нашей продукцией пользуются, а вот как бы нам начать продвигать наши часы в негиковскую среду?". Я ему и ответил:"Я и без Data Science скажу — увольте вашего дизайнера. В ваших часах ни один уважающий себя президент третью мировую войну не объявит, даже если захочет. Он просто постесняется на публике повиться с вашей продукцией на руке.". Следующим утром я получил email о том, что я им не подхожу. Но и бог с ними.
Что помогает — зайти на GlassDoor и посмотреть какие вопросы задают подающим на позицию Data Analyst, Data Scientist, Software Developer, и всех их прорешать. Это не панацея, но часто на интревью попадаются задачки, которые где-то встречались.
На одних знаниях на этой ступени не выехать, надо ещё головой соображать. Например, был такой вопрос — а вот как бы вы воспроизвели алгоритм Swype? Опыт соревнований на кагле мне помог, идеи генерировал как фонтан, и, как выяснилось, мой интервьюер сильно проникся.
Опять же в больших кампаниях или больших стартапах более внятные вопросы, более адекватные интервьюеры. В лучшую сторону отмечаю (LinkedIn, Google, Pivotal, Bidgely, Affirm). В худшую (Pivotal, Pebble, Turn, Workday, Leap Motion). (Pivotal дважды, потому что эту стадию я дважды проходил. И один раз попал на самоуверенную тётку с невысоким коэффициентом интеллекта и с ней у меня не срослось.)
Техническое интервью
Интервьюировать вас будет член Data Science team. На двоих рашаривается google docs или collabedit или что-то вроде того. При этом вы находитесь в состоянии телефонного разговора. Так что вам надо будет одновременно и говорить, и печатать. Телефонная гарнитура будет очень кстати.
Вопросы будут разные.
- Задачки про вероятность, особенное любят задачки на теорему Байеса.
- Статистика
- Программирование. Обычно это python, R, Java.
- Машинное обучение — теория
- Алгоритмы и структуры данных
- MapReduce
Спектр вопросов необъятный. Если вас интервьюирует человек у которого специализация в университете была статистика или данная вакансия требует глубоких статистических знаний — вас будут жёстко прессовать на эту тему. Если у него образование в Computer Science — вас просклоняют по этой теме, и т.д.
Готовиться — решать задачки с GlassDoor и улучшать свой background по всем направлениям.
Onsite interview
Это марафон на несколько часов в офисе компании. Причём если вы добираетесь из другого города вам оплатят перелёт и гостиницу. (Я так в Чикаго очень приятно слетал)
Куча разных людей с вами общается по полчаса-час каждый. По середине, как правило, обед.
Обычно по одному за раз. Но в LinkedIn работают красиво, парами. Опытный тебя прессует, а второй, который недавно устроился, учится, у старшего товарища, хотя иногда тоже вопросы задаёт.
Тут и написание кода на доске, и как бы вы атаковали эту проблему, и вопросы по теории, и просто разговоры за жизнь.
Onsite дело мутное, и интровёртность, которая вырабатывается за время обучения в аспирантуре сильно мешает. Тут вас проверяют и на технические навыки, и пытаются определить ваш коэффициент интеллекта, вашу манеру мышления и вообще смогут они с вами работать или нет. То, что вас пригласили к ним в офис на onsite не означает, что вам дадут работу, но, как миниум, означает, что вас рассматривают серьёзно. Статистически примерно половина кандидатов, которые добрались до этой стадии получают предложение о работе.
Заключение
Поиск работы в области Data Science в San Franciscoв Bay area — это непросто. Особенно если заниматься этим как я, в последний момент. Это нервный процесс, который занимает много сил и времени. Во многом, потому что сам по себе процесс долгий. И при этом вы интервьюируетесь со многими компаниями параллельно. Два — три интервью в день — это нормально. По началу напрягает, а потом привыкаешь. Я выпустился в июне, а получил предложение о работе только в октябре. Да, это первая работа, а её найти в любом случае тяжело. Но каждый день из этих месяцев — это отмирающие нервные клетки, которые не восстанавливаются, причём не только у вас, но и у ваших друзей, семьи и всех тех, кому вы не безразличны.
Можно ли срезать угол и не прорубаться через все эти стадии или хотя бы их упростить? Да можно. Существуют организации, которые занимаются тем, что берут талантливых выпускников, обучают и помогают трудоустроиться (Пример Insight Fellowship, Data Science Incubator). Но! Число мест сильно ограничено, а число желающих огромно. И на бумаге они почти наверняка выглядят лучше вас. Но я знаю несколько человек, которые прошли отбор в Insight и проблем с поиском работы у них не было. Так что всем своим знакомым, которым предстоит вся эта эпопея с поиском работы в Data Science я рекомендую активно подавать в эти организации.
Другая возможность срезать угол — это internship в какой-нибудь компании. Если бы я был умнее, я бы пытался протиснуться в какой-нибудь internship каждое лето, что я учился в UC Davis. Жизнь была бы сильно проще.
Встаёт вопрос: а стоило ли оно того и что вообще изменилось?
Альтернативой поиска работы в Data Science была позиция постдока. Из преимуществ — тот же знакомый рабочий процесс, что и в аспирантуре, море свободного времени. Из недостатков, число вакансий на позицию постдока сильно ограничено и найти такую вакансию гораздо сложнее, чем найти работу. То есть выбрать место где жить и работать, практически нет. По деньгам всё печально, да и непонятно что с перспективой. Примерно 3% тех, кто после аспирантуры идёт на постдок, после 5-10 лет постдока находят себе позицию профессора, опять же там где им эту позицию дадут, а не там где им хочется. Как правило, почти все (есть искренне радующие исключения) мои знакомые постдоки параллельно двигают науку и занимаются поиском работы, причём многие именно в Data Science.
Позиция Data Scientist'a:
- Приятнее по деньгам. Например, во время обучения в аспирантуре я вечно жил в каких-то халупах, снимая их с другими, обычно малознакомыми или не интересными мне людьми. Сейчас я снимаю однокомнатную квартиру и когда я прихожу домой чувства отвращения у меня моя квартира не вызывает. Это хоть и временный, но дом.
- Неприятнее по времени. Мне не нравится продавать своё время за деньги. Я предпочитаю продавать его за знания. И нет никаких гарантий, что в течение рабочего дня вы будете заниматься тем, что вам интересно. Это печальный факт. Отчасти решается тем, что рабочее время тратится не только на работу, но и на самообучение. Но тем не менее после многих лет работы над какими-то фундаментальными задачами, поиск багов в недокументированном коде, воспринимается, как трансформация в офисный планктон. Но есть надежда, что после вводного периода задачи будут интереснее.
- На данном этапе много знаний идёт со стороны психологии. Последние много лет я вращался в академической среде, и чем живут студенты, аспиранты, профессура я представляю. Их систему ценностей, то чем они живут и дышут. Они как родные. Это скучно. А вот чем живут люди в Кремниевой Долине, как тут всё устроено и функциониует, и кто все эти люди — этого я не знаю и сейчас в этом направлении знания вливаются широкой рекой.
- При поиске работы я сильно влетал на том, что не было связей и строчки в резюме о том, что у меня есть опыт работы. Сейчас появляется и то, и другое. Предполагается, что если мне захочется поменять работу, жизнь будет чуть проще.
- Опять же проще выбирать место работы/жительства. Надоест в Кремниевой Долине — поеду, как и планировал в первом абзаце, в Токио, Рио или Сингапур.
Что изменилось? Да ничего по сути сильно не изменилось. Как и в аспирантуре весь день я сижу за компьютером, уставившись в монитор, и тыкаю пальцами в клавиши на клавиатуре, а в свободное время скалолазание, танцы, пиво, сноуборд зимой и прочие развлечения.
Как и что будет через год я не знаю, но пока всё идёт нормально.
Вторая часть.
Третья часть.