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

Массовые онлайн-курсы появились в 2008 году и сразу столкнулись с отсевом

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

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

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

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

Основы проектирования обучения заложены задолго до интернета

Методика построения учебных материалов развивалась десятилетиями. Её основы сформировались ещё в середине прошлого века.

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

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

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

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

Анализ      -> кто учится, что уже знает, какая задача перед ним стоит
Проектирование -> что именно освоит, в каком порядке, как проверим
Разработка  -> тексты, задания, примеры, проверочные вопросы
Внедрение   -> запуск, поддержка, расписание
Оценка      -> что получилось, что переделать

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

Модуль строится вокруг одной решаемой задачи

Теперь о практической стороне. Модуль это единица курса, которую человек проходит за один подход.

Первый принцип: один модуль решает одну задачу. Не "изучить раздел целиком", а "настроить отправку уведомлений". Конкретность помогает понять, когда цель достигнута.

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

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

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

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

const module = {
  id: "notifications",
  goal: "Настроить отправку уведомлений о заказе",
  minutes: 30,
  steps: [
    "Разобрать минимальный пример отправки",
    "Добавить шаблон сообщения",
    "Обработать ошибку доставки",
    "Проверить результат на тестовом адресе",
  ],
  check: "Письмо приходит на заданный адрес",
};

Такое описание модуля занимает десять строк, а заменяет страницу методических рассуждений. По нему сразу видно, что человек получит и как это проверить.

Порядок модулей определяется зависимостями, а не удобством автора

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

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

MODULES = {
    "введение": [],
    "структура_проекта": ["введение"],
    "запросы_к_данным": ["структура_проекта"],
    "обработка_ошибок": ["запросы_к_данным"],
    "тестирование": ["запросы_к_данным"],
    "развёртывание": ["тестирование", "обработка_ошибок"],
}

def order(modules):
    resolved, result = set(), []
    while len(result) < len(modules):
        ready = sorted(
            name for name, needs in modules.items()
            if name not in resolved and set(needs) <= resolved
        )
        if not ready:
            raise ValueError("Циклическая зависимость в модулях")
        result.extend(ready)
        resolved.update(ready)
    return result

print(order(MODULES))

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

Третий приём это точки входа. Слушатель с опытом не должен проходить основы. Короткая проверка в начале позволяет пропустить знакомое.

Четвёртый приём это необязательные углубления. Дополнительные материалы выносятся отдельно и не блокируют движение по основному пути.

Практика с обратной связью усваивается лучше объяснений

Третий принцип касается того, из чего состоит модуль. Лекция полезна для общего знакомства, но навык формируется действием.

Первое: соотношение смещено в сторону практики. На каждые десять минут объяснения должно приходиться не меньше десяти минут самостоятельной работы.

Второе: задание имеет проверяемый результат. Не "попробуйте применить", а "сделайте так, чтобы получилось вот это".

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

Четвёртое: ошибка объясняется. Сообщение "неверно" бесполезно. Нужно указать, где именно расхождение и почему оно возникло.

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

def check_solution(given, expected):
    if given == expected:
        return {"ok": True, "message": "Верно"}
    if len(given) != len(expected):
        return {
            "ok": False,
            "message": "Длина расходится: получено " + str(len(given))
                       + ", ожидалось " + str(len(expected)),
        }
    for index, (left, right) in enumerate(zip(given, expected)):
        if left != right:
            return {
                "ok": False,
                "message": "Расхождение на позиции " + str(index + 1)
                           + ": получено " + repr(left)
                           + ", ожидалось " + repr(right),
            }
    return {"ok": False, "message": "Проверьте условие задачи"}

Такой разбор ошибки полезнее оценки. Человек понимает, где именно промахнулся, и может исправить.

Повторение через интервалы закрепляет пройденное

Четвёртый принцип касается памяти. Материал, пройденный один раз, забывается по известной закономерности: кривая забывания была описана ещё в восьмидесятые годы девятнадцатого века.

Решение называется интервальным повторением. Новые и трудные вопросы показываются чаще, старые и лёгкие реже. Если человек отвечает верно, интервал увеличивается; если ошибается, вопрос возвращается в начало.

INTERVALS = [1, 3, 7, 16, 35, 90]

def schedule(card, correct):
    if correct:
        card["step"] = min(card.get("step", 0) + 1, len(INTERVALS) - 1)
    else:
        card["step"] = 0
    card["next_in_days"] = INTERVALS[card["step"]]
    return card

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

Второй приём это повторение в начале занятия. Разбор одного вопроса из прошлого модуля напоминает материал и связывает его с новым.

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

Мотивация поддерживается видимым прогрессом и понятной целью

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

Первое: цель курса формулируется через результат. Не "изучить язык", а "сделать сайт с формой заявки".

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

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

Четвёртое: сложность поднимается постепенно. Резкий скачок в середине курса отсекает половину слушателей.

Пятое: обратная связь есть возможность задать вопрос. Даже при автоматической проверке нужен канал, куда написать при затруднении.

Шестое: финал понятен. Человек с самого начала знает, чем закончится курс и что он получит.

Проверка качества материала проводится до запуска

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

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

Вторая проверка это время. Замеряется, сколько занимает каждый модуль. Оценка автора почти всегда занижена в полтора-два раза.

Третья проверка это техника. Все ссылки работают, задания проверяются, видео воспроизводится на мобильном устройстве.

Четвёртая проверка это полнота. Каждая заявленная цель подкреплена материалом и проверочным заданием. Обратное тоже важно: материал без цели стоит убрать.

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

Отдельные приёмы удержания работают в связке

Разрозненные советы редко дают эффект. Сила появляется, когда они поддерживают друг друга.

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

Второй приём это дедлайн с гибкостью. Жёсткое расписание отпугивает, полное его отсутствие расслабляет. Разумный вариант это мягкий срок с напоминанием за день.

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

Четвёртый приём это публичный результат. Возможность показать сделанное коллегам или знакомым добавляет мотивации.

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

Шестой приём это короткие напоминания о пройденном. Одно предложение о том, что уже освоено, поддерживает ощущение движения.

Седьмой приём это честная длительность. Указание реального времени на модуль предотвращает разочарование, когда он занимает вдвое больше обещанного.

Что делать после первого потока

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

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

Второй показатель это время прохождения. Расхождение с планом указывает на недооценённую сложность.

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

Четвёртый показатель это вопросы в поддержку. Повторяющиеся вопросы указывают на пробел в материале.

Пятый показатель это отзывы о конкретных модулях. Общая оценка курса бесполезна, а оценка по разделам показывает, что переделывать.

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

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