🎯 Мой первый продукт - расширенная версия роадмапа

Текущее состояние роадмапа

  • ТЗ проектов, статьи по теории, ссылки на избранные ресурсы для каждой необходимой для проектов технологии
  • Лайвкодинг стримы для проектов 1-2, лекции по теории
  • 270+ реализаций, написанных студентами, 75+ открытых ревью (сделанных мною, и активными членами сообщества)
  • Чеклисты типовых проблем для проектов 1-3
  • Адаптация ТЗ проектов 1-6 под Python разработку

Какие проблемы пытаюсь решить, студенческие и свои?

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

Доведение проектов до конца

Работу над ошибками и рефакторинг объективно делает меньшинство. Всё лежит на виду (лучшие реализации, коллекция ревью), но велик соблазн дописать проект, опционально пропустить тесты и деплой, и идти дальше.

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

Помощь в преодолении трудностей

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


Моя главная проблема, которую я хочу решить - больше делегировать и искать варианты монетизации, не завязанные на продажу моего времени как консультации. Подробно и открыто разбирал этот вопрос при подведении итогов 2023 года - https://t.me/zhukovsd_it_chat/1/52898.

Мой подход в развитии контента и сообщества “Польза → репутация → отдача”. Считаю, что в вопросах роадмапа я приближаюсь к третьему этапу этой цепочки, 50%+ активных подписчиков, которые пишут проекты, не против материально поддержать мой контент, если бы поддержка что-то давала сверх того, что доступно бесплатно - https://t.me/zhukovsd_it_chat/1/52341.

Что внутри

Для каждого проекта:

  • Эталонная реализация по шагам
  • Лекция по каждому шагу, включая деплой (20-30 минут на лекцию)
  • Лекции по главным теоретическим идеям (пример - ООП/MVC), которые необходимы для проекта (40-60 минут на лекцию)
  • Разбор типовых ошибок (пример такого списка) - демонстрация в одной из студенческих реализаций, объяснение проблемы и того, как стоило сделать, на примере эталонной реализации (40-60 минут)

Пример разбивки по шагам для проекта “обменник валют”

  1. Проект на Java 11+Maven, Jakarta Servlets, Tomcat 10 + hello world servlet
  2. Интеграция sqlite - файл БД в ресурсах, скрипты для инициализации БД и тестовых данных. DAO класс для работы с валютами
  3. Сервлеты для работы с валютами - получение списка валют, валюты по коду, вставка валюты. Обработка ошибок. Ручные тесты через http запросы
  4. DAO класс для курсов, сервлеты для работы с курсами, включая PATCH запрос. Ручные тесты
  5. Сервис с бизнес логикой и сервлет для операции обмена валюты
  6. Интеграция тестового фронтенда
  7. Деплой

Лекции по теории для проекта “обменник валют”

  • Backend - TCP, DNS, сокеты, http, Java EE, Application Servers (Tomcat, Spring Embedded Server)
  • REST - зачем нужен, правила, нейминг, коды ответов, обработка ошибок. Альтернативы, примеры
  • MVC - архитектурный паттерн, частный случай слоистой архитектуры. Какую проблему решает слоистая архитектура. MVC(S), DTO, обработка ошибок. Структура проектов

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

Как это решает проблемы, озвученные выше:

  • Дописав проект, можно посмотреть лекцию с разбором типовых ошибок для рефакторинга и самопроверки
  • Столкнувшись со сложностью, остается найти тот шаг разработки проекта, в котором раскрыта эта тема, и посмотреть код и лекцию

Почему не бесплатно? Баланс между открытой и расширенной версией

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

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

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

  • Чеклисты типовых проблем для всех проектов (сейчас они есть для проектов 1-3)
  • Ключевые лекции (как недавно записанная лекция по MVC. План - одна такая публичная лекция на каждый проект)
  • Больше лайвкодинга
  • Всё остальное, описанное выше, пойдет в расширенную версию. Чем успешнее она будет, тем больше это будет питать развитие и открытой версии

На какой стадии продукт и как буду релизить, цена

Активная работа началась этой весной:

  • Написаны все шаги эталонной реализации проекта “обменник валют”, в работе “симуляция”
  • В работе запись лекций под проект “обменник валют”

Релизить и продавать планирую попроектно. Целевая цена за весь расширенный роадмап, в которую я в данный момент мечу - 300-350$, за каждый проект по отдельности - ~50$. Возможно, закончив работу над всеми проектами, упакую их в единый продукт, сохранив или убрав индивидуальные проекты. Далеко идущий план - перевод на английский.

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