← Все кейсы
Проект в разработке — ссылка появится скоро

Своя платформа для учеников с ютуб

Платформа онлайн-обучения
программированию

Я сам прошел путь в разработку и увидел проблему в IT-образовании: много теории, мало практики, к реальной работе это не готовит. Предложил свое решение и собрал учеников в потоки. Построил под это платформу

Платформа онлайн-обучения программированию

Как стартовал

На ютуб я снимал ролики про программирование и делился своим опытом. Я помогал новичкам разобраться в темах, которые сам когда-то проходил тяжело. Люди смотрели эти ролики и начали писать мне с вопросами.

Сообщение в личку: просьба взять в обучение по программированиюДругой человек, другой чат: еще одна просьба взять в обучение

Это писали разные люди в разных чатах. Такие сообщения приходили мне постоянно.

Сначала я отвечал каждому в личке. У разных людей вопросы были одни и те же, и я объяснял одно и то же по много раз. Это занимало много времени. Я собрал людей на групповой созвон и разобрал тему сразу для всех.

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

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

Сначала я вел все это в гугл-доке и в телеграме. Когда учеников стало около десяти, так работать уже не получалось. Я перестал понимать, кто на каком уроке и кому я уже ответил. Я решил сделать свою платформу и написал ее сам.

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

Какую проблему решает

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

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

Интерфейс

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

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

marlindev.ru
Главная ученика: список курсов, ближайшее занятие, лента сообщений преподавателя
Главная ученика — первый экран после входа.

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

marlindev.ru/courses/php
Страница курса «Программирование на PHP»: модули, уроки, прогресс
Страница курса: модули, уроки, статус сдачи.

Расписание. Ученик знал день созвона, но забывал, что к нему сдать. Сроки жили отдельно от занятий. Я свел занятия и дедлайны на одну шкалу, перенос занятия делается в один клик.

marlindev.ru/schedule
Расписание занятий со сроками сдачи и кнопкой переноса
Расписание: занятия и дедлайны на одной шкале.

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

Обсуждение урока на платформе: вопрос ученика и разбор преподавателя с кодом 1234
1. Привязано к урокуОбсуждение внутри конкретного урока, не в общем чате.
2. Вопрос ученикаСпрашивает прямо по теме урока.
3. Разбор с кодомОтвечаю там же, с примерами кода.
4. Видит вся группаОтвет остается в уроке — получает и следующий поток.
  • 1 Привязано к урокуОбсуждение внутри конкретного урока, не в общем чате.
  • 2 Вопрос ученикаСпрашивает прямо по теме урока.
  • 3 Разбор с кодомОтвечаю там же, с примерами кода.
  • 4 Видит вся группаОтвет остается в уроке — получает и следующий поток.
Обсуждение прямо в уроке: вопрос, код и разбор в одном месте.

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

marlindev.ru/profile
Профиль ученика: статистика, дни подряд, достижения, настройки
Профиль: статистика, серия дней, достижения.

Со стороны администратора

Ученик видит свой путь. Мне же нужно вести весь поток сразу. Поэтому есть вторая половина платформы — для меня.

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

Дашборд администратора платформы 1234
1. Состояние потокаРаботы на проверке, активность за 2 дня, средний прогресс. Видно за пару секунд.
2. Очередь проверкиКто сдал и ждет ответа. Раньше терялось в чате.
3. Ближайшие занятияЧто и когда разбираем, с кем. Расписание не в голове.
4. Кто давно не заходилКто пропал. Сразу видно, к кому подойти.
  • 1 Состояние потокаРаботы на проверке, активность за 2 дня, средний прогресс. Видно за пару секунд.
  • 2 Очередь проверкиКто сдал и ждет ответа. Раньше терялось в чате.
  • 3 Ближайшие занятияЧто и когда разбираем, с кем. Расписание не в голове.
  • 4 Кто давно не заходилКто пропал. Сразу видно, к кому подойти.
Дашборд админки: очередь проверки и состояние потока.

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

Список учеников потока: прогресс по курсам, срок сдачи, активность и статус проверки по каждому ученику
Ученики потока: прогресс, сроки, активность одной таблицей.

Результаты после обучения

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

Ученик: «Рахим, привет! Вчера на работу приняли. Ровно три месяца с начала курса. Компания mediaten, аутсорс. Тестовое делал на yii2, твой ютуб-плейлист выручил. Трудоустройство прошло успешно благодаря тебе»Переписка: ученик прошел собеседование, взяли на стажировку. «Спасибо тебе большое за такой классный курс»Ученик Кирилл: устроился в европейскую компанию, на собеседовании было много вопросов, теперь сам менторит новичков. Благодарность за обучениеУченик Владимир: SOLID был на каждом уроке, проектирование и паттерны. Получил оффер после первого собеседования, зарплата выросла. «После курса обратной дороги нет»AL: пробовал интерактивные курсы и книги — все разжевано, навыка решать самому нет. «Курс Marlin'а — натуральный курс молодого бойца: делаешь все сам, ментор дает задание как работодатель»Мага Хасанов: «Благодарность за готовый продукт для начинающих. Отбил половину стоимости курса, выполняя курсовые на заказ. Рекомендую, жалею, что не записался раньше»
Ученик: «Через три-четыре месяца устроился Symfony-разработчиком, проект на Кипре. Создаю API, оптимизирую запросы. Спасибо, Рахим, помог открыть дверь в этот мир, безмерно благодарен»Ученик: «Заработал первые деньги в новой профессии. Появилась уверенность, спасибо». Работа на бирже и фрилансеRasul Guseinov: несколько лет писал на PHP с чувством, что делает неправильно. После курса понял, какой код писал раньше. «Подход обучения уникальный, всем рекомендую»Максим Соловьев: пришел полным нулем, самоучкой не понимал, куда двигаться. На курсе практика как в реальном проекте, помогают в группе. «Если хочешь научиться писать код, а не переписывать — бери»Oleg Khayrullin: курс закрывает лакуну с практикой, были проблемы с ООП — знал как, но не понимал почему. «Все последовательно и структурировано, искал именно такой курс и нашел»Ильдар Сибгатулин: «До уроков думал, что не могу нормально кодить. Учит на примерах и реальной верстке. Сейчас спокойно пишу код и понимаю его. Всем советую»Vladimir: «Структурированный курс, уроки по 10 минут, без воды. Показывает эволюцию от процедурного подхода к ООП. Рахим уделяет время и отвечает на вопросы»Ученик: «Очень рад, что выбрал Рахима для изучения Laravel. Получил глубокие знания. Рекомендую квалифицированного и терпеливого наставника»

Стек и результат

Бэкенд я написал на Laravel. На нем держится вся логика: курсы, потоки, доступы и проверка домашних заданий. Данные лежат в PostgreSQL. Там связаны ученики, группы, курсы, уроки и прогресс. Фронтенд я сделал на React и взял готовые компоненты из shadcn/ui. Приложение и окружение собрал в Docker, на ноутбуке и на сервере оно одинаковое. Деплой идет через CI/CD. Я делаю пуш, дальше проходит прогон и выкат.

Через платформу прошло 90 учеников. Я вел три курса одним путем: PHP с нуля, ООП и Laravel. Обучение шло живыми потоками в группах. Весь учет я держал в одной системе: прогресс, доступы, домашние задания и вопросы. Освободилось время на само обучение.