Вы верстаете и пишете на React: компоненты рисуются, запросы уходят, продукт работает. А дальше начинаются вопросы, на которые нет ответа в документации библиотеки: почему страница дёргается, где держать состояние, как не уронить всё одной ошибкой рендера, почему сборка весит три мегабайта и что делать, когда просят «ещё и мобильное приложение».
Проблема почти никогда не в способностях. Знания собирались по частям: туториал по хукам, статья про flexbox, чей-то конфиг Vite. Эта программа складывает их в один маршрут: язык, браузер и CSS, React и данные, качество и выпуск, мобильное приложение из того же кода.
Земля под профессией поехала: написание кода перестало быть узким местом, узким стало понять, что именно нужно сделать, и убедиться, что сделано верно. Почему так и куда ведёт дорога — в общей статье «Зачем этот курс» и в «Кто такой продукт-инженер»; здесь дальше только про программу «Frontend · React + TS».
Что внутри программы
Блоки идут по порядку, внутри блока фазы тоже упорядочены; следующая опирается на предыдущие.
- язык — Основы языка: JavaScript и TypeScript, Глубокий JavaScript.
- браузер и стили — JavaScript и браузер, Глубокий CSS.
- React — Фундамент, Данные и состояние, Навигация и вид.
- качество — Качество и производительность.
- мобильное — Мобильное приложение из веба.
- процесс — Методологии и процесс разработки.
Если нужен только кусок пути, ориентируйтесь по блокам: откройте список фаз и посмотрите, где вам неуютно, обычно это видно с первого взгляда.
Что вы будете уметь в конце
- Понимать, что делает браузер. Цикл событий, критический путь рендера, события DOM и каскад: откуда берётся дёрганье и белый экран и как их чинить, а не прятать.
- Строить приложение на React осознанно. Где живёт состояние, когда нужен стор, как грузить данные через кеш запросов, как ловить ошибки по зонам и не ронять экран целиком.
- Проектировать структуру проекта, которая переживёт рост: раскладка по фичам, Feature-Sliced Design, границы, которые стережёт линтер.
- Доводить до пользователей: доступность, производительность, тесты через Testing Library, окружение без секретов в бандле.
- Собирать мобильное приложение из веба: PWA, Capacitor, push и офлайн, и честно понимать, где заканчивается WebView.
Как устроено прохождение
Фазы идут по порядку, и каждая опирается на предыдущие: прыгать вперёд обычно больно. Внутри фазы статьи помечены: ★ обязательно — скелет, без которого следующие статьи будут непонятны; дополнительно — глубина по желанию; костёр «что пощупать» — у статьи есть рабочий код в практикуме, и раздел с тем же названием ведёт в репозиторий, а «Сделаем сами» — в ветку с красными тестами.
После каждой фазы — тест. Не определения, а описанная ситуация и выбор, что в ней произойдёт. Порог один для всех фаз — 80% верных ответов, попытки не ограничены: кабинет показывает, какие вопросы не сошлись, вы возвращаетесь к статьям и сдаёте снова.
Тренажёры — практика: доска системного дизайна, алгоритмы на JavaScript, разбор инцидентов. На больших темах есть разбор: билет с задачами, которые надо показать руками и объяснить вслух.
Рядом ИИ-ментор и куратор. Ментору можно задать вопрос по абзацу статьи или попросить подсказку по задаче; расход считается в шишках, дневном запасе обращений. Куратор — живой человек, к нему уходит то, с чем модель не справилась.
Статьи открыты всем и читаются без входа. Тесты, тренажёры, разборы и ИИ-ментор живут в кабинете: вход через Яндекс ID даёт три дня полного доступа без карты, дальше подписка, условия на странице программ. Подробно про устройство программы, значки и помощь — в общей статье «Зачем этот курс».
Демо-пример: marketplace-system на GitHub
Веб-клиент маркетплейса из каталога web/ репозитория практикума: витрина, корзина, оформление с Idempotency-Key и экран заказа через BFF, воронка покупки с расчётом конверсии. Приложение нарочно маленькое, на React, TypeScript и Vite, с тестами на Vitest и Testing Library, где сеть подменена заглушкой.
Пять команд от клона до первого задания; дальше каждая статья со значком костра ведёт в конкретный файл этого репозитория.
Что понадобится: Node.js 22 или новее. Для тестов и разработки с заглушками бэкенд не нужен; для живого стенда рядом поднимают сервисы из того же репозитория (нужны JDK 21 и Docker).
git clone https://github.com/remodov/marketplace-system.git
cd marketplace-system/web
npm install
npm test # vitest и Testing Library, сеть подменена, браузер не нужен
npm run dev # витрина на http://localhost:5173, адрес BFF задаёт VITE_BFF_URL
# живой стенд из того же репозитория, если хочется настоящих данных:
cd .. && docker compose -f infra/compose.yaml up -d && ./gradlew buildAll
Задание фронтенд-шага практикума — ветка step-14-web-and-funnel: условие в web/TASK.md, три теста воронки красные, остальное зелёное; step-14-web-and-funnel-solution рядом — эталон. Тот же web/ живёт и в Go-версии практикума с Vite-прокси к сервисам на Go.
Репозиторий: https://github.com/remodov/marketplace-system.
Сколько времени это займёт
| Программа | Статей и фаз | Только чтение | С тестами, тренажёрами и практикумом |
|---|---|---|---|
| Frontend · React + TS | 69 статей, 10 фаз | около 6 часов | 25–30 часов |
При часе в день по будням полный путь занимает 6 недель, только обязательные статьи с тестами — 3–4 недели; при двух часах в день сроки делятся примерно пополам. Чистое чтение посчитано по объёму текста, к нему добавлены тесты фаз, тренажёры и практикум.
Как проходить, чтобы дошло до конца
- Не читайте подряд без практики. После фазы про базы данных откройте тренажёр и напишите десяток запросов: прочитанное без применения выветривается за неделю.
- Не гонитесь за полнотой. Пройдите обязательные статьи, за остальными вернётесь, когда упрётесь в тему на работе.
- Идите регулярно, а не рывками. Час в день лучше восьми часов в воскресенье.
- Возвращайтесь к пройденному. Архитектура заиграет иначе после того, как вы увидите, как устроены данные.
Коротко
- Программа «Frontend · React + TS»: 69 статей, 10 фаз, блоки идут по порядку, и каждая фаза опирается на предыдущие.
- После фазы тест с порогом 80% и неограниченными попытками; тренажёры дают практику, ИИ-ментор и куратор отвечают по ходу.
- Демо-пример живёт на GitHub: marketplace-system, пять команд от клона до первого задания, ветки
step-NN-*с красными тестами и-solutionс эталоном. - Полный путь при часе в день — 6 недель, обязательный скелет — 3–4 недели.
- Доходят те, кто практикуется по ходу, не гонится за полнотой и идёт регулярно.
Что почитать дальше
- Программа «Frontend · React + TS» — список фаз, с которого стоит начать выбирать.
- Зачем этот курс — общая статья: куда меняется профессия, значки у статей, помощь и кабинет.
- Кто такой продукт-инженер — куда ведёт этот путь в итоге.