Нас часто спрашивают, можно ли поступить на магистерскую программу JetBrains в Университете ИТМО без профильного образования в бакалавриате. Мы отвечаем, что можно и подобные истории случаются каждый набор. Но нельзя не отметить, что в таком случае подготовка к поступлению и само обучение дается гораздо сложнее: студентам приходится осваивать больше материала в сжатые сроки.
Ярослав Чернышев – выпускник 2020 года программы «Разработка программного обеспечения». В этом интервью он рассказал свою историю, которая, возможно, немного успокоит вас и подтолкнет изменить сферу деятельности. Несколько лет назад Ярослав решил уйти из юриспруденции в IT. Что из этого вышло, читайте под катом.
— Расскажи, кем ты сейчас работаешь и чем занимаешься?
Я работаю в JetBrains в команде Kotlin Build Tools c 2019 года. Наша команда занимается разработкой и поддержкой проектов на Kotlin в различных автоматических системах сборки. В мои задачи входит разработка и поддержка импорта Kotlin-проектов в среде разработки Intellij IDEA. Также в прошлом году я реализовал функциональность для расширенной поддержки менеджера зависимостей Cocoapods в Kotlin Multiplatform проектах.
— Верно ли, что твое первое образование было по совершенно другой специальности?
Когда я поступал в магистратуру, у меня было два высших образования: техническое по специальности «Прикладная математика в нефтяной отрасли» в Грозненском государственном нефтяном техническом университете и юридическое в Московском университете МВД России. Именно по второму профилю я и работал в предыдущие годы.
— Чем ты занимался до того, как поступил в магистратуру?
После армии я в течение шести лет проходил специальную службу в органах внутренних дел, в частности в подразделениях по работе с личным составом, штабных подразделениях и образовательных организациях МВД России. Со службы уволился в 2016 году, после занимался коммерческой деятельностью.
— Когда тебя увлекло программирование? С чего все началось?
Все началось еще в средней школе, первые уроки программирования были именно тогда. Я учился в специализированном классе с дополнительными занятиями по математике и программированием на Pascal. Благодаря этому интересу уже во время работы мне удалось автоматизировать многие рутинные задачи, такие как генерация и отправка отчетов, модифицировать 1С и прочие сервисы под свои нужды. Это, конечно, нельзя назвать полноценным программированием, но эта активность поддерживала меня в тонусе на протяжении долгого времени и сохранила интерес к программированию.
— Как ты решился настолько кардинально поменять область своей деятельности?
Пожалуй, как и у большинства людей, осознанно меняющих направление своей карьеры, я испытывал недостаток мотивации, отсутствие явных перспектив профессионального и финансового роста.
— Откуда ты узнал о программе? Рассматривал ли другие варианты и почему остановил выбор на этой программе?
Когда я начал проходить курсы по программированию на Stepik, больше для души, чем в качестве подготовки, то узнал про Computer Science Center и корпоративную магистратуру JetBrains. Я был далек от разработки программного обеспечения и ничего не знал о компании и ее продуктах. В тот момент именно поступление в Computer Science Center было моей целью, поскольку стать студентом магистратуры казалось задачей невыполнимой. Однако, вопреки сомнениям, я подал заявку на поступление и прошел этап онлайн-испытаний.
— Как ты готовился к поступлению?
Я начал подготовку за полгода. Изучил вопросы с собеседований предыдущих лет и составил список тем и предметов для изучения. Основными инструментами для подготовки стали сборники задач по высшей математике и курсы на Stepik. Наиболее полезными оказались курсы по программированию на C++ (базовый курс и продвинутый), по алгоритмам и дискретной математике. Этого набора знаний с натяжкой, но хватило для прохождения вступительных испытаний.
— Помнишь, как проходило собеседование? Был ли ты уверен, что все прошло хорошо или нет?
Прекрасно помню! Собеседование состояло из двух частей: письменной и устной. Сначала мне выдали лист с 10-12 заданиями по математике и программированию и посадили решать их в отдельный кабинет [в 2021 году абитуриентам будет предложено ответить на один теоретический вопрос и решить одну задачу – прим.ред.]. За отведенные 45 минут мне удалось ответить на большинство из них, хотя я не очень был готов к написанию кода на листе бумаги. После этого мою работу проверили, и мы обсудили как правильные решения, так и ошибки.
На устном этапе собеседования мы обсуждали базовые понятия теории алгоритмов, основы языка программирования на выбор абитуриента (я выбрал C++, так как проходил курсы на Stepik). Кроме этого были интересные вопросы “на подумать”, такие обычно задают для проверки Problem-Solving Skills. Мне достался вопрос, связанный с генератором случайных чисел, на который я ответил неправильно, но преподаватель завязал беседу, и мне удалось выйти на правильный ответ. Спустя некоторое время мне позвонили и сообщили, что собеседование я прошел успешно и могу быть принят в магистратуру.
— Учеба на магистерской программе: как справлялся, был ли готов к такой нагрузке?
Я ожидал, что учиться будет сложно, но объем материала и интенсивность его подачи превзошли ожидания. Первые полгода было прям очень трудно: два больших теоретических курса по алгоритмам и дискретной математике, три языка программирования с абсолютно разными концепциями и синтаксисом, которые “радовали” большими домашними заданиями. Пожалуй, главным своих подвигом я до сих пор считаю пережитый первый семестр магистратуры: через пересдачу двойки за экзамен по дискретке, через досдачи незачетов, через допсессию.
— Какой курс за все время обучения ты запомнил больше всего?
Больше всего мне запомнился курс по программированию на Java, в ходе которого мы выполняли объемные и очень интересные домашние задания. Сдать этот курс мне удалось только со второй попытки: сначала не осилил многопоточность, а потом как осилил!
— Что самое важное ты вынес из обучения в магистратуре: знания, выводы про себя или про область, знакомства?
Пожалуй, самое главное – это необходимость быть открытым для новых знаний и перемен, не бояться конкуренции и не стесняться обращаться за помощью. Особенность этой магистратуры в том, что она в короткие сроки дает как значительный объем фундаментальных знаний, так и позволяет приобрести богатый набор практических навыков. Это важно в контексте особенностей сферы разработки программного обеспечения, где одни технологии быстро устаревают, а на их смену приходят другие.
— В этом году ты выступил уже в роли научного руководителя одного из выпускников. Был ли этот опыт интересным и полезным для тебя?
Одна из первых задач, которую я решал в проекте Kotlin, былаинтеграция Kotlin Multiplatform проектов с популярным менеджером зависимостей Cocoapods. Эта функциональность оказалась востребованной у сообщества разработчиков, поэтому возникла идея воспользоваться накопленным опытом и расширить возможности интеграции на другие менеджеры зависимостей. Осенью 2020 года я предложил магистрантам выпускного курса в качестве дипломного проекта реализовать интеграцию Kotlin Multiplatform проектов с менеджером зависимостей Swift Package Manager, которую разрабатывает и активно продвигает компания Apple.
Результатом работы выпускника стал плагин для системы автоматической сборки Gradle, позволяющий разработчикам подключать Swift Package зависимости в свои проекты и преобразовывать Kotlin Multiplatform проекты в Swift Package зависимости. Кроме того, была опубликована статья на международной конференции Finnish-Russian University Cooperation Program in Telecommunications (FRUCT). Этот опыт однозначно был очень полезным, и вдвойне радостно, что в совместной работе удалось достичь высоких результатов.
— Что бы ты посоветовал абитуриентам?
Трезво оценить свои моральные и физические возможности, а также быть готовым на год-полтора выключиться из личной жизни, сосредоточившись на обучении. В обратном случае весьма вероятно, что отсутствие фундаментальных знаний и навыков и неспособность их в сжатые сроки компенсировать приведут к преждевременному завершению учебы.
Подробнее о корпоративной магистерской программе JetBrains мы рассказывали в этом посте. Подача документов продлится до 9 августа 2021 года. Ждем вас!