План действий на первый год
Этот план превращает roadmap в последовательность действий. Он итеративный: каждый этап заканчивается работающим артефактом, а не «прочитанной главой». Сроки — ориентир: если месяц занял два — это нормально, если этап сжался до двух недель — проверь, не пропустил ли ты практику.
Сквозной pet-проект на весь год: SaaS-дашборд — приложение с авторизацией, таблицами, графиками и real-time уведомлениями. Он растёт вместе с тобой: сначала это фронтенд на моках, потом бэкенд с базой, в конце — контейнеры на VPS с CI/CD.
Месяц 1–2: Фундамент
Заголовок раздела «Месяц 1–2: Фундамент»Задача — стоячая уверенность в JavaScript и TypeScript. Без неё фреймворки превращаются в магию, а отладку — в кошмар.
- Установи и настрой Arch Linux (если ещё нет): i3wm/Hyprland или GNOME/KDE — по вкусу.
- Настрой окружение: zsh/fish, tmux, Neovim или VS Code, шрифты Nerd Font, темы. Список — в Приложении: инструментарий.
- Повтори Advanced JS: замыкания, прототипы, Event Loop, микро-/макрозадачи,
Promise/async/await, ES Modules. - Пройди TypeScript в strict-режиме: дженерики, утилитарные типы,
satisfies, брендированные типы. - Решай задачи на Type Challenges — уровень easy и medium.
Месяц 3–5: Frontend
Заголовок раздела «Месяц 3–5: Frontend»- Изучи React глубоко: хуки (включая
useTransitionиuseDeferredValue), кастомные хуки, Zustand, TanStack Query, React Hook Form + Zod. - Освой Next.js App Router: Server/Client Components, Data Fetching с кэшированием, Server Actions, SSG/SSR/ISR.
- Сверстай и запрограммируй сложный pet-проект — SaaS-дашборд: авторизация (пока на моках), таблицы с сортировкой и фильтрами, графики, real-time уведомления.
- Стилизация: Tailwind CSS + Shadcn UI, адаптивная вёрстка, базовый a11y (семантика, навигация с клавиатуры).
- Покрой проект тестами: Vitest + React Testing Library, Playwright для E2E-сценариев.
- Проверь Core Web Vitals проекта в Lighthouse.
Месяц 6–9: Backend
Заголовок раздела «Месяц 6–9: Backend»- Изучи Node.js глубоко: Event Loop (фазы libuv), Streams и backpressure,
worker_threads. - Освой NestJS: модули, провайдеры, DI, Guards, Interceptors, Pipes.
- Спроектируй REST API для дашборда: аутентификация (JWT access + refresh), ролевая модель, валидация через Zod на границе.
- PostgreSQL + Prisma: схема БД, миграции, индексы, транзакции. Подключи Redis для кэша и сессий.
- Документируй API через OpenAPI (Swagger или Scalar).
- Покрой бэкенд интеграционными тестами: Supertest + Testcontainers.
Месяц 10–12: DevOps и деплой
Заголовок раздела «Месяц 10–12: DevOps и деплой»- Упакуй приложение в Docker: многоступенчатые Dockerfile,
docker-compose.yml(App + PostgreSQL + Redis + Nginx). - Настрой CI/CD в GitHub Actions: lint → test → build → deploy.
- Арендуй VPS (Hetzner или DigitalOcean), настрой Ubuntu Server.
- Настрой Nginx reverse proxy + SSL через Let’s Encrypt.
- Добавь мониторинг: Prometheus + Grafana (Node Exporter, cAdvisor), алерты в Telegram.
- Проделай «боевое крещение»: убей контейнер на сервере и восстанови по пайплайну.
Год 2+: Углубление
Заголовок раздела «Год 2+: Углубление»- Переведи проект на Kubernetes: локальный кластер (minikube/kind) → облачный K8s, Helm-чарты, Ingress.
- Освой Terraform: инфраструктура VPS как код, state в remote backend.
- Изучи System Design: масштабирование, шардирование, очереди (Kafka/RabbitMQ), CAP-теорема. Масштабруй дашборд «на бумаге» до миллиона пользователей.
- Контрибьють в open source — начни с документации и маленьких багфиксов в инструментах, которыми пользуешься.
- Делись знаниями: блог, выступления, менторство. Обучая других, учишься сам.
Как пользоваться планом
Заголовок раздела «Как пользоваться планом»Отмечай чекбоксы в своей копии плана (или веди его как issue в репозитории pet-проекта). Раз в месяц — ретроспектива: что сделал, где застрял, что убираешь или добавляешь. План — инструмент, а не начальник.
Что почитать
Заголовок раздела «Что почитать»- roadmap.sh — сверяйся с картами Frontend, Backend и DevOps.
- Инструментарий разработчика на Arch Linux — софт для этапа «Фундамент».
- Литература и ресурсы — книги и первоисточники под каждый этап.