Проектная работа

Тема проекта, над которым я сейчас работаю, — «Повышение гранулярности предупреждающих сообщений в компиляторе GHC». Он выполняется под руководством разработчиков Serokell. Его результаты могут помочь разработчикам на Haskell писать на этом языке еще чуточку приятнее. Иными словами, программист на Haskell сможет подавлять/отключать определенные виды предупреждений для частей исходного кода. Я выбрала работу с Haskell, потому что мне очень нравится этот язык, а данная работа позволяет погрузиться в недра его компилятора. Для работы над научно-исследовательским проектом в расписании занятий выделен специальный день. Хотя по факту каждый студент работает в удобное ему и его научному руководителю время. Формат взаимодействия по проектам тоже может быть разным. Например, я стараюсь делать что-то в течение недели и связываюсь с руководителями по мере необходимости в специальном чате.

Как строится обучение на программе

Упор в обучении в рамках программы делается на практику, но предметы с фундаментальными знаниями тоже есть. Кроме того, на некоторых предметах можно выбирать, в какую группу по практике пойти: с уклоном в решение теоретических или же практических задач. Считаю, что мне полезно все, что дается на программе: от знаний (лишних предметов нет) до количества домашних заданий и пар. Большая нагрузка заставляет учиться правильно распределять свое время и повышать эффективность работы.

Перспективы

Большое количество предметов, специализации, преподаватели с узкоспециализированными знаниями — все это позволяет каждому студенту идти по собственному пути. Лично я выбрала специализацию «Теория языков программирования», потому что это то, чем мне действительно интересно заниматься. В этом направлении и планирую идти дальше.

Екатерина Шеметова

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

Сейчас в рамках научно-практического проекта я занимаюсь задачей поиска путей с контекстно-свободными ограничениями (разработкой быстрых алгоритмов для ее решения). Среди практического применения его результатов — статический анализ кода, запросы к графовым БД и многое другое.

Как строится обучение на программе

Если говорить об обучении в магистратуре, можно отметить, что у нас есть как сугубо практические предметы, так и базовые. Но у каждого предмета (даже если он фундаментальный) обязательно есть большая практическая часть, где мы что-то решаем или пишем код, то есть не только получаем знания, но и учимся применять их.

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

Перспективы

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

Иван Ильчук

До этой магистратуры я окончил бакалавриат по физике. У меня были некие основы, понимание программирования, но я знал, что некоторой базы мне все же не хватает. В итоге я выбрал эту магистратуру, потому что посчитал, что она одновременно даст мне недостающую базу и позволит изучить что-то на более продвинутом уровне.

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

Как строится обучение на программе

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

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

Перспективы

В будущем я хочу развиваться в машинном обучении. На сегодняшний день это направление применяется в различных сферах. Даже немного страшно, что я могу приложить руку к тому, чтобы самого себя лишить профессии. Шучу, конечно. Машинное обучение может заменить много кого, но до хороших специалистов ему пока не добраться. А я надеюсь стать в будущем как раз таким программистом. После магистратуры я хочу уйти работать в крупную компанию, среди которых в первую очередь рассматриваю именно JetBrains.

Роман Голышев

Я слышал много хороших отзывов об этой программе от старших товарищей. Также меня привлекло то, что я уже знал многих из преподавателей (смотрел или проходил их курсы на Stepik), поэтому был уверен в высоком качестве предоставляемых знаний.

Проектная работа

Сейчас я выполняю магистерскую дипломную работу в команде JetBrains, которая занимается IntelliJ Rust Plugin-ом. Это плагин, добавляющий поддержку языка Rust в IntelliJ IDEA и другие продукты JetBrains. Плагин является опенсорсным и доступен бесплатно. Основная цель моей работы состоит в том, чтобы пользователи плагина получили более полную поддержку IDE в случаях, когда они используют процедурные макросы (это один из концептов языка Rust). Для достижения этого я должен подружить уже существующую инфраструктуру плагина с внутренними API компилятора Rust.

Как строится обучение на программе

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

Перспективы

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

Редакция новостного портала
Поделиться: