Основы Linux
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Курс по подписке
От «пишу, и оно работает» к «понимаю, почему работает»: современный JavaScript изнутри
Получить доступ к курсу
Курс по подписке · Обучение в своём темпе
О курсе
Курс для тех, кто уже знает основы JavaScript и хочет писать код так, как пишут профессиональные разработчики. Вы разберётесь, как функции запоминают своё окружение, как на самом деле устроены объекты и классы, почему this иногда «теряется», как делить программу на модули, строить ленивые последовательности генераторами и, главное, как работает асинхронный JavaScript: цикл событий, микро- и макрозадачи, Promise, async/await, параллельные запросы, повторы, таймауты и ограничение конкурентности.
Аудитория
Знаете основы JavaScript
Разберетесь, как работают замыкания, прототипы, this и классы, — и будете понимать, почему ваш код работает.
Пишете асинхронный код
Научитесь предсказывать порядок выполнения в цикле событий и писать надежные async-процессы с повторами и таймаутами.
Прошли курс основ JavaScript
Продолжите с функций высшего порядка, модулей ES и CommonJS, итераторов и генераторов.
Курс опирается на знания, отмеченные ниже как обязательные.
Нужно знать
Курс «Основы программирования на JavaScript» или равноценные знания — переменные, условия, циклы, функции, массивы, объекты, строки, методы массивов и try/catch.
Если этих знаний ещё нет — пройдите курсы по порядку:
Результат
использовать функции высшего порядка, замыкания и каррированные фабрики для переиспользуемого кода
уверенно работать с деструктуризацией, spread/rest, ?. и ??, копированием объектов
агрегировать данные с помощью reduce, Object.groupBy, Map и Set
организовывать код в модули ES и CommonJS
понимать прототипы, this, классы, наследование и приватные поля
строить иерархии собственных ошибок и цепочки причин
писать итераторы и генераторы, в том числе ленивые и бесконечные
предсказывать порядок выполнения асинхронного кода и писать надёжные async-процессы
Формат
35 практических заданий с автоматической проверкой на скрытых тестах и 12 тестов на понимание. Вы напишете конвейер преобразований текста, собственные map/filter/reduce, мемоизацию с LRU-кешем, нормализацию ответа API, глубокое слияние настроек, аналитику продаж и журналов, настоящие модули ES и CommonJS, банковский счёт с приватными полями, шину событий, иерархию собственных ошибок, ленивые генераторы, симулятор цикла событий, повторы с экспоненциальной задержкой, таймауты и пул с ограничением конкурентности. Три задания — отладка чужого кода. Финал — два проекта: конвейер обработки заказов и асинхронный планировщик задач с зависимостями.
21 урок с примерами
35+ заданий с автоматической проверкой
12 тестов для самопроверки
Онлайн на my.prog.academy, без установки программ
AI-помощник
На страницах курса, уроков и заданий есть кнопка «Спросить AI». Помощник знает материалы именно этого курса и урок, на котором вы сейчас, поэтому отвечает по теме и показывает, в каких уроках об этом говорится.
Не поняли урок с первого раза — попросите объяснить проще или привести ещё один пример.
Застряли — подскажет, с чего начать, и поможет найти ошибку в вашем решении. Готового решения не даёт.
Спросите, где объясняли понятие, — и получите ссылки на нужные уроки курса.
Уточняйте без повторов: помощник помнит разговор, а недавние разговоры курса сохраняются.
Входит в каждый тариф оплаченной подписки — Basic и Premium. В Premium лимиты использования AI-помощника выше — им можно пользоваться активнее. Это помощник в обучении, а не генератор готовых ответов: он объясняет и подсказывает, а задания вы решаете сами.
Программа
12 модулей, 35+ практических заданий с автоматической проверкой и 12 тестов. Откройте модуль, чтобы увидеть все темы.
Функции первого класса, колбэки, функции высшего порядка, фабрики функций, rest и spread, чистые функции.
Лексическое окружение, замыкания, приватное состояние, фабрики, once, memoize и типичная ловушка с var в цикле.
Деструктуризация объектов и массивов, spread/rest для данных, поверхностное и глубокое копирование, операторы ?. и ??.
reduce для сложных агрегаций, Object.groupBy, flatMap, Object.fromEntries, Map и Set.
Зачем нужны модули, ES-модули (import/export), CommonJS (require/module.exports), область видимости модуля и кеширование.
Цепочка прототипов, Object.create, собственные и унаследованные свойства, функции-конструкторы, правила this, call/apply/bind.
Синтаксис class, геттеры и сеттеры, статические члены, приватные поля, extends и super, полиморфизм, композиция.
Собственные классы ошибок, иерархии, instanceof в catch, повторное выбрасывание, finally и цепочки причин (cause).
Протокол итерации, Symbol.iterator, собственные итерируемые объекты, генераторы, ленивые и бесконечные последовательности.
Однопоточность, стек вызовов, цикл событий, микро- и макрозадачи, состояния Promise, then/catch/finally и цепочки.
async/await, try/catch с await, последовательное и параллельное выполнение, Promise.all/allSettled/race/any, таймауты, повторы и ограничение конкурентности.
Как объединить классы, ошибки, коллекции и асинхронность в надёжный процесс; два итоговых проекта.
Стек
Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.
Доступ
Заполните короткую форму на этой странице.
После заявки перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.
Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.
Контакт
Оставьте контакты — пришлём детали доступа к курсу «Продвинутый JavaScript: функции, объекты и асинхронность».
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Путь запроса от URL до готовой страницы: DNS, TCP, TLS, HTTP, кеш, cookies, API и защита веб-приложений.
Защита от современных атак для нетехнических специалистов: фишинг, пароли и MFA, инциденты, дипфейки и безопасная работа с ИИ.
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.