Прикладные курсы, проекты и работа в ведущих компаниях: как готовят программистов в Питерской Вышке
Санкт-Петербургская школа физико-математических и компьютерных наук готовит специалистов для IT-индустрии. Ее образовательные программы пользуются популярностью у абитуриентов со всей страны. Как новый центр подготовки айтишников возник в северной столице и почему сюда стоит поступать тем, кто хочет стать программистом, новостной службе портала рассказал декан школы Александр Омельченко.
Александр Владимирович, когда в Санкт-Петербургском кампусе ВШЭ появилась школа, где готовят айтишников? Как был сформирован ее коллектив?
В Питерскую Вышку мы пришли три года назад из академического университета, который сейчас носит имя нобелевского лауреата Жореса Ивановича Алферова («Алферовский университет» – прим. ред.). Я там был проректором по учебной работе, заведовал кафедрой математических и инновационных технологий. Вместе с JetBrains, Яндексом и другими известными компаниями мы в 2008 году разработали и открыли новую программу подготовки магистров, а в 2014-м – бакалавров.
Основной проблемой подготовки IT-специалистов на момент открытия магистратуры было невысокое качество выпускников образовательных программ в области информационных технологий. Компаниям, принимающим таких выпускников к себе на работу, приходилось тратить довольно большие средства и время на их дообучение. Поэтому мы изначально строили свою программу так, чтобы любой наш студент после ее окончания был полностью готов к работе в самой крутой компании. И у нас это успешно получалось – все наши выпускники сейчас работают по специальности в лучших IT-компаниях мира.
Затем мы поставили перед собой еще более амбициозную задачу – создать лучший в России, и даже в мире, бакалавриат, который давал бы студенту качественные знания и в области прикладной математики, и в области современного программирования; который бы готовил как практиков, так и людей, готовых заниматься наукой в области машинного обучения, Software Engineering, языков программирования, теоретической информатики. Важно, что в эту мечту поверили не только мы, но и абитуриенты – качество набора на эту бакалаврскую программу у нас было одним из лучших в стране, в бакалавриат охотно шли олимпиадники – например, первый набор в 2014 году состоял только из них – и обладатели высоких баллов ЕГЭ.
В 2018 году наша команда –и преподаватели, и студенты, перешла в Питерскую Вышку. Мы никого не потеряли, сохранили свои программы и стали развивать их дальше, основываясь на тех же принципах. Помимо подготовки IT-специалистов, год назад у нас появились бакалавриат и магистратура по физике, это отдельное направление, реализуемое совместно с ведущими академическими институтами.
В чем особенности подготовки айтишников в вашей школе?
Первый принцип подготовки – обучение только той математике, которая ориентирована на практику. Так сложилось, что еще с конца прошлого века программы подготовки айтишников в российских вузах фактически были программами математическими. Их авторы исходили из того, что математика – наука содержательная и красивая, что есть много преподавателей, умеющих о ней рассказывать, и нужно учить студентов в основном математике, а программированию они как-нибудь сами научатся. Я тоже занимаюсь математикой, читаю лекции по дискретной математике, но убежден, что этот подход устарел.
Современному программисту необходимы прежде всего прикладные навыки для дальнейшей карьеры. Если преподаватель математики не может объяснить, зачем тот или иной раздел его курса нужен программистам, то лучше его не читать
Второй принцип – обучение программированию с первого курса, причем не в теории, а на практике. Невозможно научить человека играть на рояле, читая лекции об игре на рояле. Ученик садится за рояль и начинает играть, а рядом находится педагог. Так и с программированием. Мы учим студентов программировать с самого начала. На первом же году обучения даем им годовой курс по C++, семестровый курс по Python и Unix, полуторагодовой курс по алгоритмам и структурам данных и так далее.
Третий принцип – участие студентов в проектной работе, организованной совместно с компаниями. На младших курсах мы разбиваем их на команды по несколько человек, назначаем каждой команде куратора – чаще всего программиста из IT-компании, и они вместе придумывают проект – например, написать игру или мобильное приложение. В течение весеннего семестра они этот проект делают, уделяя особое внимание качеству кода, его читаемости, наличию тестов. Основное отличие такого проекта от обычных домашних заданий по тому же курсу C++ состоит в том, что это не просто код, который можно написать за несколько часов. На выполнение проекта требуется тратить много времени в течение всего семестра. Только в этом случае у студента получается нечто содержательное, то, что можно потом показать тому же работодателю при приеме на работу или при собеседовании на стажировку.
На старших курсах проекты становятся более серьезными. В начале семестра мы вместе с компаниями-партнерами, вместе с нашими преподавателями, сотрудниками лабораторий и проектных центров собираем большой пул проектов и презентуем их нашим студентам. Те слушают, отмечают несколько понравившихся и пытаются пройти собеседование с представителями компаний. В результате студент получает индивидуальный научный проект, который он выполняет в течение семестра, а его научным руководителем является сотрудник университета или IT-компании. В конце семестра мы собираем студентов, преподавателей и представителей компаний и заслушиваем результаты. Наши ребята рассказывают о работе, получают оценки, а кроме того – навыки презентаций результатов своих научных работ. Главный же итог таких проектов состоит в том, что студенты получают бесценный опыт практической работы.
Важно подчеркнуть отличие такой проектной работы от простой подработки студента в IT-компании. В рамках проектной деятельности мы тщательно контролируем тематику проектов, обсуждаем с компаниями цели и задачи проектов, пытаемся сделать так, чтобы любой из них был содержательным и дополнял тот теоретический и практический материал, который они получают на наших занятиях.
В результате к окончанию бакалавриата каждый студент имеет 10-12 выполненных содержательных проектов, которые можно показать на собеседовании в любой компании: вот мой реальный опыт программирования, вот такой код я написал, вот здесь я прошел стажировку
Это дает нашим студентам широкие возможности выбора – идти на работу не туда, куда возьмут, а туда, куда им хочется, будь то Google, Яндекс или JetBrains. Каждый наш студент к окончанию бакалавриата имеет несколько оферов от крутых компаний – и российских, и зарубежных, со стартовой зарплатой от 120 тыс. рублей.
Если сильный школьник – дипломант олимпиад, обладатель высоких баллов ЕГЭ, выбирает между разными вузами и факультетами в сфере IT, чем для него привлекательна учеба у вас?
Наша бакалаврская программа «Прикладная математика и информатика» – одна из немногих в стране, где готовят именно программистов высокого класса. Мы учим писать качественный код, заниматься практическим машинным обучением, промышленным программированием, разработкой новых языков программирования. И этим мы отличаемся от других качественных IT-программ. В других ведущих вузах страны – МФТИ, ФКН ВШЭ, СПбГУ, программы чуть менее практические и чуть больше ориентированы на теорию.
Есть, конечно же, и другие отличия. Так, от факультета компьютерных наук московской Вышки наша школа отличается относительно небольшим набором – на бюджетные места в бакалавриат в этом году мы набираем всего 60 человек. У нас нет разделения на базовый и продвинутый потоки – мы готовим студентов по единой программе, качество которой не уступает качеству подготовке на продвинутом потоке программы «Прикладная математика и информатика» ФКН. А главное наше содержательное отличие – опять-таки акцент на практическую подготовку программистов, проектную деятельность. При этом мы, по сути, смешиваем лучшие элементы сразу двух замечательных московских программ, реализуемых на ФКН – «Прикладной математики и информатики» и «Программной инженерии».
Несколько слов о магистратуре, пожалуйста. В чем здесь особенности вашего подхода?
Основные принципы те же, что и в бакалавриате. Но есть и отличия. Так, мы различаем три вида магистратуры – внешнюю, для выпускников бакалавриатов других вузов, внутреннюю, для наших выпускников и корпоративную – магистратуру, которую мы делаем вместе с компанией для удовлетворения потребностей данной компании в высококвалифицированных кадрах.
Во внешней магистратуре основная наша задача – выравнять студентов, каждый из которых имеет разный уровень подготовки, и в очень короткие сроки сделать из них профессионалов в той или иной области. Характерный пример такой магистерской программы – «Машинное обучение и анализ данных», на нее мы берем выпускников разных вузов, как правило, не обладающих какими-то глубокими знаниями в области машинного обучения, но готовых интенсивно учиться и умеющих соображать, и за два года делаем из них сильных специалистов в области современного машинного обучения.
Во внутренней магистратуре «Программирование и анализ данных», как правило, учатся выпускники нашего бакалавриата. Их уровень обычно более высокий по сравнению с выпускником бакалавриата среднестатистического вуза, поэтому им можно не читать такое количество курсов, как на внешней магистратуре. Вместо этого мы даем им более глубокие спецкурсы, занимаемся проектной деятельностью, научной работой. «Прокачавшись» в этой магистратуре, наши студенты после ее окончания могут претендовать на более высокую позицию или на более высокую зарплату в IT-компании.
В молодежной среде есть точка зрения, что программист может успешно работать и без высшего образования. Вы ее опровергаете?
Смотря о какой работе идет речь. Можно сразу после школы пойти делать сайты и зарабатывать больше, чем будет получать студент, поступивший в вуз. Только через несколько лет студент получит образование, и у него будет хорошая зарплата с перспективой роста, а тот, кто отказался от получения образования, дальше расти вряд ли сможет и будет всю оставшуюся жизнь получать копейки.
Есть еще один фактор. К сожалению, мы не можем предсказать развитие IT-отрасли даже на ближайшие годы, поэтому до конца не понятно, чем будут заниматься наши выпускники. Десять лет назад никто не знал про машинное обучение, а сейчас оно у всех на слуху. В этой ситуации университет формирует прежде всего умение учиться, дает фундаментальную подготовку и одновременно профессиональную гибкость, которая позволяет быстро менять направления работы, перестраиваться без особых трудозатрат.
Наш выпускник может перестроиться за месяц, а человеку без образования, привыкшему работать в одной узкой области, придется учиться с нуля
Можно учиться на программиста в техникумах и потом программировать микроконтроллеры, получать за это рыночную зарплату, но с дипломом о среднем профессиональном образовании ты не станешь топовым специалистом в топовой компании. Потому что у тебя нет фундамента, нет широты взгляда, и, образно говоря, над тобой стеклянный потолок, который невозможно пробить, не повысив свой уровень образования.
Примерно похожая ситуация с теми, кто поступает в вуз, а потом устраивается в одну из программистских контор и перестает учиться, вспоминая о том, что он учится в вузе, только в период сессии. На нашей программе это вряд ли получится – такие студенты у нас сразу же вылетают. Однако в других вузах это достаточно распространенная практика. При этом очень часто приходится слышать от таких людей, что, мол, работа – лучший учитель, а сидеть в аудиториях за партой – просто потеря времени. Однако это ужасная ошибка. В университете у тебя есть уникальная возможность получить огромный объем знаний в очень короткие сроки, а сделать это самостоятельно практически нереально. И если ты не используешь эту возможность, ты существенным образом потеряешь в качестве своей подготовки и со временем проиграешь тем, кто потратил 4-6 лет на содержательную учебу.
Важно, что это касается не только бакалавриата и магистратуры. Недавно мы открыли аспирантуру и были удивлены, насколько большой конкурс там случился. Как оказалось, только имея степень PhD, ты можешь претендовать на позиции исследователей в топовых российских и зарубежных компаниях. Зарплаты на этих позициях в 2-3 раза выше, чем у обычных разработчиков. Кроме того, задачи, которые там решают, на порядок интереснее тех задач, которые решают обычные программисты.
Какие новые программы Санкт-Петербургская школа физико-математических и компьютерных наук предложит абитуриентам в этом году?
Помимо нашей основной программы «Прикладная математика и информатика», мы в этом году открываем новую бакалаврскую программу «Анализ данных в финансах», где будем учить настоящей финансовой математике. Ее академический руководитель Леонид Альбертович Меркин был вице-президентом Goldman Sachs, внедрял там методы электронных торгов еще в 1990-х годах. Эта новая программа столь же насыщенна, как и основная. При этом мы делаем ее междисциплинарной, на стыке нескольких наук -- математики, Computer Science и финтеха. Выпускники этой программы могут уходить как в IT-компании, так и в инвестиционные банки и хедж-фонды. Многие наши выпускники и раньше уходили в хедж-фонды, однако там им не хватало знаний в области финтеха. Данная программа нацелена на то, чтобы эту проблему решить. Зарплаты в хедж-фондах в несколько раз выше, чем в лучших IT-компаниях, и там в настоящее время огромный дефицит кадров.
В этом году открывается магистерская программа «Вычислительная биология и биоинформатика». Она корпоративная, реализуется вместе с фармацевтической компанией Biocad, рассчитана на физиков, математиков и программистов, которые хотят решать интересные и сложные задачи из области современной биоинформатики
Кроме того, мы сейчас ведем переговоры с компанией «Газпромнефть» о создании магистерской программы «Искусственный интеллект в промышленности». Она будет сетевой, реализуемой вместе с региональными вузами, и это перспектива ближайших лет.
Каких абитуриентов вы ждете в этом году?
Конечно, ждем лучших абитуриентов с высокими баллами ЕГЭ, дипломами олимпиад и очень хотим, чтобы среди них было много талантливых ребят из регионов. И мы очень хотим, чтобы к нам пришли ребята, заинтересованные в реальной программистской подготовке, содержательной проектной деятельности.
Чтобы показать особенности своих образовательных программ, мы недавно совместно с компанией JetBrains провели школу для старшеклассников, посвященную проектной работе в области практического программирования и анализа данных. На первом этапе, который проходил полностью онлайн, собрали порядка 500 человек из самых разных регионов нашей страны, читали им лекции, проводили практические занятия. По результатам первого этапа отобрали 50 лучших участников и пригласили их в Питер за наш счет на очную часть школы. Там мы разделили их на команды, подобрали вместе с ними содержательный проект либо в области Software Engineering, либо в области Machine Learning, либо в области биоинформатики. Каждой команде был назначен куратор из числа наших аспирантов, студентов старших курсов или сотрудников компании JetBrains, который ставил им задачу, следил за ходом проекта и помогал в процессе его реализации. В конце мы провели уже традиционную для нас презентацию проектов, наградили победителей и остальных участников. Так что настоящая проектная деятельность в IT для участников этой школы началась еще до поступления в вуз.
Наша школа расположена в северной столице, в тени московской Вышки, не каждому абитуриенту удается ее разглядеть, хотя по качеству образования в сфере IT она входит в число общероссийских лидеров. Мы очень хотим, чтобы про нас узнали как можно больше абитуриентов из самых разных регионов страны. Приходите к нам, мы сможем вас научить и подготовить к работе в лучших IT-компаниях страны и мира.
Омельченко Александр Владимирович