JS Tower
JavaScript & TypeScript

Дорожная карта

Путь от нуля до 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


Что дальше

После прохождения курса ты готов к изучению:


Статистика покрытия

КатегорияПокрытие
Базовый синтаксис100%
Функции и замыкания100%
Работа с данными95%
Асинхронность95%
ООП90%
Обработка ошибок90%
TypeScript базовый100%
TypeScript продвинутый90%
Общее покрытие для Middle>90%

Советы

  1. Последовательность — проходи модули по порядку
  2. Практика — выполняй все задания, не подглядывая
  3. Повторение — возвращайся к сложным темам
  4. Эксперименты — пробуй менять код и смотри результат
  5. Проекты — после каждого модуля делай мини-проект

Готов? Начни с подготовки рабочей области.

On this page

Добро пожаловатьПеред началомJavaScript: ОсновыМодуль 1: Базовый синтаксисПеременныеТипы данныхОператорыУсловияЦиклыМодуль 2: ФункцииОбъявление функцийПараметры и аргументыОбласть видимостиЗамыканияCallbacksJavaScript: Работа с даннымиМодуль 3: Строки и числаМетоды строкШаблонные строкиРабота с числамиРегулярные выраженияМодуль 4: Массивы и объектыОсновы массивовМетоды мутацииМетоды перебораДополнительные методыОсновы объектовМетоды объектовДеструктуризацияSpread и RestSet и MapJavaScript: Продвинутый уровеньМодуль 5: АсинхронностьEvent LoopТаймерыПромисыМетоды PromiseAsync/AwaitFetch APIМодуль 6: ООП и паттерныКонтекст thisПрототипыКлассыНаследованиеМодулиОбработка ошибокЧистые функцииПолезные паттерныTypeScriptМодуль 7: Основы TypeScriptВведениеБазовые типыМассивы и кортежиОбъектыType и InterfaceФункцииEnums и Literal TypesМодуль 8: Продвинутый TypeScriptUnion и IntersectionGenericsType GuardsUtility TypesMapped TypesConditional TypesДекораторыДополнительноБонус: Подготовка к собеседованиюТеоретические вопросыПрактические задачиЗадачи на массивыЗадачи на TypeScriptЧто дальшеСтатистика покрытияСоветы