Про мои курсы в Бауманке

Мотивация

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

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

Поиск

Проводить курсы я решил там же, где учился сам — в МГТУ им. Баумана. ВУЗ удобно расположен, гарантирует минимальный уровень студентов, а в буфетах — вкусные булки.

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

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

Подготовка

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

Всё, кроме планирования курса — легко. Создавать контент — сложно. При оценке этого этапа я ошибся не в несколько раз, я ошибся на порядок.

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

Контент — король.

Первые лекции

На первой лекции собралась куча народу — пришли все, кто записался, 81 человек. Аудитория рассчитана на 30, так что пришлось сильно потесниться.

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

На каждую следующую лекцию приходило на 10 человек меньше, чем на предыдущую, пока студенты не поместились в аудиторию на 30 человек. Такой расклад превышал ожидания — я рассчитывал, что к середине курса останется не больше десятка человек.

Народ воспринимал занятия хорошо — на лекции слушал, когда надо — задавал вопросы, на семинарах — программировал, дома — корпел над ДЗ. Круто.

Проверка ДЗ

Одна из корневых идей, исходя из которых я формировал курс — необходимость большого количества практики, чтобы научиться программировать. Поэтому задания были огромными: ориентировался я на 15 часов еженедельной работы, а на деле средняя задача у среднего студента занимала 20.

Это много: это время можно потратить на работу в Макдональдсе и заработать на подержанный Айфон, поработать над курсовой или посмотреть почти три сезона «Как я встретил вашу маму». Когда я учился в Бауманке, я тратил меньше на домашние задания по всем предметам.

Поэтому то, что первое задание сдало 26 человек, стало для меня сюрпризом — я рассчитывал, что отважных будет не больше десятка.

В качестве фидбека я делал ревью работы: комментировал коммиты в Гитлабе или код, который студенты присылали на почту. Формально проверять работы тестами смысла не имело: фидбек «у вас ничего не работает» — плохой фидбек. Поэтому на средний ревью одного задания уходило 40 минут — просмотреть код, описать ошибки, снабдить аргументацией и ссылками на материал по теме.

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

Проверять задания — сложно. Это требует много времени и терпения.

Контрольные мероприятия

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

Изначально предполагалось, что контрольное мероприятие будет классической контрольной работой — студенты соберутся, будут что-то программировать и показывать мне. Кто справился — тот молодец.

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

Победила идея о том, что остаться должны те, кто что-то делает — сдал хотя бы три недельных задания из пяти. «Сдал» значит «сделал» — код формально выполняет требования задачи.

По дороге студенты получили опыт работы с трекерами задач: недостатки работ я оформлял в виде задачи, а проверял после закрытия задачи.

Приглашённые лекторы

Другая корневая идея, лежащая в основе курса — рассказывать про что-то должен тот, кто хлебнул этого чего-то сполна. Я — о разработке на Питоне, тимлид — о командной работе, технический директор, который отсобеседовал больше сотни программистов в 2015м — о собеседованиях.

Чтобы всё получилось, нужно подобрать темы, составить план, вставить в график, найти лекторов и согласовать даты. Потом — устроить репетицию лекции, совместно поработать над материалом и слайдами, а накануне лекции — не забыть оформить пропуск.

Почти все приглашённые лекторы — мои коллеги. Это классно: я уверен в том, что они знают, о чём говорят, мог напомнить о промежуточном сроке, а в случае чего — перенести лекцию.

Получилось отлично: профессионализма и страсти много, булщита — мало.

Студенты

Я думал, что те студенты, что записались на курс — достаточно сознательные для взрослой самостоятельной работы. Те, кто прошёл первую часть курса уж точно: их никто не заставлял, а они провели полтора десятка часов на лекциях и сотню — дома, за ДЗ. Поэтому я не рассчитывал на проблемы с командной работой: народ взрослый, проекты интересные, задачи понятные, сроки разумные.

Ага, конечно.

Всегда найдётся, например, «ну я не успел»-парень. Если он один на команду — его считают аутсайдером и через пару недель выгоняют. Если двое — вся команда ничего не делает.

Ещё есть «ну я подумал, что так правильно»-парни. Они знают, что тесты нужны, но решили их не писать. Слышали советы и аргументацию, но решили им не следовать. В таких командах приходится всё переделывать. Видимого прогресса нет, мотивация страдает, команда умирает.

Бывают и другие типы, это — те, что бросались мне в глаза. Как грамотно возвращать таких ребят на правильный путь и не давать топить команды я ещё не знаю, но обязательно разберусь.

Несмотря на сознательность и мотивацию студентов, идея «бросить в море и посмотреть, выплывут ли» не работет — не выплывают. Преподавателю нужно больше вмешиваться в работу команды, помогать решать конфликты и ещё больше объяснять.

Что дальше

А дальше — работа над ошибками и новые образовательные проекты. Составляющие хорошего курса: практика, мотивация, интерес. Смешать их в правильной пропорции — и будет круто.

Если у вас есть идеи — пишите мне. Это не стандартный call to action в конце статьи, мне правда интересно узнать чужое мнение.

Заглавная картинка – с сайта Бауманки.

← к статьям