«Хотелось плакать от такой нагрузки»: как я поступил на бюджет в Школу анализа данных
Это история из Сообщества. Редакция задала вопросы, бережно отредактировала и оформила по стандартам журнала
Предыстория
Весной 2022 года я оканчивал совместный бакалавриат ВШЭ и Российской экономической школы и искал варианты поступления в магистратуру.
Изначально планировал пойти по пути наименьшего сопротивления и остаться в РЭШ — я бы легко сдал вступительные, а после спокойно совмещал учебу с работой, потому что материал был мне знаком. Но я понимал, что мало получу от такого образования. К тому же хотелось углубиться в программирование и разработку машинного обучения.
В попытке разобраться, чем хочу заниматься, я поехал в образовательный центр «Сириус» на смену «Финансовая математика и машинное обучение». Там познакомился с ребятами, которые оканчивали бакалавриат мехмата МГУ. На вопрос, в какую магистратуру они собираются поступать, услышал единогласное «в Школу анализа данных».
Про Школу анализа данных, ШАД, я слышал еще в 2016 году и думал, что круто было бы когда-нибудь там поучиться, но совершенно забыл про этот вариант, когда накидывал идеи для обучения после бакалавриата.
Быстрый гуглинг показал, что в ШАДе есть специализация по разработке машинного обучения и два варианта учебы: непосредственно в Школе с получением диплома о профессиональной переподготовке или на совместной программе с одним из вузов-партнеров с присвоением степени магистра. Мне понравилась идея двойной магистратуры с НИУ ВШЭ, и я решил, что надо пробовать поступить.
По закону подлости первый этап отбора заканчивался ровно в тот день, когда я решил поступать. Пришлось без подготовки сдавать онлайн-тест на 12 задач — девять по математике и три по программированию.
Темы были знакомые: матанализ, теория вероятностей, комбинаторика, несложные алгоритмы. Я решил около восьми задач — этого хватило, чтобы на следующий день мне пришло письмо с приглашением на второй этап. С того момента пришлось взяться за подготовку.
Подготовка
Второй этап назначили на конец мая — через три недели после теста. Объявили два экзамена: по программированию и математике.
Поначалу я просто прорешивал задания прошлых лет. На официальном сайте Школы их нет, но архивы за несколько лет хранятся на платформе Github — к некоторым задачам даже есть решения.
Темы почти не отличались от тех, что были в тесте, но вопросы стали в разы сложнее, и я почувствовал, что не тяну. У меня была хорошая математическая база, но даже с ней я путался в некоторых местах. С программированием дела обстояли еще хуже: в бакалавриате у меня была всего пара курсов по Python, навыков явно не хватало.
Вскоре я нашел дополнительные ресурсы для подготовки. Линейную алгебру, с которой были проблемы, повторял по четырехтомнику Алексея Кострикина. Рекомендую — отличный учебник с доказательствами основных формул. Чтобы подтянуть программирование, смотрел курс «Алгоритмы и структуры данных» от Павла Маврина на «Ютубе» и решал задачи уровня medium на ресурсе Leetcode.
Было тяжело: я занимался по восемь часов в день, а в оставшееся время писал дипломную работу. Часто казалось, что ничего не получается. Пару раз я чуть не разбил ноутбук после очередной ошибки, выданной интерпретатором. Чтобы успеть подготовиться, мне пришлось отказаться от посиделок с друзьями, игр в приставку и вечерних просмотров фильмов с девушкой. Иногда хотелось плакать от такой нагрузки, но выбора не было.
К концу месяца в голове образовалась каша из отрывков знаний по разным темам. Ощущения готовности к экзаменам не было совсем, но способностью останавливать время я не владею, поэтому пришлось смириться и надеяться на лучшее.
Экзамены
Первым испытанием стала математика: на решение восьми задач выделили четыре часа. За всем следил куратор из ШАДа при помощи системы прокторинга , так что воспользоваться вспомогательными материалами или списать у кого-то решения было невозможно. Я осилил больше половины заданий, пять или шесть. Возможно, смог бы справиться и лучше, но не хватило времени.
Через пару дней я сдал программирование: на экзамене предложили решить пять заданий за три или четыре часа. В этот раз, кажется, обошлось без прокторинга, но и списать не вышло: решения к заданиям такой сложности нельзя было просто загуглить.
На мой взгляд, второе испытание оказалось намного сложнее. Кодинг изначально давался мне хуже математики, и исправить это за три недели не удалось. Задачи были действительно непростые: например, в одной из них нужно было обучить модель. С этим я, конечно, не справился. В итоге удалось решить два задания.
В результате я, по своим подсчетам, набрал где-то 50% баллов. Знакомые сказали, что обычно этого достаточно для прохождения на финальный этап, но я сильно переживал. Тем не менее не стал дожидаться ответа от ШАДа и продолжил подготовку.
Через неделю пришло письмо счастья — меня пригласили в финал, где мне предстояло пройти устные экзамены по математике и программированию, а также собеседование с кураторами школы. Насчет математики и разговора «по душам» я не переживал, а вот кодинг опять заставил понервничать. Пришлось в ударном режиме решать разноплановые задачки.
Последний этап закончился к середине июля. Математику я, как и думал, сдал без проблем. Затупил на паре вопросов, но экзаменатор помог и вывел на правильное решение. С программированием тоже повезло: попалась задачка среднего уровня сложности. Кажется, был дан массив с двумя указателями, бегающими в разные стороны, и нужно было найти непрерывный подмассив с наибольшей суммой элементов. Решалось все при помощи «скользящего окна» — с этим методом я был знаком, так что справился без особых трудностей.
Собеседование вообще прошло очень уютно и спокойно: я рассказал про свои планы, карьерные цели, мы обсудили, как я буду совмещать учебу с работой, и разошлись на позитивной ноте.
Результаты
В середине августа пришли финальные списки — я прошел в ШАД на бюджет. Я рассчитывал на такой исход, но все равно был очень счастлив получить официальное письмо о зачислении.
Чуть сложнее обстояли дела с попаданием на трек совместной магистратуры ШАДа с Вышкой — пришлось подать портфолио и подождать, пока несколько людей отсеется, чтобы попасть в бюджетные списки. Но и это, к счастью, удалось.
Сейчас я уже полтора года учусь в Школе анализа данных «Яндекса». О своем выборе ни разу не пожалел — все курсы дают реальный прирост в знаниях, которые я могу использовать в работе. Во многом благодаря ШАДу я еще на первом курсе вышел на сеньорскую ИТ-позицию и продолжаю развиваться в этом направлении.
Временами бывает очень тяжело, прямо как в период подготовки к вступительным экзаменам, но я уже привык к такому режиму.
Советы
Первый и главный совет — закладывайте на подготовку больше времени. Если вы сейчас примете решение о поступлении в ШАД, у вас в запасе будет еще около полугода. На мой взгляд, это оптимальный срок, чтобы в комфортном темпе подтянуть проблемные темы.
Еще вам обязательно понадобится хорошая база по математике. У меня она была благодаря экономическому бакалавриату. Если вы такой роскоши лишены, начинайте учиться заранее. Могу посоветовать учебник Владимира Зорича «Математический анализ» — объясняет с нуля и обстоятельно, но нужно время, чтобы вникнуть.
Наконец, рекомендую учиться писать код на C++. Многие задачи на вступительных имеют лимиты по времени, и «плюсы» укладываются в них гораздо лучше, чем более медлительный Python. Я на момент поступления этого не знал и потому сильно страдал.
Удачи! И пусть качественное образование не обойдет вас стороной.