Я сделал бесплатный SQL-курс на Stepik. Оказалось, сам курс — это только 20% работы
Когда я решил попробовать себя в создании онлайн-курсов, мне казалось, что всё будет довольно просто: придумал тему, написал уроки, добавил задания, опубликовал — и люди начали учиться.
На практике всё оказалось иначе.
Курс можно сделать за несколько дней. А вот понять, кому он нужен, чем он отличается от конкурентов, почему ученик должен открыть именно его и почему он не бросит его на второй задаче — это уже совсем другая работа.
Расскажу, как я делал бесплатный курс «SQL с нуля: 40 задач для аналитика» на Stepik, какие ошибки поймал и что понял про создание образовательного продукта.
Сначала я просто сделал курс — и ничего не произошло
Я зарегистрировался на Stepik, начал разбираться в платформе, быстро накидал первый курс и опубликовал.
И потом смотрел на пустую статистику.
Курс есть. Учеников нет. Переходов нет. Движения нет.
В этот момент стало понятно: просто выложить курс недостаточно. На платформе уже тысячи курсов, и сам факт публикации ничего не гарантирует.
Нужно было понять рынок.
Я начал с аналитики Stepik
Решил не гадать, а посмотреть на данные. Написал скрипт, который через Stepik API собрал информацию по:
- 12 963 курсам;
- 529 каталогам;
- 390 тематическим тегам;
- 5 647 авторам;
- рейтингам, отзывам, темам и структурам курсов.
Я смотрел, какие темы живут долго, где есть спрос, где много конкурентов, а где конкуренция слабее. Сравнивал объёмы курсов, цены, отзывы, даты публикации, популярность авторов.
SQL быстро выделился как хорошая ниша для стартового курса.
Почему:
- SQL нужен аналитикам, тестировщикам, менеджерам, разработчикам;
- навык стабильный и не устаревает каждые полгода;
- задачи можно проверять автоматически;
- не нужно ставить сложное окружение;
- новичок быстро видит результат: написал запрос — получил таблицу.
Но просто сделать «ещё один курс по SQL» было бессмысленно. Нужно было понять, чем люди недовольны в существующих курсах.
Я пошёл читать отзывы конкурентов
Я изучал курсы по SQL, их структуру, рейтинги и комментарии учеников.
В негативных отзывах постоянно повторялись одни и те же проблемы:
- проверка не принимает правильные ответы;
- таблицы не совпадают с условиями;
- курс обещает практику, но внутри в основном тесты;
- задания выглядят заброшенными;
- ученик не понимает, почему решение не проходит;
- много теории, мало реального SQL.
А вот что хвалили:
- короткая теория → сразу задача;
- единая база на весь курс;
- понятные условия;
- автоматическая проверка;
- отсутствие установки;
- постепенное усложнение.
Так появилась идея курса:
40 практических задач на одной базе интернет-магазина, без установки, прямо в браузере.
Почему база интернет-магазина
Я не хотел делать набор случайных задач из разных миров: тут книги, там самолёты, потом сотрудники, потом студенты.
Для новичка это лишняя нагрузка. Он только понял, какие таблицы есть в одной предметной области, а его уже перекидывают в другую.
Поэтому я сделал одну сквозную базу интернет-магазина:
- покупатели;
- товары;
- категории;
- заказы;
- позиции заказов.
На ней можно пройти почти весь базовый SQL:
- SELECT;
- WHERE;
- ORDER BY;
- LIMIT;
- агрегаты;
- GROUP BY;
- JOIN;
- CASE WHEN;
- финальные аналитические запросы.
В итоге курс стал не просто набором упражнений, а маленьким тренажёром: ученик постепенно учится доставать данные из одной и той же базы.
Потом начались технические проблемы
Я думал, что основная сложность — придумать задания. Но Stepik быстро показал, что техническая часть тоже может съесть много времени.
Проблема 1. Таблицы исчезали
Добавляю вторую задачу — получаю ошибку:
textERROR 1146: Table 'stepik_XXXXXXXX.products' doesn't exist
Оказалось, что для каждой SQL-задачи нужно отдельно вставлять init SQL: создание таблиц и данные.
То есть если у тебя 40 задач, общий скрипт базы нужно вставить в каждую из них.
Проблема 2. Проверяющий код падал из-за форматов данных
Stepik требует проверяющий код на Python. Я сначала хотел сделать нормальную проверку результата, но столкнулся с тем, что в разных случаях данные приходили в разных форматах.
То словарь, то строка, то старый код продолжает кэшироваться.
В итоге для первой версии я упростил проверку: главное, чтобы запрос вернул непустой результат. Не идеально, зато стабильно.
Проблема 3. GROUP BY оказался строже, чем ожидалось
Stepik использует MySQL со строгим режимом ONLY_FULL_GROUP_BY.
Если поле есть в SELECT, но его нет в GROUP BY, запрос может упасть.
Пришлось переписывать решения так, чтобы они были корректны не только «по ощущениям», но и для строгого SQL-режима.
Проблема 4. Редактор превращал SQL в Markdown
Запись c.name редактор иногда воспринимал как домен и превращал в ссылку:
Markdown[c.name](http://c.name)
SQL, разумеется, ломался.
Проблема 5. Символ > превращался в >
Запрос:
SQLHAVING total_paid > 30000
мог превратиться в:
SQLHAVING total_paid > 30000
И это уже невалидный SQL.
После этого я стал проверять задания не только до сохранения, но и после.
Учебная база должна быть специально спроектирована
Ещё одна неожиданная проблема: в первой версии базы все покупатели имели заказы, а все товары продавались.
Звучит нормально, но тогда задачи вроде:
- найти клиентов без заказов;
- найти товары, которые никто не покупал;
возвращали пустой результат.
Формально это корректно. Но для новичка пустой результат выглядит как ошибка.
Пришлось специально добавить:
- одного клиента без заказов;
- один товар без продаж.
После этого стало понятно: учебная база — это не просто «реалистичные данные». Она должна быть спроектирована под учебные ситуации.
Ревью от Stepik тоже помогло
Когда отправил курс на ревью, получил развёрнутый комментарий от администратора платформы.
Нужно было:
- добавить схему базы в первый урок;
- убрать лишние элементы из тестов;
- поправить данные;
- исправить одну галочку в вопросе;
- доработать формулировки.
Это был полезный этап. Когда долго смотришь на свой курс, начинаешь не замечать очевидных проблем.
Что получилось
Сейчас курс опубликован на Stepik. Он бесплатный, рассчитан на начинающих и состоит из:
- 7 уроков;
- 40 SQL-задач;
- одной сквозной базы интернет-магазина;
- короткой теории перед заданиями;
- практики прямо в браузере.
Курс здесь: SQL с нуля: 40 задач для аналитика
Если вы учите SQL, делаете свои курсы или просто хотите посмотреть на формат — буду рад обратной связи.
Что я понял
Главный вывод такой:
сделать курс — это примерно 20% работы. Остальные 80% — аналитика, упаковка, конкуренты, техническая доводка и исправление мелочей.
Конкуренты — лучшие учителя. Их отзывы показывают, где люди реально страдают.
А технические детали могут убить очень много времени, если не знать о них заранее.
Если бы я начинал заново, я бы сначала сделал не уроки, а чек-лист:
- Изучить конкурентов и отзывы.
- Выбрать одну понятную аудиторию.
- Спроектировать базу под учебные задачи.
- Добавить пограничные случаи в данные.
- Проверить все SQL-запросы в том же режиме, что и платформа.
- Протестировать курс как ученик.
- Только потом думать про продвижение.
А ещё я понял, что бесплатный курс — это не «простая версия». Бесплатный курс тоже должен быть нормальным продуктом. Иначе он не приводит доверие, а наоборот его сжигает.
Буду рад комментариям: что бы вы добавили в такой SQL-курс для новичков?