Дни 1–10 · JavaScript (основа + практика)
День 1 — Переменные, типы, преобразования
📚 Теория
- Переменные, типы, преобразования (learn.javascript.ru)
🧠 Практика
- 5 задач CodeWars (7 kyu)
🏗️ Проект
- Конвертер температуры (C↔F)
День 2 — Условия, циклы, функции
📚 Теория
- Условия, циклы, функции
🧠 Практика
- 6 задач CodeWars (7–6 kyu)
🏗️ Проект
- Калькулятор (JS‑only)
День 3 — Массивы и методы
📚 Теория
- Массивы, методы: map, filter, reduce
🧠 Практика
- 6 задач CodeWars (7–6 kyu), реализовать map/filter
🏗️ Проект
- ToDo (JS‑only)
День 4 — Объекты, методы, this
📚 Теория
- Объекты, методы, ключи, this
🧠 Практика
- 6 задач CodeWars (7–6 kyu)
🏗️ Проект
- ToDo с категориями
День 5 — Стрелочные функции, callbacks
📚 Теория
- Стрелочные функции, callbacks
🧠 Практика
- 7 задач CodeWars (7–6 kyu)
🏗️ Проект
- Список фильмов (массив + фильтрация)
День 6 — Замыкания, область видимости
📚 Теория
- Замыкания, область видимости
🧠 Практика
- CodeWars + собственные задачи на замыкания
🏗️ Проект
- Таймер (start/stop/reset)
День 7 — Повторение + шпаргалка
📚 Теория
- Повторить темы дней 1–6, составить шпаргалку
🧠 Практика
- 10 задач CodeWars (7–5 kyu)
🏗️ Проект
- Адаптивная карточка товара
День 8 — JSON, Date, Math
📚 Теория
- JSON, Date, Math
🧠 Практика
- Парсинг JSON, работа с датами
🏗️ Проект
- Простой календарь событий
День 9 — Работа с DOM
📚 Теория
- Поиск, изменение, события
🧠 Практика
- Мини‑задачи на DOM
🏗️ Проект
- Интерактивный список покупок
День 10 — Fetch API, async/await
📚 Теория
- Fetch API, основы async/await
🧠 Практика
- Запрос к API (JSONPlaceholder)
🏗️ Проект
- Загрузка и отображение пользователей
Дни 11–25 · React (основы + практика)
День 11 — Введение в React, JSX, компоненты
📚 Теория
- Что такое React, JSX, компоненты
🧠 Практика
- Создать проект на Vite + React
🏗️ Проект
- Визитка (компоненты с данными)
День 12 — Props и State
📚 Теория
- Props и State
🧠 Практика
- Передача данных между компонентами
🏗️ Проект
- Счётчик с кнопками
День 13 — События и формы
📚 Теория
- События, формы
🧠 Практика
- Контролируемые инпуты
🏗️ Проект
- Форма регистрации
День 14 — Списки и ключи
📚 Теория
- Рендеринг списков, ключи
🧠 Практика
- Добавление/удаление элементов
🏗️ Проект
- Список задач
День 15 — useEffect и загрузка данных
📚 Теория
- useEffect, побочные эффекты
🧠 Практика
- Загрузка данных из API в useEffect
🏗️ Проект
- Список пользователей с API
День 16 — Lifting State Up
📚 Теория
- Подъём состояния
🧠 Практика
- Общий стейт нескольких компонентов
🏗️ Проект
- Фильтрация списка товаров
День 17 — Формы: select, checkbox
📚 Теория
- Компоненты форм
🧠 Практика
- Фильтры по категории/цене
🏗️ Проект
- Каталог товаров
День 18 — Маршрутизация
📚 Теория
- react-router-dom
🧠 Практика
- 2–3 страницы с навигацией
🏗️ Проект
- SPA: главная, каталог, контакты
День 19 — Структура проекта
📚 Теория
- Организация кода, рефакторинг
🧠 Практика
- Рефакторинг компонентов
🏗️ Проект
- Улучшение SPA
День 20 — Повторение по React‑основам
📚 Теория
- Повторение тем 11–19
🧠 Практика
- CodeWars (7–6 kyu)
🏗️ Проект
- Мини‑приложение «Список книг»
День 21 — Стилизация компонентов
📚 Теория
- CSS Modules, styled‑components
🧠 Практика
- Оформление SPA
🏗️ Проект
- Доработка дизайна
День 22 — Формы и валидация
📚 Теория
- Работа с формами, валидация
🧠 Практика
- Валидация формы регистрации
🏗️ Проект
- Улучшенная форма регистрации
День 23 — Custom Hooks
📚 Теория
- Подход к кастомным хукам
🧠 Практика
- Написать свой хук
🏗️ Проект
- useLocalStorage hook
День 24 — Context API
📚 Теория
- Context API, глобальное состояние
🧠 Практика
- Интегрировать контекст
🏗️ Проект
- Тёмная/светлая тема
День 25 — Итог по React‑основам
📚 Теория
- Итоговый обзор
🧠 Практика
- CodeWars + мини‑проект
🏗️ Проект
- SPA «Список задач»
Дни 26–35 · Продвинутый React + портфолио
День 26 — React Router: динамические маршруты
📚 Теория
- Динамические маршруты
🏗️ Проект
- SPA с деталями товара
День 27 — Fetch/Axios детально
📚 Теория
- Работа с API, обработка ошибок
🏗️ Проект
- Пагинация данных
День 28 — Оптимизация: React.memo, useCallback
📚 Теория
- Оптимизация рендеринга
🏗️ Проект
- Оптимизация существующего приложения
День 29 — Архитектура проекта
📚 Теория
- Слои: components, hooks, utils
🏗️ Проект
- Разбивка на модули
День 30 — Проект «Список фильмов»
🏗️ Проект
- API, поиск, фильтры
День 31 — Дашборд и графики
📚 Теория
- Chart.js / Recharts
🏗️ Проект
- Дашборд с графиком и таблицей
День 32 — Формы и сервер
📚 Теория
- POST‑запросы, валидация
🏗️ Проект
- Форма обратной связи
День 33 — Деплой
📚 Теория
- Vercel / Netlify
🏗️ Проект
- Выложить все проекты
День 34 — Тестирование (Jest, RTL)
📚 Теория
- Юнит‑тесты компонентов
🏗️ Проект
- Тесты для ToDo
День 35 — Итог: проекты и описания
🏁 Итог
- 2–3 проекта в GitHub, оформить README
Дни 36–45 · Подготовка к собесам и поиск работы
День 36 — 50 вопросов по JS (часть 1)
📚 Теория
- Скомпилировать список вопросов
🧠 Практика
- Ответы вслух, заметки
День 37 — 50 вопросов по JS (часть 2)
🧠 Практика
- Задачи из собеседований
День 38 — React-вопросы (часть 1)
📚 Теория
- Ключевые темы React
🧠 Практика
- Ответы вслух
День 39 — React-вопросы (часть 2)
🧠 Практика
- Мини‑проекты на время
День 40 — Алгоритмы и структуры данных
📚 Теория
- База по алгоритмам
🧠 Практика
- 5 задач CodeWars (6–5 kyu)
День 41 — Резюме и GitHub
📄 Резюме
- Оформить проекты, профиль GitHub
День 42 — Площадки и отклики
🗂️ Поиск
- Хабр Карьера, GeekJob, телеграм‑каналы
День 43 — Mock‑интервью
🧪 Практика
- Пробные собеседования
День 44 — Разбор ошибок
🔧 Улучшение
- Закрыть пробелы, допилить проекты
День 45 — Финал: портфолио + 50+ откликов
🏁 Итог
- Портфолио + 50+ откликов