Пора на пару: как профессиональные айтишники преподают в Вышке
Что мотивирует людей совмещать работу в ИТ-индустрии и преподавание в университете? Об этом мы поговорили с разработчиками – приглашенными преподавателями факультета компьютерных наук НИУ ВШЭ. Они рассказали: когда и зачем начали преподавать, как готовятся к парам, что думают о своих студентах, а также о том, есть ли место импровизации во время занятий.
Владимир Фолунин, разработчик, Яндекс.Технологии
Я занимаюсь разработкой в Яндекс.Картах. Наша задача — сделать так, чтобы на карте быстро появлялась актуальная информация о различных организациях, а их поиск был удобным и безошибочным. Кроме того, я веду занятия на факультете компьютерных наук ВШЭ.
Почти десять лет назад, когда я учился на третьем курсе университета, руководство факультета предложило мне организовать университетский кружок по подготовке талантливых школьников к олимпиадам. После этого я вёл занятия для школьников в различных организациях дополнительного образования, работал в СПО (среднее профессиональное образование), а после окончания магистратуры несколько лет преподавал в родном университете.
После переезда в Москву мне предложили поработать со студентами ВШЭ. Дисциплины, которые я вёл тогда и веду сейчас — это программирование на языках C++ и Python, а также алгоритмы и структуры данных. Какого-то официального «обучения обучению» у меня не было, если не считать аспирантский курс психологии и педагогики. Чтобы быть в теме, я старался не пропускать релевантные онлайн-курсы от российских и иностранных университетов. Это давало мне возможность «познакомиться» с большим количеством преподавателей и подметить интересные практики — ведь каждый преподаватель транслирует то, как он учился сам, перенимая стиль у собственных учителей.
Подготовка к парам, безусловно, важна. Даже когда кажется, что материал занятия мне отлично знаком, я всё равно стараюсь составить план, в каком порядке и о чем я буду рассказывать, какие задачи буду использовать, чтобы продемонстрировать пользу от новых умений. Иногда перед занятием бывает полезно в экспресс-режиме, с нуля написать код и решить выбранные задачи: это позволяет избежать досадной ситуации, когда преподаватель упустил какую-то важную мелочь, и её поиски сбивают ритм всего занятия.
Как правило, среди современных студентов на направлениях, связанных с программированием, довольно много целеустремлённых и сознательных людей — уже в школьные годы они вложили в выбор специальности много времени и усилий. Это вызывает уважение.
С другой стороны, в университете эти студенты проходят серьёзную проверку на прочность — многие задания здесь объективно сложные. И каждый раз, когда ты видишь, что студент, который ошибался, у которого что-то не получилось, не опускает руки, а продолжает снова и снова биться с задачей, пока в конце концов не побеждает её — ты испытываешь восторг и радость, что ты причастен ко всей этой истории. Кроме того, для меня оказалось приятным открытием, что во многих аспектах студенты моего родного вуза ничем не уступают московским.
Никита Кравчук, разработчик машинного обучения в группе пользовательских моделей, Яндекс.Технологии
Я работаю в отделе машинного обучения в персональных сервисах Яндекса, где занимаюсь обучением и внедрением моделей. В частности, я занимался задачами по классификации писем в почте и борьбой со спамом.
Преподавание всегда было важной частью моей жизни. Я начал преподавать в 11 классе, принимая задачи у младших школьников на Малом мехмате. В студенческие годы я помогал младшекурсникам и репетиторствовал, поэтому мысль о преподавании всегда была у меня в голове. Сейчас я преподаю программирование и алгоритмы первокурсникам ФКН.
Подготовка к парам для меня — это чаще всего подбор задач и тем, о которых хочется рассказать студентам. Специально преподавать я не обучался — просто я прекрасно помню, как сам изучал этот материал и как я хотел бы, чтобы мне его рассказали. Я думаю, что так или иначе преподавание будет в моей жизни всегда. Это не то хобби, от которого можно так просто отказаться.
Кроме того, знание алгоритмов и тонкостей языков программирования в принципе полезно. Конечно, это не приведет к взрывному карьерному росту, единичное применение какого-то хитрого алгоритма не даст тебе повышение, как и отладка программы за пять минут вместо получаса, но всё вместе это делает тебя лучшим специалистом и повышает твои шансы на повышение.
Максим Попов, разработчик
Однокурсник из ШАД рассказал мне о возможности преподавать на ФКН: так я и стал учить студентов алгоритмам и C++. К парам я готовлюсь по-разному. Самый банальный вариант — это прорешать семинарские задачи и подумать над тем, как я буду объяснять их решения студентам: на чем надо будет сделать акцент, какую базу необходимо будет напомнить и т.д. Сложнее всего придумать интересный формат семинара. По моему опыту студенты не хотят слушать скучные лекции — им нравится делать что-то самим, писать вместе код и решать задачи, я же стараюсь лишь контролировать процесс. На семинарах по C++ я стараюсь геймифицировать тему. Мне нравится, когда можно запустить программу и управлять человечком на экране, который стреляет в монстров.
Преподавание для меня — это отдых после основной работы: с ним жить интереснее и веселее. Я начинал еще с решения контрольных на первом курсе, помогал однокурсникам готовиться к экзаменам. Затем я несколько лет работал репетитором у школьников и студентов. Сейчас я преподаю уже два года и не собираюсь останавливаться. Конечно, студенты все разные, но меня всегда поражало, какие в своем большинстве они активные и умные — еще и потому, что Вышка собирает у себя самые сильные кадры.
Максим Сабянин, senior compiler engineer, Intel
Моя работа связана с бэкендом и программной инженерией: сейчас я занимаюсь разработкой компилятора dpc++ для языка программирования C++. Когда я был студентом, я уже хотел преподавать — тогда я пользовался возможностью быть ассистентом и помогать другим. В частности, мне удавалось проводить очные групповые консультации для студентов, которые по формату отдаленно были похожи на пары, а сейчас я преподаю вещи, связанные с программированием: C++, алгоритмы, АКОС (архитектура компьютера и операционные системы).
Подготовка к парам может отличаться в зависимости от обстоятельств. Если у меня есть полное понимание, как нужно проходить материал, то я просто иду по плану. Если я чувствую неопределенность, то выписываю на листке пункты, которые обязательно должны быть затронуты в семинаре. Это могут быть задачи, темы, теоремы, факты, или какие-то узкие кейсы.
Помимо обязательной программы на семинаре может происходить импровизация. Обычно я иду по плану и с какой-то периодичностью прощупываю «пульс» аудитории. Если все легко и весело, то продвигаемся дальше. Если кто-то начал выключаться из процесса, или все перестало казаться очевидным, то это явный знак, что тут можно остановиться и дать всем время справиться с трудностями. Может быть, надо сделать шаг назад, повторить какие-то факты из лекции, потратить время на построение какого-то фундамента для последующих шагов в материале. Тем не менее, я постоянно сверяюсь со своим изначальным списком, чтобы не пропустить ничего важного.
Перед тем как начать преподавать, я попросил своего учителя по программированию дать мне совет, как готовиться к парам. Он сказал, что единственный способ — это пробовать, и я с ним согласен. Преподавание — это то место, где можно отдохнуть от работы и встряхнуть свои мозги, а подготовка к занятиям выводит знания на максимум. Даже в рабочих аспектах это помогает эффективнее решать задачи. Кроме того, у нас на факультете крутое студенческое сообщество, что для меня является одной из причин, зачем нужно «ввязываться» в преподавание.
Кравчук Никита Валерьевич
Попов Максим Павлович
Сабянин Максим Анатольевич