Всем привет! В этой статье я хочу описать свой опыт поступления и обучения в корпоративной магистратуре ИТМО и (уже) Газпром-нефти (а ранее JetBrains) Разработка ПО (Software Engineering). Все сказанное ниже относится к 2023-2024 учебному году. Не стоит принимать все сказанное не веру, к каждому тезису можно приписать "по моему мнению".
Пререквизиты
Я закончил направление "Механика и математическое моделирование" в Политехе. У нас было несколько курсов, на которых мы трогали код (в основном Matlab), но в целом это вызывало много боли у бОльшей части группы. При этом у нас была (как я сейчас уже понимаю) довольно сильная подготовка по математике. О том, как это сказалось на учебе расскажу далее.
Поступление
Поступить сюда можно двумя способами: по конкурсу Портфолио и через вступительные испытания. Подробности можно узнать на сайте программы, я лишь опишу свой опыт.
Я выбрал поступать через вступительные испытания, но при этом в качестве первого этапа отбора зачел курсы на Stepik (их там 4 штуки, при желании можно пройти за неделю). Это позволило снять лишнее напряжение и одновременно готовиться ко второму этапу отбора - собеседованию по зуму. На собеседовании мне дали 1 вопрос по математике (список вопросов есть на сайте) и задачку по программированию. Я хорошо справился с билетом по математике, но неправильно прочитал условие задачи по проге, из за чего на разборе возникли трудности. Тем не менее, этого хватило для того, чтобы поступить.
По моим ощущениям пройти эти вступительные может любой человек, у которого был хотя бы год математического анализа с линалом и кто хоть немного в своей жизни писал код хоть на каком-то языке программирования. Для подготовки ко второй части хватит умения быстро решать задачи Easy/Middle уровня на LeetCode. Лично я на подготовку потратил неделю, но часть моих одногруппников не готовились вообще.
Группа
Нас было около 30 человек. Примерено половина (а может и больше) группы составляли ребята, закончившие профильный бакалавриат. Таким образом я сразу влился в очень сильный коллектив людей, которые во много раз лучше меня разбираются в разработке и программировании в целом. Пожалуй, это один из основных плюсов для человека, который хочет быстро и наименее болезненно разобраться сразу в большом количестве технологий.
От того, что вас будут окружать сильные ребята нужно уметь брать максимум - нужно уметь общаться :) Эта программа будет в разы менее полезной, если вы не будете взаимодействовать со своими сокамерниками
Учеба
Ну вот и самое интересное. Тут можно сказать ОЧЕНЬ много слов, не все из которых будут полезными. Далее я расскажу про первый семестр. Второй, хоть и отличался от первого, в целом следовал тому же шаблону
Тут у нас были следующие дисциплины. Я скажу несколько слов по каждой их них, а ниже дам общее впечатление от всего происходившего в первом семестре:
Алгоритмы и структуры данных
Каждую неделю проходит одна лекция и одна практика по какой-то теме. Также в течении семестра проводится 3 алгоритмических контеста, на каждом их которых надо решить определенное количество задачМашинное обучение
Каждую неделю по одной лекции и одной практике. После каждой практики надо руками (только numpy) реализовать какую-то штуку (KD-дерево, нейронная сеть и тп)Программирование на С++
Каждую неделю дорешка - набор из 2-3 задач с автотестами. Также в течении семестра проводятся 3 контрольные по темам из предыдущих лекций.Функциональное программирование (Haskell)
Каждую неделю было по домашке с автотестами. В самом начале курса проходили лямбда-исчисление, после этого пошли изучать Haskell вплоть до трансформеров монадДискретная математика
Лично мне показался одним из самых приятных курсов. Тут как и везде была домашка каждую неделю, но если у вас ранее был теорвер или комбинаторика, то проблем возникнуть не должноUnix
Тут нам рассказывали общие факты про ОС, а также учили писать скрипты на bash. В течении семестра домашки как таковой не было, но в конце надо было решить около 10 задач на bash.Python
Не очень длинный, можно считать даже модульный курс по Python. В течении всего курса у нас было несколько приятный домашних работ и 2 очень неприятныe контрольныeБазы данных
Тут к нам пришел человек из VK и рассказывал про базы данных. К сожалению курс был построен таким образом, что человеку, у которого ранее не было баз данных будет очень тяжело втянуться, поэтому крайне рекомендую летом немного поизучать синтаксис SQL и пописать простенькие запросыСофт скиллы
Модульный курс (2 недели в конце октября) - это значит, что в течении 2 недель у нас должен идти только этот предмет (по 4 пары в день 5 дней в неделю). Это один из двух предметов, которые читались нам от университета (все остальные предметы читались, как сказали бы в другом месте, людьми с кафедры). Время проведение софтов, как нам говорили, должно было быть некоторой передышкой между жесткой учебой и жесткой учебой, но на деле оказалось не так - домашки по остальным предметам оставили и нам пришлось их делать, сидя на парах по софтам, которые проводились не в том корпусе, где хостится программа (БЦ Таймс), а в корпусе ИТМО на Ломоносовской. В целом у меня остались положительные впечатления от выбранного курса, скорее всего обусловленные некоторой сменой обстановки - новая локация, новые люди и тпАнглийский язык
Курс проводился полностью дистанционно. Тут все очень зависит от преподавателя - лично мне не очень повезло и в конце семестра возникли некоторые трудности, которые решились через кураторов.DevDays
Помимо сказанного выше в середине семестра у нас проводился хакатон DevDays.
Этот момент можно с уверенностью назвать передышкой после 2.5 месяцев жесткого ботания всего что только можно. Но при этом стоит понимать, что качественно сделанный проект очень сильно бустанет вас как разработчика (особенно, если это ваш первый хакатон, а у меня так и было). Наша команда сделала бота для анализа торговых стратегий и заняла первое место :)НИР
Ну и куда же без проекта) В течении семестра мы должны были сделать проект, темы для которого можно было выбрать из предложенного пула, либо предложить свою.
Общие слова
Для начала стоит понимать, что почти по всем дисциплинам после каждой практики задаются домашние работы с дедлайном до следующей практики (в ночь до пары. Как сейчас помню, когда кто-то из моих одногрупников спросил в самом начале, до какого времени дедлайн (начало пары или полночь), а я не придал этому значения - очень зря, ведь спустя неделю оказалось, что лишние несколько часов играют решающую роль в таком темпе жизни).
Из за этого приходится учиться очень четко планировать свое время - буквально каждый вечер должен быть потрачен на конкретный предмет, иначе долг начнет копиться как снежный ком и, не освоив предыдущую домашку справиться со следующей становится в разы труднее (не стоит говорить о том, что примерно в середине октября каждый свободный вечер начинает цениться на вес золота). В целом, если вы не планируете вести активную социальную жизнь, то справиться с такой нагрузкой можно - лично у меня получалось раз в две недели выбираться куда-то.
Сессия
Тут все зависит от ваших целей. В целом бОльшие проблемы на сессии возникали по алгоритмам (нужно получить допуск по домашкам, что получалось далеко не у всех) - как в первом так и во втором семестре. Если вы смогли закрыться по алгоритмам, то с остальным проблем будет меньше. Тут все индивидуально и ОЧЕНЬ зависит от работы в семестре и ваших желаний по оценкам. К концу второго курса у нас в группе осталось 19 человек.
To sum up
Поступил бы я сюда еще раз? Сложный вопрос, но из всех способов провести 23-24 год это, вероятно, самый продуктивный. Сложно представить место, где я смог бы так же сильно прокачаться в IT, как в этой магистратуре. Вероятно, если вы уже на момент окончания бакалавриата круто кодите и разбираетесь во всем, что нужно для успешного трудоустройства, то вам стоит задуматься о том, что работа даст вам больше. Но это очень спорно. Кто знает, может вы захотите доучиться в 27, а это уже будет намного сложнее.