Дорожная карта
Путь от нуля до Middle JavaScript/TypeScript разработчика
Добро пожаловать
Этот курс проведет тебя от абсолютного нуля до уровня Middle разработчика. Программа покрывает более 90% знаний языка, которые требуются на собеседованиях и в реальной работе.
Структура курса:
- Модули 1-2 — Основы JavaScript
- Модули 3-4 — Работа с данными
- Модули 5-6 — Продвинутый JavaScript
- Модули 7-8 — TypeScript
Общее время: 60-80 часов
Перед началом
JavaScript: Основы
Модуль 1: Базовый синтаксис
Время: 8-10 часов
Фундамент программирования. Без этого невозможно двигаться дальше.
Переменные
let, const, var, область видимости, hoisting
Типы данных
Примитивы, объекты, typeof, преобразование типов
Операторы
Арифметические, сравнения, логические, приоритет
Условия
if/else, switch, тернарный оператор, truthy/falsy
Циклы
for, while, do...while, break, continue
Модуль 2: Функции
Время: 6-8 часов
Функции — основа любой программы. Здесь закладывается понимание работы кода.
Объявление функций
Function Declaration, Expression, стрелочные функции
Параметры и аргументы
Параметры по умолчанию, rest-параметры, arguments
Область видимости
Глобальная, локальная, блочная, лексическое окружение
Замыкания
Как функции запоминают переменные, практические примеры
Callbacks
Функции как аргументы, callback hell
JavaScript: Работа с данными
Модуль 3: Строки и числа
Время: 4-5 часов
Методы для работы с текстом и числами — используются каждый день.
Методы строк
split, slice, trim, replace, includes, startsWith, padStart
Шаблонные строки
Интерполяция, многострочные строки, tagged templates
Работа с числами
Math, parseInt, parseFloat, toFixed, Number.isNaN
Регулярные выражения
Синтаксис, флаги, match, replace, test, группы
Модуль 4: Массивы и объекты
Время: 10-12 часов
Критически важный модуль. Методы массивов — 50% повседневной работы.
Основы массивов
Создание, доступ, изменение, length, многомерные массивы
Методы мутации
push, pop, shift, unshift, splice, sort, reverse
Методы перебора
forEach, map, filter, reduce, find, some, every
Дополнительные методы
flat, flatMap, includes, indexOf, slice, concat
Основы объектов
Создание, доступ, изменение, in, delete, вложенные объекты
Методы объектов
Object.keys, values, entries, assign, freeze, fromEntries
Деструктуризация
Массивов, объектов, вложенная, значения по умолчанию
Spread и Rest
Копирование, объединение, rest-параметры
Set и Map
Уникальные значения, ключи любого типа, WeakSet, WeakMap
JavaScript: Продвинутый уровень
Модуль 5: Асинхронность
Время: 8-10 часов
Понимание асинхронности — ключевое отличие Middle от Junior.
Event Loop
Call Stack, Task Queue, Microtask Queue, как работает JS
Таймеры
setTimeout, setInterval, clearTimeout, requestAnimationFrame
Промисы
Создание, then, catch, finally, цепочки, состояния
Методы Promise
Promise.all, allSettled, race, any, обработка ошибок
Async/Await
Синтаксис, обработка ошибок, параллельное выполнение
Fetch API
HTTP-запросы, методы, заголовки, обработка ответов
Модуль 6: ООП и паттерны
Время: 10-12 часов
Организация кода в больших проектах и частые паттерны.
Контекст this
Правила определения, потеря контекста, bind, call, apply
Прототипы
Прототипное наследование, __proto__, prototype, цепочка
Классы
Синтаксис, конструктор, методы, статические члены, приватные поля
Наследование
extends, super, переопределение методов
Модули
import, export, default, named, динамический импорт
Обработка ошибок
try/catch/finally, типы ошибок, создание своих ошибок
Чистые функции
Иммутабельность, побочные эффекты, функциональный подход
Полезные паттерны
Debounce, throttle, memoization, currying, composition
TypeScript
Модуль 7: Основы TypeScript
Время: 6-8 часов
TypeScript — стандарт в современной разработке.
Введение
Что такое TypeScript, установка, настройка, компиляция
Базовые типы
string, number, boolean, null, undefined, any, unknown
Массивы и кортежи
Типизация массивов, кортежи, readonly
Объекты
Типизация объектов, опциональные свойства, readonly
Type и Interface
Создание типов, расширение, различия, когда что использовать
Функции
Типизация параметров, возвращаемых значений, перегрузки
Enums и Literal Types
Перечисления, литеральные типы, as const
Модуль 8: Продвинутый TypeScript
Время: 8-10 часов
Продвинутая типизация для сложных проектов.
Union и Intersection
Объединение типов, пересечение, discriminated unions
Generics
Обобщённые типы, constraints, дефолтные значения
Type Guards
typeof, instanceof, in, пользовательские guards, asserts
Utility Types
Partial, Required, Pick, Omit, Record, ReturnType
Mapped Types
Создание типов на основе других, модификаторы
Conditional Types
Условные типы, infer, распределение
Декораторы
Классов, методов, свойств, параметров (опционально)
Дополнительно
Бонус: Подготовка к собеседованию
Важно для трудоустройства
Частые вопросы и задачи на собеседованиях Middle разработчика.
Теоретические вопросы
Hoisting, TDZ, Event Loop, замыкания, this, прототипы
Практические задачи
Debounce, throttle, deep clone, flatten, curry
Задачи на массивы
Группировка, сортировка, поиск, трансформация
Задачи на TypeScript
Типизация сложных структур, дженерики, utility types
Что дальше
После прохождения курса ты готов к изучению:
Frontend
React, Vue, Next.js — создание веб-приложений
Backend
Node.js, Express, базы данных — серверная разработка
Mobile
React Native — мобильные приложения
Статистика покрытия
| Категория | Покрытие |
|---|---|
| Базовый синтаксис | 100% |
| Функции и замыкания | 100% |
| Работа с данными | 95% |
| Асинхронность | 95% |
| ООП | 90% |
| Обработка ошибок | 90% |
| TypeScript базовый | 100% |
| TypeScript продвинутый | 90% |
| Общее покрытие для Middle | >90% |
Советы
- Последовательность — проходи модули по порядку
- Практика — выполняй все задания, не подглядывая
- Повторение — возвращайся к сложным темам
- Эксперименты — пробуй менять код и смотри результат
- Проекты — после каждого модуля делай мини-проект
Готов? Начни с подготовки рабочей области.