Как запустить свои онлайн курсы по программированию

В этой статье я хотел бы поделиться своим опытом в создании онлайн курса rubyboost 4.0 Основная часть статьи будет о контенте, тем не менее дам несколько ВРЕДНЫХ советов

  1. Даже не пытайтесь найти готовую платформу для онлайн обучения. Вы же сам разработчик, что вам стоит потратить пару сотен часов на ее написание.
  2. Не нанимайте дизайнера, маркетолога, рекламщика, копирайтера и так далее. Это же Ваш курс и только вы сможете сделать все наилучшим образом. Потратьте еще сотню часов на изучение основ получения трафика
  3. Даже не вздумайте запускаться, пока все не будет сделано ИДЕАЛЬНО. Правда на это может уйти год или два, но оно того стоит
  4. Нет вообще никакого смысла брать бесплатную группу, чтобы проверить свой контент. Ведь это всего лишь то же программирование, просто с демонстрацией экрана

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

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

До запуска платных онлайн курсов я провел 3 бесплатных очных курса внутри компании для набора новых сотрудников. О каждом из них собираюсь рассказать, какой опыт из этого был извлечен и какие выводы я сделал

Rubyboost 1.0

К этому курсу я оказался совсем не готов. Во-первых, я неудачно выбрал ценность. Первой ценностью была подготовка к работе за месяц. Если другие курсы занимают от 3х до 6ти месяцев, то я составлял программу для подготовки за месяц.

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

  1. Преподаватель выдает какой-то материал, показывает примеры и практики
  2. Обучающийся так или иначе воспринимает выданный материал
  3. Преподаватель должен убедиться в том, что выданный материал был воспринят именно так и в полном объёме, как было задумано при разработке материала

Надо сказать, что я почти выполнил 3 часть, но лишь по привычке, а не потому что понимал, что это вообще надо делать. В программировании code review - единственный способ убедиться в том, что знания усвоены верно. Я же делал его лишь потому, что это стандартная практика в компании, не понимая всю его ценность. 

Только просмотр кода наставником позволит убедиться, что студент все знания воспринял верно и в полном объеме.

Rubyboost 2.0

К этому курсу поменялось довольно много всего. Изменил учебный пример, усложнил домашние задания, начал давать теоретические домашние задания с подвохом. Т.е на них можно и нужно найти ответ в интернете, но специально добавленные вопросы были маркером того, что студент не попробовал использовать знания на практике. А сам курс стал продолжительностью 2.5 месяца.

Так же был написан цикл статей ошибки новичков , чтобы сразу указывать как делать не надо. Результат был впечатляющий. Я как раз стал руководителем команды и мог наблюдать,  что большая часть этих ошибок усвоилась и не допускалась. Кроме того была разработана небольшая программа для обучения дебагингу.

Ну и конечно же code review. Теперь, понимая важность этого процесса, я составлял практические задачи так, чтобы сразу знать куда смотреть. Целью каждой задачи было научить какому-то решению или практике.

Rubyboost 3.0

Если 2 версия была разработана с нуля, то 3 основана на второй, тем не менее со значительными переработками. Произошло несколько событий, которые повлияли на курс. Самое важное событие, это то, что я стал руководить командой, и получил возможность непосредственно наблюдать, насколько знания из курса потом применяются на практике.

Кстати, спустя год я уволил лучшего выпускника rubyboost 2.0 Это дало еще одно важное понимание, что во многом успех зависит и от самого студента, и каков бы ни был курс, не все его успешно пройдут до конца. Главное не останавливаться в развитии, чтобы те, у кого к этому есть интерес и способности получали еще более качественный материал.

Следующие событие - я начал собеседовать кандидатов в Junior и среди них были выпускники других курсов и многие из них его не прошли. Еще одно доказательство того, что все во многом зависит и от студента. 

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

Так что же так кардинально поменялось в версии 3.0?

В первой версии я понял, что ценность "учим быстро" - откровенно неудачный выбор. Ценность второго куса - "я, как преподаватель работаю над тем, чтобы убедиться, что выданный материал был воспринят верно в полном объеме". 

Эта ценность никуда не ушла, все так же остается основной для меня. Но, увольнение выпускника моих же курсов и собеседование кандидатов, прошедших другие курсы привели меня на мысль о том, что нужно менять цели моего контента. Какая изначальная цель у большинства курсов и преподавателей? Какое их самое заветное желание?

Ответ: "Дать как можно больше знаний."

Плохо ли это? Нет!. Но, в случае Rails это возможно не так хорошо. ведь в чем ценность фреймворка Ruby on Rails. Это не серебряная пуля, это идеальное решение для быстрой разработки. Ни одна другая технология на данный момент не позволяет разрабатывать так же быстро и при этом не завести разработку в полный тупик (покойся с миром MeteorJS). Но, для того, чтобы эту самую скорость получить, нужно понимать откуда этот выигрыш берется. Он берется из опыта разработчика, который каждый раз не пишет низкоуровневый код, не принимает одни и те же решения, но понимает, что скрывает под собой "магия" Rails. Какие там внутри решения и как они работают?

Есть ли этот опыт у начинающего разработчика? Нет! Будет ли начинающий Rails разработчик разрабатывать решения быстрее, чем начинающий Django разработчик или начинающий PHP разработчик? Нет!  

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

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

Rubyboost 4.0 - Online

Так как курс только выходит онлайн после долгого оффлайн пути. еще нет интересного опыта, которым мог бы поделиться. Содержательно онлайн курс отличается от третьей версии лишь тем, что появились значимые события и решения в самом фреймворке и этот новый материал был добавлен в основную программу. Ничего из нее не было удалено, поэтому курс стал немного длиннее. Появились раздаточные материалы к каждому уроку - конспекты, чеклисты, слайды. Появилась своя онлайн платформа.


На этом все. Обновлю эту статью,  а может напишу новую уже когда получу опыт ведения онлайн курса. До скорых встреч в следующих статьях.

Комментарии