Максим Коновалов расскажет, как стал Data Scientist в МТС, пройдя школу аналитиков данных МТС и стажировку.
049 открытий250 показов
Привет! Я Максим, дата-сайентист из МТС. Работаю в команде банковского скоринга: наш продукт определяет кредитные риски и вероятность мошенничества. В компанию я попал через школу аналитиков данных МТС и стажировку. Сегодня расскажу, как попасть на работу в крутую компанию без 10 лет опыта работы.
С чем я пришел в Школу
До поступления в школу я занимался программированием, сейчас учусь в университете на специальности «Робототехника и искусственный интеллект». У нас в программе, разумеется, есть курсы по машинному обучению и Python с практикой. В дополнение я проходил бесплатные курсы на Stepik и похожих платформах, был на митапах по Data Science, пробовал проходить стажировки. Плюсом делал небольшие pet-проекты, но коммерческих работ не было.
Год назад я наткнулся на лендинг Школы. Мне понравилось, как расписана программа, кем являются преподаватели — это и подкупило. Последним аргументом стала возможность попасть на стажировку в МТС.
В итоге я подал заявку, прошел вступительный экзамен (в форме теста), написал мотивационное письмо — и, наконец, попал на обучение. Из огромного числа заявок прошли отбор лишь 120 человек.
Много математики, много домашки и баллы за кофе с одногруппниками: как строилось обучение
Обучение началось через несколько дней после зачисления в Школу. Иногда я думал о том, что программа может оказаться такой же, как на курсах, которые проходил раньше: структура не очень, все в записи, часть материала потеряла актуальность и так далее. Но оказалось все наоборот.
Занятия были очень интенсивными: два раза в неделю мы слушали лекции, по три часа каждая (всего мы отучились 360 часов!). Весь материал читали преподаватели во время трансляции. Там же отвечали на вопросы студентов по теме лекции или о себе и работе. Живое общение очень мотивировало посещать трансляции, а не ждать записи и откладывать «на потом».
Программа состояла из нескольких блоков: SQL, Python, математическая статистика, оптимизация, классический ML, визуализация, временные ряды и A/B-тесты, Big Data, RecSys, NLP, кейсы в ML и System Design. Около половины программы заняла теория: математика, статистика, теория вероятности и прочее. Другая половина — это работа с данными, Python, машинное обучение.
За пятнадцать лет работы в DS я пришел к выводу, что с коллегами, которые ловко освоили хайповые либы и не обладают фундаментальными знаниями, работается как на минном поле — никогда не знаешь где рванет. Часто эти ошибки касаются базовой статистики, интервальных оценок, а еще чаще — работы алгоритмов. Строгие теоретические выкладки подменяются мифами, а давно преодоленные ограничения старых реализаций алгоритмов становятся догматами. Отсюда и идет целеполагание нашей программы. При этом учить одну лишь теорию скучно, и у студентов возникнут справедливые вопросы о применимости знаний. При создании программы я старался дать за весьма ограниченный срок (всего год) и базу, и практические навыки. Это нужно, чтобы специалист на выходе стал самостоятельным: мог построить end2end-приложение с ML — от скраппинга данных до деплоя и оценки эффективности решения в деньгах. Это действительно сложно: начать с занятий Python и SQL и за год дойти до Spark и PyTorch, параллельно двигаясь от алгебры, оптимизации и статистики до устройства трансформерных архитектур и проблем смещений (bias) в рекомендательных системах. При этом базовые блоки выступают фундаментом для дальнейших занятий, и курс с середины не пройти.Никита ЗелинскийРуководитель центра компетенций Data Science МТС Big Data и ML-платформ
Многие преподаватели делили их на теорию и практику: изучили материал на лекции и сразу попробовали применить его при выполнении какой-то задачи.
Почти после каждого занятия мы получали домашнее задание на неделю — или более объемную итоговую работу, если закончили какой-то блок. Разумеется, все по теме лекции: от посчитать какую-то вероятность до написать бэкенд сайта для бронирования книг.
Что-то было довольно простым, например, все тот же сайт. Но иногда приходилось довольно долго думать.
Хороший пример — итоговая работа по Big Data. Нам дали файлы датасетов, по которым надо было выполнить четыре задачи:
- Проанализировать данные, описать проблемы, которые в них содержатся (проблемы хранения тоже считаются), и предложить решения.
- Реализовать поток данных из топика, который бы удовлетворял конкретные условия.
- Реализовать batch-поток для обработки исторических данных и построить на его основе четыре отчета.
- Спроектировать модель данных и таблицы для хранения информации из предыдущих задач. И протестировать эту модель на нескольких запросах.
Многие домашки были построены так, что их можно сразу класть в портфолио и подавать как пет-проекты. Например, домашкой по ML было близкое к реальному техническое задание от продакт-оунера: внедрить ML-модель в прод.
До начала курса я был знаком с основами математической статистики, SQL, Python и ML, и Школа аналитиков данных смогла дать мне главное — практический опыт, которого не хватало. С каждым месяцем обучение становилось интереснее: я начал узнавать вещи, о которых никогда не слышал.
А еще меня впечатлила сама организация. Спасибо Алине Веденской и Марии Теплинской за то, что регулярно постили анонсы и новости курса и всегда быстро давали обратную связь.
Еще нас мотивировали с помощью челленджей
Мы получали баллы за посещение лекций, домашки и внешнюю активность — те самые челленджи. Это могли быть пост про Школу в своих соцсетях или фотка, на которой ты пьешь кофе с другими студентами. За очки можно было купить мерч, плюс на их основе строился рейтинг студентов.
Вот такими были задания, за которые давали баллы.
Хотя должен признать, что мне не хватило нетворкинга и живого общения: лекций, конференций, мероприятий в офлайне. Но большинство студентов живут в разных городах и учатся/работают параллельно со Школой аналитиков данных, так что вряд ли это вообще возможно реализовать.
Высокий рейтинг — возможность попасть на стажировку
У топ-5 студентов по учебному рейтингу была возможность пройти все этапы отбора на стажировку в упрощенном порядке: мы сразу выбирали отдел, в котором хотели бы работать, и попадали на интервью с руководителем команды.
У остальных студентов и других кандидатов все было сложнее: нужно пройти первичное интервью с рекрутером, дождаться его решения, и только потом, если оно окажется положительным, тебя пригласят на интервью с руководителем команды, в которую хочешь попасть.
Мой сертификат выглядел так.
А потом пошли стажировки и адаптация
Благодаря учебе у меня появилась хорошая теоретическая база, небольшие проекты в портфолио, навыки работы с конкретными инструментами и контакты с коллегами, которые раньше были нашими преподавателями. Но было все равно сложновато.
Все потому, что появился огромный объем информации: по процессам, по продуктам, по ролям — все, что скопилось у отдела за много лет работы. И этот объем надо было как-то усвоить в максимально сжатые сроки: изучать документацию, читать чужой код, разбираться, что этот код сделал и почему именно так.
Но я всегда мог написать вопрос в общий чат, и коллеги помогали разобраться с конкретной задачей.
Конечно, параллельно с первого дня стажировки я начал работать. Например, первой задачей было построить скоринговую ML-модель — по типу тех, которые делают коллеги. Делать нужно было все:
- сборку и расчет данных;
- препроцессинг;
- фильтрацию стабильных признаков во времени по PSI;
- построение и сохранение ансамбля моделей;
- расчет метрик качества;
- создание отчета по построенной модели.
И здесь помогло обучение в Школе аналитиков данных (особенно блок Big Data). Мы учились на тех инструментах, которыми я пользовался на стажировке и пользуюсь до сих пор. Например, когда я только попал на стажировку, уже очень хорошо разбирался в модуле Spark, успел позапускать на нем код — так что тратить время на изучение инструмента не пришлось.
Так, очень быстро и незаметно пробежали три месяца
Как такового перехода из стажировки в штат у меня не было — я закрывал спринты, постепенно брал на себя более сложные задачи (например, строил внешнюю модель для внешнего заказчика). Мне даже сложно прочертить четкую границу между работой стажера и на нынешней должности, потому что проекты остались теми же:
- реализовывать новые фичи для ML-моделей на основе данных телекома;
- сделать аналитику по продуктам финтеха;
- построить ML-модель для потока внешних клиентов и так далее.
Тем не менее появилось планирование и долгосрочные цели. Если раньше я был «на подхвате», и тимлид давал по задаче за раз, то теперь потихоньку начал формироваться бэклог на следующий квартал: мне начали ставить конкретные задачи с дедлайнами.
Как я узнал от HR, после завершения стажировки около 60% сотрудников переходят в штат компании. Это меня удивило и замотивировало — не хотелось попасть в оставшиеся 40%.
Что осталось рассказать
Я остался доволен учебой в Школе и дальнейшим треком по нескольким причинам:
- качественные и хорошо структурированные знания, которые вы либо не сможете найти в открытом доступе, либо потратите на это кучу времени;
- преподаватели — действующие сотрудники МТС, опытные специалисты с огромной экспертизой;
- классное, открытое общение: и менеджеры, и преподаватели всегда готовы помочь;
- домашки не были абстрактными и больше походили на пет-проекты — с такими точно можно собрать портфолио и стучаться в крупные IT-компании.
В целом, этот курс стал для меня отличным стартом в мире Data Science. Моей целью было получить навыки и знания, которые могут помочь мне попасть на стажировку в МТС — и я их получил. Заранее изучил теорию, с которой буду сталкиваться на работе, и отточил ее на домашних заданиях, выяснил, как все устроено в командах, и познакомился с будущими коллегами.
А тем, кто только поступает в Школу, я советую быть активными: ходить на лекции, выполнять домашки и получать баллы. Звучит просто и обыденно, но от этого действительно зависит, сможете ли вы попасть на стажировку и получить работу.