— Мы хотели заинтересовать людей, которые серьезнее погружены в сферу программирования. Не новичков, а специалистов с некоторым опытом. До нас этим никто не занимался, поэтому не у кого было подсмотреть, как делать.
Тогда я старался строить программу так, как будто хочу научить самого себя пять лет назад. Подход оправдал себя и стал основой методики OTUS. Мы всех преподавателей готовим так:

«Вспомните, каким вы были 5 лет назад. Вспомните, какой путь вы прошли. Помогите своим студентам пройти этот путь быстрее».

Именно так в курс по Java вошел большой, на 2 недели, блок по архитектуре, а также алгоритмы и многопоточность. Потому что в этих знаниях я нуждался на профессиональном пути, и в них 100% будут нуждаться те, кого мы собираемся учить. — Есть. Например, сложность растет к концу занятия. Преподаватель постепенно углубляется в тему так, что под конец разбирает частные ситуации и нюансы. Когда последние материалы поняли и обсуждают 2-3 человека в чате, а остальные сидят и пытаются осмыслить информацию — это, как говорится, не баг, а фича. Ее смысл в том, что скачок в росте происходит, когда есть за кем тянуться, когда знания бросают тебе вызов, а не подаются на блюдечке.

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

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

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

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

Было даже такое, что темы по запросам студентов становились частью программы. Например, как-то нас попросили рассказать про нормализацию данных в реляционных базах данных. Мы посмотрели и поняли, что действительно полезная для большинства информация, поэтому включили ее в курс.
 
В целом, когда речь идет о продвинутом уровне знаний, сообщество играет решающую роль. Даже самый экспертный эксперт всегда ограничен своим опытом, а значит, в стороне может остаться какой-то ценный нюанс. Очень хорошо, что сейчас у нас 6 преподавателей. Вместе нам проще делать программу более полной, разносторонней, распределять нагрузку и углубляться в каждую тему. — Перед юбилейным 15-м запуском мы существенно переработали курс. 

Первое изменение, которое повлияло на всю программу: с Maven мы перешли на более современный сборщик Gradle. Во-вторых, мы еще глубже погрузились в фреймворк Spring. Добавили вебинар и новое домашнее задание: разработать основной компонент Spring — контекст. Редактор