Курс "JavaScript/TypeScript/Интерфейсы" для программистов
Современная веб-разработка, начинаем с JavaScript, потом переходим на TypeScript. Изучаем интерфейсы и создание приложений с компонентной архитектурой, тестами и современной сборкой. Для тех, кто имеет опыт программирования на другом языке от 1 года.
Цели курса
Программа была полностью обновлена в январе 2026. Добавили работу с ИИ, TypeScript по большей части курса, новые темы.
- Дать глубокое знание языка JavaScript, соответствующее позиции среднего/продвинутого (middle+) разработчика.
- Дать практические навыки использования TypeScript и современных инструментов.
- Научиться делать браузерные интерфейсы.
- Подготовить к освоению фреймворка: React, Vue, Angular или другого, если ваша цель - создавать сложные приложения.
Предварительные требования
Опыт требуется не просто так: ряд продвинутых приёмов проектирования имеет смысл изучать, когда программирование само по себе давно знакомо. Кроме того, зная, что у вас уже есть опыт в программировании, мы можем сосредоточиться именно на особенностях JavaScript и, тем самым, успеть больше.
Как организовано обучение?
Курс идёт примерно 1.5 месяца.
До начала обучения: вводные материалы
За неделю до курса мы попросим вас посмотреть вводные материалы по основам JavaScript.
Мы также будем использовать систему Git/GitHub для обмена исходным кодом, так делает большинство проектов. Для тех, кому это в новинку - дадим крэш-курс и поможем разобраться.
Онлайн-занятия с преподавателем 2 раза в неделю
Занятие проходит в формате вебинара. Запись занятия доступна через 15 минут после окончания. Вы также сохраняете доступ к записям после окончания курса.
Домашние задания, обратная связь по ним
Ваши решения присылаете преподавателю, он проверяет качество кода, использование правильных приёмов проектирования, даёт обратную связь.
Чат
Между занятиями доступен групповой чат для общения и вопросов преподавателю.
Курсовой проект
Делаем курсовой проект: админку товаров для интернет-магазина. Большую часть кода для проекта пишете вы.
Результат
Разработчик на JavaScript хорошего среднего уровня ("middle").
Вы хорошо знаете JavaScript, свободно разрабатываете и отлаживаете программы на этом языке.
Вы умеете создавать интерфейсы без фреймворков.
У вас достаточно знаний для освоения фреймворков (React, Vue и других) и Node.js.
Сертификат
По окончанию курсов вы получаете сертификат в электронном виде на русском и английском языках.
Хотя сертификатам в нашей профессии обычно не придают значения. Главное - знания и умения, которые вы получите, если будете полноценно участвовать в курсе.
Программа по занятиям
Занятия проходят онлайн два раза в неделю.
Программа может быть дополнительно адаптирована под вопросы и темп обучения группы.
Собрание и инструменты разработки
Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.
Также рассмотрим инструменты разработки, использование AI-помощника.
Основы языка
К первому занятию вы посмотрели вводный видеокурс и уже знаете основы JavaScript. Вместе проходим по важным особенностям JavaScript, обращаем внимание на нюансы и особые возможности языка, убеждаемся в том, что понимаем их.
Разбираем:
- Примитивные типы данных (числа, строки, boolean, null, undefined).
- Методы примитивов.
- Преобразование типов.
- Объекты и их преобразования к примитивам.
- Спецификацию ECMAScript (как ее использовать).
Объекты, массивы и функции
Объекты, массивы и функции вам уже знакомы. На этом занятии мы изучаем их особенности в JavaScript.
- Замыкание и область видимости.
- Функции как значение, стрелочные функции.
- Объект как коллекция: передача по ссылке, итерация, копирование, флаги свойств.
- Set/Map: область использования, отличия от Object.
- Деструктуризация объектов и массивов.
Также мы посмотрим, как устроены автоматические тесты. Пока основы, чтобы были понятны тесты, приложенные к домашнему заданию. Позже мы изучим тестирование более глубоко.
TypeScript и объектно-ориентированное программирование.
Мы полагаем, что у вас уже есть опыт с ООП, поэтому сосредотачиваемся на особенностях JavaScript и изучим основы TypeScript.
- Настройка и использование TypeScript.
- Методы объектов, динамический контекст this.
- Потеря контекста, передача контекста в функцию и его привязка.
- Оператор new и экземпляры класса.
- Наследование и приватные поля.
- Введение в компонентную архитектуру веб-страницы.
Создание компонента "диаграмма" для проекта.
DOM-модель в деталях.
Изучаем DOM-модель документа и методы работы с ней. Применяем компонентный подход на основе классов для создания интерфейса.
- DOM - объектная модель документа, основные методы.
- JavaScript-модули, их особенности по сравнению с "обычными" скриптами.
- Способы подключения ресурсов на страницу и влияние на производительность страницы.
- Процесс загрузки страницы, порядок выполнения модулей и скриптов.
Создание компонент "всплывающая подсказка" и "календарь с выбором диапазона дат" для проекта.
События
Изучаем взаимодействие с посетителем при помощи событий:
- Установка обработчиков событий.
- Погружение и всплытие.
- Приём проектирования "делегирование" для работы с большим количеством элементов, упрощения сложных интерфейсов.
- Приём проектирования "поведение" для добавления функционала при помощи HTML-атрибутов.
- Архитектура, связывание компонентов при помощи своих событий.
- Drag'n'drop при помощи событий.
Создание компонент "всплывающая подсказка" и "календарь с выбором диапазона дат" для проекта.
Взаимодействие с сервером
Начинаем это занятие с обычных HTTP-форм, затем переходим к динамическим сетевым запросам:
- Создание и отправка форм, динамические формы, валидация.
- DOM-свойства и методы для форм.
- Fetch API, запросы на сервер
- POST-запросы на сервер, кодировка, обмен данными в формате JSON.
- События клавиатуры.
- Загрузка изображений.
Promise в деталях, более сложный асинхронный код
Изучаем продвинутые средства для работы с асинхронным кодом. Погружаемся во внутреннее устройство браузера.
- Событийный цикл: setTimeout(..., 0), макрозадачи, микрозадачи
- Promise и его продвинутые методы.
- Промисификация функций.
- Async/Await
- Обработка ошибок.
- Динамическая подгрузка модулей.
- AbortController для отмены запросов.
Тестирование JavaScript-приложений.
Вы много раз видели написанные нами тесты в предыдущих занятиях. Теперь у вас достаточно знаний, чтобы писать их самостоятельно.
- Использование “AI” для написания тестов.
- TDD/BDD-разработка.
- Виды тестирования: юнит-тестирование, интеграционное и E2E-тестирование.
- "Спаи" (spy), "моки" (mock) и "стабы" (stub). Применяем их в Vitest.
- Инструменты для E2E-тестирования: Playwright, Cypress.
Архитектура веб-приложений, роутинг.
Изучаем существующие архитектуры приложений: SPA и MPA. Создаем SPA-приложение, которое работает без перезагрузки страницы.
- History API в браузере.
- Архитектура: роутер для перехода по страницам.
- Теория SSR и SSG.
Сборка проекта с помощью Vite.
Ранее мы делали различные компоненты для проекта. Теперь соберём их вместе и подготовим к публикации на "боевом" сервере.
Используем самый современный сборщик Vite
- Конфигурация Vite, примеры сборки.
- Плагины, подключение и сборка CSS.
- Полифилы для работы сборки в старых браузерах.
Дополнительные темы, ответы на вопросы.
Разбор тем, не вошедших в основную программу курса.
- Дальнейшее развитие: куда двигаться со знаниями JavaScript и где искать информацию.
- Продвинутое применение AI: MCP и агенты.
- Обзор основных фреймворков и библиотек.
Отвечаем на дополнительные вопросы.
Курсовой проект
Админка товаров для магазина.
- Одностраничное приложение: роутинг, динамическая подгрузка страниц.
- Сортируемая таблица товаров с подгрузкой и без подгрузки.
- Редактирование, сохранение товаров.
- Слайдер, drag'n'drop-сортировка картинок и категорий.
- Ряд других графических компонент.
- Современная компонентная архитектура.
Преподаватель

Занимаюсь фронтенд-разработкой с 2017 года. Работал в Mail.ru и Яндекс над проектами Почта, Календарь, Задачи, Кинопоиск.
Также занимаюсь обучением стажеров/команд и проведением собеседований для уровней Senior и Middle-разработчик. Ранее вёл курс «Javascript/DOM/Интерфейсы для новичков», теперь провожу «для программистов».
Что говорят о курсе участники?
Мы занимаемся обучением с 2007 года. За это время у нас обучились тысячи разработчиков из разных стран и компаний.
Все отзывы являются честными. Мы не модерируем их.
Гарантия
Мы отвечаем за качество обучения и надеемся, что вам у нас понравится. Если нет - вернём деньги.
Для этого достаточно не позже окончания первой недели курса (или первой половины дня для интенсива) написать, что именно вас не устраивает, и тогда ваше участие будет прекращено, а вы получите деньги обратно.
Для компаний
У нас большой опыт работы с самыми разными компаниями: как маленькими, так и IT-гигантами.
- При записи нужно выбрать способ оплаты "счёт на компанию", и документы будут автоматически сгенерированы: договор, акт и счёт, есть лицензия.
- Для зарубежных компаний выдаём инвойс на английском языке.
Физическим лицам даём справку об оплате, если нужна компании для компенсации расходов и документы для налогового вычета: детали для РФ.
Запись на курс
Если остались вопросы – посмотрите в часто задаваемых, напишите на почту help@javascript.ru (ответ обычно в течение дня), а если срочно — задайте по телефону +7-903-5419441.



Комментарии
<code>, для нескольких строк кода — тег<pre>, если больше 10 строк — ссылку на песочницу (plnkr, JSBin, codepen…)