Интенсивный онлайн‑курс
Профессиональный JavaScript,
уровень 2

18 февраля — 21 апреля 2019

Профессиональный JavaScript, уровень 2

HTML Academy — стандарт в обучении фронтендеров. Наша задача — готовить полноценных и востребованных специалистов, готовых работать в веб-индустрии.

Как проходит онлайн‑курс

Начальный уровень: средний

Курс предназначен для тех, кто прошёл «Профессиональный JavaScript, уровень 1», или для разработчиков, желающих поднять свои навыки.

Даты интенсива

Интенсив длится девять недель, c 18 февраля по 21 апреля. Каждую неделю проходят две живые лекции, после которых надо выполнять практические задания и работать с наставником.
Программа интенсива

Живые лекции

Живые лекции проходят по понедельникам и четвергам с 19:00 до 21:00 по московскому времени. Преподаватель рассказывает лекцию, а студенты задают вопросы.

Записи лекций

Каждая живая лекция записывается, а записи публикуются на следующий день. Поэтому интенсив можно проходить из любой точки Земли.

Практика

После лекций нужно выполнять практические задания — проходить интерактивные курсы и программировать части учебных проектов. В этом вам будет помогать ваш наставник.

Личный наставник

Персональный наставник помогает выполнять задания и проверяет результаты работы. Это ваш личный преподаватель, который помогает вам весь курс и делится секретами мастерства. Расписание работы с наставником вы определяете сами.

Защита проекта

Интенсив завершается защитой проекта, где ваш проект проверяется в соответствии с профессиональными критериями качества.

Что даёт курс

После прохождения курса вы будете уверенно создавать современные веб-приложения, а также сможете попробовать себя в качестве наставника на наших курсах.

Информация о средних зарплатах получена на основе исследования SuperJob.

Программа

Внимание! Программа может изменяться и дополняться.

Раздел 1

ECMAScript

Рассмотрим схему работы на интенсиве и узнаем, какие инструменты нам понадобятся. Познакомимся с последними версиями стандартом ECMAScript, разберём какие проблемы он решает и чем отличается от ECMAScript 5.

Организационные вопросы.

  • Обзор проектов.
  • Схема работы на интенсиве.

Новые возможности ECMAScript.

  • Область видимости.
  • Операторы let и const.
  • Строки-шаблоны.
  • Стрелочные функции.
  • Параметры функций по умолчанию.
  • Оператор spread и rest.
  • Деструктуризация.
Практика

Практика

  • Создание репозитория, форк, клонирование.
  • Знакомство с проектом.
Раздел 2

Модули и инфраструктура проектов

Познакомимся с понятием модульности и рассмотрим, как устроены модули в последних версиях стандарта ECMAScript. Разберёмся со сборщиками модулей: зачем они нужны, как они работают и как их подключить в проект. А так же узнаем, что такое npm-пакеты. Научимся их устанавливать и управлять ими.

Модули

  • Как работают модули в ES20xx.
  • Циклические зависимости.

Структура JavaScript-проекта

  • node.js, файл package.json, package-lock.json.
  • Управление проектом, npm.
  • npm-сценарии.
  • Запуск установленных исполняемых модулей.
  • Обновление версий пакетов.
  • Установка зависимостей.
  • Сборка приложения при помощи webpack.
  • Карты кода (source map).
  • Travis.
Практика

Практика

  • Настройка инфраструктуры для работы на интенсиве.
  • Подключение в сборку загрузчика модулей.
  • Разделение проекта на модули.
Раздел 3

Структуры данных

Узнаем, зачем нужны структуры данных frontend-разработчику и как их применять в своих проектах.

  • Классические структуры данных.
  • Структуры данных ES2015: Map, Set, WeakMap, WeakSet.
  • Работа с массивами JS как со списками .
Практика

Практика

  • Пишем клиент-серверное приложение без сервера.
Раздел 4

Введение в ООП

Познакомимся с объектами в JavaScript. Научимся создавать, копировать и применять объекты для решения практических задач. Поговорим про типизацию и разберёмся с магическим контекстом.

Объекты JavaScript.

  • Функции и объекты.
  • Способы создания объектов.
  • Свойства и методы.
  • Динамические имена свойств.
  • Геттеры и сеттеры.
  • Копирование объектов.
  • Конфигурирование объектов.
  • Proxy.

Иммутабельность.

Контекст.

  • Контекст.
  • Потеря и привязка контекста (apply, bind, call).
  • Контекст стрелочных функций.

Компонентный подход.

  • Объектно-ориентированное программирование.
  • Какие проблемы решает.
  • Особенности ООП в JavaScript.
  • Классы, типы в JavaScript.
  • Инкапсуляция.
  • Интерфейсы.
Практика

Практика

  • Обновление кода с учётом новых знаний об объектах.
  • Применение объектно-ориентированного подхода.
Раздел 5

Наследование и полиморфизм

Продолжаем знакомиться с ООП в JavaScript. Разберем полиморфизм и наследование. Попрактикуемся в написании компонент многоразового использования.

ООП.

  • Полиморфизм.
  • Наследование и цепочка прототипов.
  • Практика решения задачи.

Связывание компонент.

Практика

Практика

  • Углубление в ООП. Применение на практике инкапсуляции, наследования и полиморфизма.
  • Рефакторинг модулей.
Раздел 6

Датабиндинг — связывание данных

На этом этапе мы установим связь между компонентом и структурой данных: обновление данных при изменении состояния компонент.

Практика

Практика

  • Установим одностороннее связывание данных — от компонента к данным.
  • Познакомимся с библиотеками lodash, chart.js.
Раздел 7

Связывание данных. Продолжение

А затем установим обратную связь: обновление компонентов при изменении данных.

Практика

Практика

  • Свяжем данные в обратную сторону — от данных к компонентам.
  • Применим двустороннее связывание данных.
Раздел 8

Работа с сетью

Узнаем как работает протокол HTTP, что такое REST и REST API. Разберёмся с объектом Promise и узнаем, как он помогает отправлять и обрабатывать HTTP-запросы. Разберём, как проектировать интерфейсы, в которых есть асинхронный код так, чтобы пользователю было удобно.

Протокол HTTP.

REST.

Fetch API.

Промисы.

  • Функции обратного вызова (callback).
  • Ад из функций обратного вызова, и как его избежать.
  • Promise.
Практика

Практика

  • Получение данных для отрисовки приложения с внешнего сервера.
  • Отправка данных на внешний сервер.
Раздел 9

Offline

Узнаем, есть ли жизнь без интернета.

  • Cache.
  • Local Storage.
  • Web Worker.
  • Service Worker.
Практика

Практика

  • Познакомимся с практиками, позволяющими обеспечить работоспособность приложения, в случае если доступ к сети пропал.
Раздел 10

Финал

Подводим итоги интенсива. Что делать дальше.

Сертификат

После курса вы получите сертификат.

Сертификат интенсива «Профессиональный Javascript, уровень 2»

Об Академии

7лет на рынке обучения
72интенсива проведено
7 565студентов закончили курсы

Главная цель интенсивных курсов — готовить профессионалов для IT-индустрии.

Поэтому обучение на интенсивах максимально приближено к рабочему процессу в компаниях: разработка проектов ведётся в Гитхабе, а роль старшего разработчика берёт на себя наставник. Во время курса ученики создают учебный проект и защищают его по критериям качества, которые были составлены совместно с сообществом разработчиков и считаются актуальными на рынке.