Преподавательский состав магистерской программы
JetBrains и ИТМО Разработка программного обеспечения на
четверть (!) состоит из выпускников этой же программы. Пожалуй, это
хороший повод для гордости. Мы решили сделать большое интервью с
ребятами. Возможно, их истории помогут кому-то решиться начать
преподавательскую карьеру, а кому-то поступить к нам на
программу.
В первой части наши выпускники и преподаватели Владислав Танков,
Дмитрий Новожилов, Дмитрий Халанский, Алексей Зубаков, Артем
Хорошев, Александр Садовников, Владислав Кораблинов и Роман Голышев
рассказывают о выборе магистратуры, впечатлениях от обучения и
отличиях от других программ.
Почему вы поступили на эту программу? Оправдались ли
ожидания?
Влад Т.: Я поступал на программу, ориентируясь на
качество обучения в Computer Science
центре. Я знал некоторых преподавателей и представлял, что
будет, безусловно, сложно, но интересно. Относительно ожиданий
думаю, оправдались. Я узнал много нового, попробовал заняться
неизвестными ранее вещами, а продукт, который мы сделали на
хакатоне в магистратуре, в итоге стал моей основной работой. Тогда
мы за два дня написали штуку, вокруг которой в итоге выросла
команда из восьми человек, а продуктом воспользовались несколько
миллионов человек.
Дима Х.: Во время учебы в бакалавриате я случайно
повстречался с преподававшим у параллельных групп бывшим студентом
этой магистратуры Игорем Жирковым. Он впечатлил меня казавшимся
тогда недоступным уровнем всестороннего понимания программирования.
Особенно меня поразило, как он оперировал математическими
инструментами. А я, надо признаться, в то время был убежден, что
математика это про решение уравнений и неадекватных головоломок в
духе правда ли, что 10 в степени 1999, если от него отнять 1999,
делится на 9 и совсем меня не касается.
Это меня так впечатлило, что я решил бросить все силы на
обретение этой мощи. Самостоятельное чтение книжек давалось с
трудом, и я решил, что надо получить полноценное образование, где
меня бы научили математически мыслить, желательно с привязкой к
программированию. Я спросил у Игоря, где можно найти что-то
подобное, и был готов ехать куда угодно. Каково же было мое
удивление, когда Игорь сказал, что никуда ехать не надо: в СПбАУ
есть такая учебная программа. (Ранее программа реализовывалась в
СПбАУ. Прим. ред.)
Я увлекаюсь довольно нишевыми вещами, и в этой магистратуре мне
удалось найти для себя много познавательного. Здесь каждый найдет
что-то по душе. Любите машинное обучение? Пожалуйста! Хотите просто
зарабатывать программированием на Java? Для этого здесь тоже все
есть, и в довольно интенсивной форме. Компьютерное зрение?
Алгоритмы на графах? Интерфейсы для Android-приложений? Сколько
хотите. Почти любые связанные с программированием интересы тут
поощряются и, скорее всего, вы найдете себе ментора. А если ваши
интересы настолько особенные, что связанных с ними специалистов тут
нет есть смысл подумать, а не стать ли первым соответствующим
экспертом-преподавателем в этой магистратуре. Некоторые предметы
начинали преподаваться именно так.
Дима Н.: Про программу я узнал еще в школе. Я получил
внушительный багаж знаний по специальности, а также, благодаря
практикам и стажировкам, устроился на замечательную работу.
Леша: Я хотел закрыть пробелы в знаниях и укрепить
базу, которую дали в бакалавриате. Искал какое-то хорошее место в
области программирования, на тот момент это была чуть ли не
единственная адекватная магистратура в Питере. Ожидания полностью
оправдались. Я до сих пор иногда переслушиваю некоторые курсы и
даже посещаю семинары.
Артем: В бакалавриате я учился на физическом факультете
СПбГУ, но со 2-3 курса увлекся программированием. Ближе к выпуску я
успел освоить основы разработки на C++ и поработать в одной
компании, но у меня было чувство, что я многого не знаю в отличие
от ребят, которые учились на программистских специальностях. Пришло
время задуматься о магистратуре. Внимательно изучив сайт программы
и поинтересовавшись у знакомых, я понял, что это именно то место,
где могут дать всю необходимую базу в короткий срок. Я пришел сюда
за знаниями и опытом и могу с уверенностью сказать, что получил и
то и другое в полном объеме.
Влад К.: Я заканчивал 4-й курс в своем любимом УдГУ и
раздумывал, чем заниматься дальше. Друг собрался поступать в
физическую магистратуру СПбАУ и позвал меня туда же на информатику.
Я справедливо возразил, что это невозможно, потому что туда
поступают только минимум желтенькие на Codeforces. Он не менее
справедливо возразил, что ну и пофиг. Я подумал месяцок и решил
отправить заявку. Съездил на собеседование, и меня взяли.
Моим главным стремлением было добавить к теоретическим знаниям
практические навыки. Мне это удалось, однако не совсем так, как я
ожидал: чаще приходилось учиться чему-то самостоятельно, но у меня
появилось понимание, как именно это делать. В итоге, как мне
кажется, я все равно отстаю в прикладном плане от многих моих
одногруппников. Так я понял, что мне гораздо более интересны
теоретические аспекты и что суровая разработка это не мое.
Какие впечатления у вас остались от обучения на
программе? Стоит ли что-то в ней изменить?
Влад Т.: С одной стороны, было довольно сложно,
особенно первый и второй семестр. С другой стороны крайне
увлекательно. Я нашел новых друзей настоящих единомышленников,
увлеченных своим делом, познакомился с новыми областями и просто
попробовал что-то новое.
Артем: Только положительные впечатления, особенно
запомнился первый семестр. Дело ведь даже не в том, что у студентов
данной программы огромное количество заданий и практики (хотя это
немаловажная черта программы), а в том, что они получают постоянный
фидбек от преподавателей, могут почти в любой момент получить ответ
на любой вопрос. В свое время для меня было шоком, что можно просто
взять и написать вопрос по теме (и не только) в чат курса с
преподавателем и максимально быстро получить ответ.
Саша: Впечатлений много! Наверное, большинство из них
связаны с первым курсом. Было очень сложно. Пятичасовой сон,
отмененные поездки за границу с друзьями, отсутствие свободного
времени типичные атрибуты жизни студента первого семестра нашей
магистратуры! Сейчас, конечно, понимаешь, что это было не зря. Но
повторять, если честно, не очень хочется. А вот что хотелось бы
повторить это второй семестр. Там ты уже научился балансировать
между учебой и личной жизнью. И прямо ощущаешь себя сверхразумом,
который успевает получать от жизни все и знания, и эмоции.
Иногда казалось, что учеба настолько сложная, потому что есть
какие-то организационные затыки: то преподаватель не выложил/не
проверил домашку вовремя, то сообщил о контрольной накануне ее
проведения. Такие моменты, естественно, хотелось исправить! Как мне
кажется, это одна из главных причин, почему так много ребят с моего
курса в итоге вызвались стать преподавателями в нашей
магистратуре.
Влад К.: За два года впечатления самые разнообразные,
но скажу, что такая же крутая учеба в моей жизни была до этого
только в ЛМШ. Здесь невероятная атмосфера и люди, после обычного
университета ты просто испытываешь эйфорию: а что, так можно
было?!.. Но конечно, ничто не бывает идеальным, и изменить можно
много чего как глобально, так и по каждому курсу в отдельности. Но
это больше вопрос для обсуждения с кураторами, мне кажется.
Рома: Сложность прохождения программы целиком зависит
от подготовленности студента. У меня были проблемы с теорией
(алгоритмы, дискретка), но при этом сравнительно большой
практический опыт программирования, что сильно упрощало прохождение
практических курсов (Bash, Python, C++, Java). Думаю, тем, у кого
не было предварительной подготовки ни в теории, ни в практике,
программа дается значительно труднее. Кажется, это важно учитывать
при составлении заданий, чтобы не создавать порочный круг я не могу
даже понять текущее задание (потому что этот материал совершенно
новый для меня) <-> я пропущу его и наверстаю потом.
В последнее время я все чаще вспоминаю курс Software Design, на
котором нас учили архитектуре, проектированию, шаблонам и так
далее. На мой взгляд, этот курс должен занимать чуть более важное
место в учебной программе, особенно с точки зрения практики.
Студенты должны не только прослушать, какие бывают архитектуры
приложений, но и попробовать их использовать, а в идеале ощутить
последствия их неправильного использования (например, за счет
работы с легаси-кодом). На текущей работе я осознаю, что самый
большой пробел в моих навыках именно в проектировании программ.
Возможно, я не одинок, и студентам не помешает более интенсивный
курс на эту тему.
Что, по-вашему, отличает эту программу от других
магистратур? Как вы пытаетесь реализовать эти отличия в
преподавании?
Дима Х.: На мой взгляд, самое ценное в этой
магистратуре то, что здесь многие преподают в качестве хобби, а
сами работают непосредственно с тем, чему учат. Сам я тоже работаю,
да и программирую для души, так что рассказываю студентам о том, с
чем сталкиваюсь постоянно, и стараюсь регулярно привязывать
происходящее на занятиях к тому, что можно ожидать при попытках
задействовать эти знания в реальности. В конце концов какие-то
теоретические изыски забудутся после экзамена, а вот реальный опыт,
если его удастся донести, осядет надолго.
Дима Н.: Я бы отметил углубленное изучение сложных тем,
отсутствие воды в материале. В этой магистратуре действительно учат
понимать, что за код ты пишешь, как он работает и зачем это нужно.
Я и сам стараюсь следовать этим принципам и, например, при рассказе
про какую-нибудь возможность языка не просто показываю, как ею
пользоваться, но и объясняю, как она работает под капотом, какие
ограничения и возможности имеет. Благодаря этому студенты гораздо
лучше понимают суть программ и языковых конструкций, а не просто
относятся к ним, как к какой-то магии.
Леша: Я думаю, основное отличие в соучастии и
компетентности. У нас есть специальные люди кураторы, которые
сопровождают студентов в процессе обучения: помогают решать
проблемы, готовят к защите диплома, по многу раз выслушивая
докладчиков, регулярно встречаются со студентами (сейчас через
Zoom), чтобы собрать обратную связь, и делают еще много всего, что
сильно упрощает жизнь студентам и преподавателям все могут
сосредоточиться на процессе обучения и не думать о лишнем.
Саша: Нашу программу отличает системность. Ты знаешь,
что каждую неделю почти по каждому предмету у тебя будет домашка.
Ее надо сделать вовремя, чтобы преподаватель проверил все к
следующей паре. Не сделал домашку вовремя недополучил баллы и
знания. И так домашка за домашкой! Такой подход хорош тем, что
знания с лекций подкрепляются достаточным количеством практического
материала и, соответственно, лучше усваиваются. По себе могу
сказать: если не потрогать материал с лекции руками, в голове он не
отложится.
Я как преподаватель стараюсь сделать так, чтобы студенты не
выбивались из ритма домашка-лекция-домашка и им ничего не мешало
эти домашки делать: проверяю работы в срок, объективно их оцениваю
и оперативно отвечаю на вопросы студентов по условиям задач.
Влад К.: В нашей магистратуре довольно молодые
преподаватели! Учиться здесь очень сложно, поэтому я стараюсь
создавать для студентов максимально комфортную обстановку, чтобы
они не чувствовали себя беспомощно и не боялись активно участвовать
в процессе. Я довольно много общаюсь с ребятами, пытаюсь им
помогать и направлять в нужную сторону, когда им это необходимо. Ну
и сам стиль общения у нас довольно неформальный, что тоже должно
помогать. Правда, до обмена мемами конкретно с этими ребятами еще
не дошло.
Одним из существенных отличий в нашей учебе мне видится
стремление преподавателей действительно научить студентов своему
предмету (абсурдно, конечно, что мало где так). Наверное, ребята
меня недолюбливают за то, что я часто придираюсь к их решениям и
прошу многие моменты подробно прописывать. Но эти придирки служат
вполне конкретной цели. Так, в курсе дискретной математики мне
важно, чтобы студенты научились грамотно использовать логические
рассуждения, не принимали на веру кажущиеся очевидными факты, а
выводили их из определений/аксиом.
В случае с алгоритмами ситуация даже более жизненная: на работе
нам почти всегда приходится трудиться в командах, поэтому при
решении задачи необходимо не просто придумать идею, а объяснить ее
товарищам и уметь доказать корректность. Если вы не сможете этого
сделать, то здоровый скепсис заставит ваших коллег просто отбросить
эту идею, даже если она на самом деле золотая. Поэтому я требую
доводить решения до состояния, когда мне точно все в нем понятно.
Если я его не понимаю даже зная правильное, другой человек тем
более ничего не поймет.
Рома: Мне кажется, что в этой программе принципиально
другой уровень отношений между студентами и преподавателем. Когда я
учился в бакалавриате, многие преподаватели были в каком-то смысле
недосягаемы для меня я никогда не рассчитывал оказаться с ними на
одном уровне. Между нами были строго деловые учебные отношения:
преподавателю нужно закрыть ведомость, студенту нужно закрыть
сессию.
В нашей магистратуре эта граница сильно размыта. Большинство
преподавателей работают в продакшене, т.е. когда они не учат
программировать, они сами программируют. Это значит, что студенты
через несколько лет могут оказаться с ними в одной команде. Это, на
мой взгляд, сильно повышает ставки с обеих сторон.
Студент понимает, что его учитель не просто теоретик, который за
всю жизнь не написал ни строчки кода, а реальный программист,
который пишет код каждый день и зарабатывает этим на жизнь. Поэтому
такого человека имеет смысл слушать. А преподаватель понимает, что
перед ним его потенциальные сокомандники. И если есть место, в
котором он может повысить базовую квалификацию
программистов-джуниоров, то оно здесь.
Поэтому я старался взаимодействовать со своими студентами так,
будто они мои сокомандники. Мы общались на ты, я не пытался
выстроить образ непогрешимого авторитета в их глазах, поскольку на
работе это скорее будет минусом, чем плюсом. Я просил их не
стесняться задавать вопросы, но при этом стараться как можно больше
искать самостоятельно ведь именно таких коллег я хотел бы иметь в
своей команде.
В общем, тот факт, что однажды твой студент может прийти к тебе
на стажировку или на собеседование и потом будет с тобой работать
(а может, и руководить тобой), заставляет взглянуть на ситуацию
иначе. Вряд ли преподаватель математики в вузе, натягивающий тройку
ленивому студенту, переживает, что этот студент через пару лет
вернется в университет и начнет плохо учить других студентов. А в
нашей магистратуре это вполне реалистичный сценарий. :)