Разработчик JavaScript

Полный курс по JavaScript для web-разработчиков, которые хотят вывести свои навыки программирования на новый профессиональный уровень
Зачем нужно тестирование?

Длительность

5 месяцев

Начало

28 марта

Занятия

Пн 20:00, Чт 20:00

Общая стоимость

42 000 ₽

В месяц

10 500 ₽

В кредит:

10500 ₽ в месяц

Хочу дешевле
Общая стоимость
42 000 ₽
В месяц: 10 500 ₽
В кредит: 42000 ₽
в месяц
Продолжительность
5 месяцев, 4 часа в неделю
Пн 20:00, Чт 20:00
Начало занятий
28 марта
Что даст вам этот курс

Этот курс подойдет разработчикам, которые:

- хотят стать JavaScript FullStack разработчиками
- хотят больше веселья и хардкора с технологиями, больше сложных и комплексных задач в работе
- имеют опыт работы с одной технологией или языком программирования и хотят получить практические навыки других технологий или переквалифицироваться
- хотят улучшить свои технические скиллы и перейти на следующий профессиональный уровень

В рамках курса мы рассмотрим:

Ключевые особенности JavaScript - замыкания, особенности ООП и SOLID в JS, функционального и реактивного программирования, Promises и другие возможности ES6, Event Loop, а также разберём DOM API, Ajax и события в рамках разработки в браузере, и, конечно, прокачаем навыки в HTML и CSS. Научимся писать код на диалектах JavaScript, таких как TypeScript и JSX.

Помимо разработки клиентской части в браузере, мы также будем использовать серверную платформу NodeJS и её окружение. Изучим популярный фреймворк Angular с реактивными возможностями RxJS, а также библиотеки для написания web-приложений - ReactJS, Redux и современные подходы к разработке UI, такие как Polymer и набирающий звёзды Vue.

Мы будем собирать проекты для production с помощью Webpack, хранить данные в MongoDB, использовать TDD подход и писать тесты на различных фреймворках и уровнях.



Изучим полный ландшафт современных технологий Node / React / Angular / Vue / Web Components

Выполним домашние задания в формате мини-assignment, как на собедования в российские и европейские компании

Углубимся во внутренние алгоритмы и логику работы фреймворков и рассмотрим спецификации

Выпускников этого курса ждут 39 работодателей



По окончании курса студент будет:

- Понимать принципы работы современных JavaScript фреймворков и библиотек
- Уметь применять паттерны проектирования (Event Loop, Flux, Immutable, Virtual DOM, Dependency Injection, Observables)
- Знать подходы при проектировании, организации, контроля состояния и тестирования серверных и клиентских приложений
- Выбирать подходящие инструменты для проекта
- Тестировать проект unit-тестами на разных уровнях
- Создавать веб-приложения с использованием современных технологий
Всё о курсе «Разработчик JavaScript», 25 марта в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому, если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ведет
Александр
Коржиков
Предыдущий день открытых дверей
Любое приложение, которое может быть написано на JavaScript, обязательно будет написано на JavaScript
Александр Коржиков
Преподаватель курса
Любое приложение, которое может быть написано на JavaScript, обязательно будет написано на JavaScript
Александр Коржиков
Преподаватель курса
Преподаватели
Александр Коржиков
ING Group
Юрий Дворжецкий
Luxoft Training Center
Владимир Клепов
Разработчик интерфейса Яндекс.Почты
Михаил Кузнецов
ING Group
Разработчик JavaScript в международной финансовой корпорации ING, главный офис которой находится в Амстердаме. Занимается проектированием и поддержкой процессов WEB-разработки.

8 лет опыта разработки, в основном в области Front End. Большую часть карьеры программировал на JavaScript, начиная c 2010 года в компании Альпари. После этого работал в стартапе Comindware, в банке Тинькофф (Москва), в голландской IT-компании Backbase.

Получил степень специалиста в университете по специальности прикладной математики и кибернетики.
Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript как классического, так и современного во всех его проявлениях.

Сейчас разрабатывает Web-приложения c UI на React и Angular.
До этого делал интерфейсы для системы управления суперкомпьютером и ситуационного центра МЧС Сахалина.

Работа в маленькой команде научила создавать дизайн, раскатывать докер, настраивать DNS-сервера и заниматься другими вещами, которых обычно не ожидают от фронтендера.

Специализируется на интерактивных визуализациях.
Закончил факультет компьютерных наук ВШЭ, так что всегда может обсудить машинное обучение и P = NP.
Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.
Преподаватели
Александр Коржиков
ING Group
Разработчик JavaScript в международной финансовой корпорации ING, главный офис которой находится в Амстердаме. Занимается проектированием и поддержкой процессов WEB-разработки.

8 лет опыта разработки, в основном в области Front End. Большую часть карьеры программировал на JavaScript, начиная c 2010 года в компании Альпари. После этого работал в стартапе Comindware, в банке Тинькофф (Москва), в голландской IT-компании Backbase.

Получил степень специалиста в университете по специальности прикладной математики и кибернетики.
Юрий Дворжецкий
Luxoft Training Center
Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript как классического, так и современного во всех его проявлениях.

Сейчас разрабатывает Web-приложения c UI на React и Angular.
Владимир Клепов
Разработчик интерфейса Яндекс.Почты
До этого делал интерфейсы для системы управления суперкомпьютером и ситуационного центра МЧС Сахалина.

Работа в маленькой команде научила создавать дизайн, раскатывать докер, настраивать DNS-сервера и заниматься другими вещами, которых обычно не ожидают от фронтендера.

Специализируется на интерактивных визуализациях.
Закончил факультет компьютерных наук ВШЭ, так что всегда может обсудить машинное обучение и P = NP.
Михаил Кузнецов
ING Group
Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.
Минимальные знания

- Знание основ JavaScript (переменные, циклы, функции, замыкания, создание объектов, scope, this, работа со встроенными классами и API - Date, Math, RegExp, Array - map, forEach, filter, reduce)
- Основы работы браузера и браузерного API
- Знание HTML и CSS
- Базовые навыки работы с Git (понимание VCS, создать ветку, сделать Merge Request на github)

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

Вебинары идут дважды в неделю по 2 академических часа (то есть астрономических 1,5 часа). Все вебинары сохраняются и в записи в вашем личном кабинете.

Домашнее задание выдается в среднем одно в неделю, а его выполнение занимает 3-5 часов. Мы горячо призываем заниматься такой самостоятельной работой, так как это поможет вам качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью наших преподавателей.

Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров.

Курс длится 5 месяцев, а финальный отводится для выполнения проектной работы, досдачи домашних заданий и вопросов преподавателям.

Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в слаке группы и на проектных занятиях.
Программа обучения
Модуль 1
JavaScript
Модуль 2
UI Libraries
Модуль 3
Angular
Модуль 4
Проектная работа
JavaScript
Мы рассмотрим возможности современного JavaScript на сервере. Разберем ключевые особенности Node.js - EventLoop, модули и потоки, а также NPM - управление зависимостями и автоматизация задач. Мы научимся строить API, используя подходы REST и GraphQL. Мы будем использовать Test-Driven Development при решении всевозможных практических задач, например про Promise.
Введение в курс Modern JavaScript Frameworks
Участники смогут:
- Познакомиться с преподавателем и с программой курса, понимать как она построена и какие полезные навыки они получат
- Вспомнить основные возможности языка JavaScript
- Применять техники языка, которые помогут при изучении фреймворков
28 марта, 20:00 — 21:30
Домашние задания: 1
1 Написать функцию суммирования значений
Написать функцию sum, которая может быть исполнена любое количество раз с не `undefined` аргументом.
Если она исполнена без аргументов, то возвращает значение суммы всех переданных до этого значений.

sum(1)(2)(3)....(n)() === 1 + 2 + 3 + ... + n
Возможности современного JavaScript
Участники смогут:
- Решать специфичные для браузерной разработки задачи на языке JavaScript
- Освоить и вспомнить теорию, которая будет базисом для последующих уроков
- Попрактиковаться с технологиями Promise & AJAX
4 апреля, 20:00 — 21:30
Домашние задания: 1
1 promiseReduce - работа с асинхронными функциями
Написать функцию `promiseReduce`, которая получает на вход
- массив асинхронных функций `asyncFunctions`, возвращающих `Promise`,
- `reduce` функцию и
- стартовое значение `initialValue`.

`promiseReduce` поочередно вызывает переданные асинхронные функции
и выполняет `reduce` функцию сразу при получении результата до вызова следующей асинхронной функции.

`reduce` должна отрабатывать аналогично [`Array.prototype.reduce`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce), то есть запоминать результат предыдущей итерации

Пример

```javascript
var fn1 = () => {
console.log('fn1')
return Promise.resolve(1)
}

var fn2 = () => new Promise(resolve => {
console.log('fn2')
setTimeout(() => resolve(2), 1000)
})

function promiseReduce(asyncFunctions, reduce, initialValue) {
/*
* Сюда нужно дописать работающий код
*/
}

promiseReduce(
[fn1, fn2],
function (memo, value) {
console.log('reduce')
return memo * value
},
1
)
.then(console.log)
```

Вывод в консоль

```
fn1
reduce
fn2
reduce
2
```
Введение в Node - Пакетный менеджер NPM и возможности package.json
Участники смогут:
- Запускать приложения на платформе Node
- Писать и запускать тесты для серверного JavaScript
- Работать с пакетным менеджером NPM
- Управлять зависимостями и автоматизировать задачи с помощью package.json
8 апреля, 20:00 — 21:30
Домашние задания: 1
1 Реализовать скрипт request для тестирования веб сервера
Создать локальный веб сервер `server`, отвечающий на запросы каждые 100ms

Создать скрипт `request`, принимающий на вход
- количество запросов `N`
- тип запросов - параллельный или последовательный

Скрипт `request` должен отправлять `N` последовательных или параллельных `HTTP` запросов к локальному серверу `server`
Test Driven Development с JavaScript
Обзор фреймворков и библиотек для тестирования
Техники тестирования
Behavior Driven Development
Разбор примеров
11 апреля, 20:00 — 21:30
Основные концепции Node - Modules - Events - TDD
Участники смогут:
- Использовать require, exports и ES6 Imports для экспорта и импорта зависимостей
- Использовать модуль Events для работы с событиями и понимать, как использовать Errors в Node
15 апреля, 20:00 — 21:30
Стандартная библиотека Node - EventLoop - Timers
Участники смогут:
- Ориентироваться в понятии EventLoop и особенностях работы Timers
- Использовать классы, объекты и функции модуля Streams
- Работать c HTTP запросами в Node
18 апреля, 20:00 — 21:30
Домашние задания: 1
1 tree - вывод списка файлов и папок файловой системы
Напишите `NodeJS` скрипт `tree` для вывода списка файлов и папок файловой системы.
Результатом работы должен быть объект с массивами `{ files, folders }`.
Вызовы файловой системы должны быть асинхронными.
Скрипт принимает входной параметр - путь до папки.
Добавить возможность выполнять этот скрипт через команду `npm run tree -- path`

Пример

```
foo/
├── bar/
│├── bar1.txt
│├── bar2.txt
│└── baz/
├── f1.txt
└── f2.txt
```

При вызове с путем `foo/` скрипт должен вернуть структуру:

```json
{
"files": [
"foo/f1.txt",
"foo/f2.txt",
"foo/bar/bar1.txt",
"foo/bar/bar2.txt"
],
"dirs": [
"foo",
"foo/bar",
"foo/bar/baz"
]
}
```
Node Best Practices - Streams - Errors - Utils - Processes
- Работать с дочерними процессами в Node
- Различать корректные и ошибочные техники при написании серверного JavaScript кода
22 апреля, 20:00 — 21:30
Домашние задания: 1
1 Работа с потоками в NodeJS
Написать приложение, демонстрирующее работу с потоками в `NodeJS`:
- Readable, генерирующий случайные числа,
- Transformable, добавляющий случайное число к первому и
- Writable, выводящий данные в консоль.

Данные должны “течь” readable -> transformable -> writable
Используйте highWaterMark для ограничения внутреннего буффера.
Web-сервер на JavaScript - Стек MEAN - Express - MongoDB
Участники смогут:
- Создавать простые приложения с использованием библиотеки Express, а также базы данных MongoDB
25 апреля, 20:00 — 21:30
Построение Rest API
Участники смогут:
- Понимать и добавлять общие стандарты создания API
29 апреля, 20:00 — 21:30
GraphQL Server
6 мая, 20:00 — 21:30
Домашние задания: 1
1 Домашняя работа для `Занятие "GraphQL Server"`
На выбор одна из следующих задач:

---

Часть 1.
Написать схему GraphQL для примера веб-приложения e-commerce shop:
до 3 балла - какие сущности (минимум 3, можно больше), какие у них поля, какие обязательные какие нет
до 4 баллов - какие запросы/мутации понадобятся (минимум 4, можно больше)

Часть 2.
до 5 баллов - развернуть локально graphQL + nodejs или воспользоваться одним из веб демо (graphqlbin), перенести полностью или частично написанную в Части 1 схему.
Результатом работы будет ссылка на онлайн демо или репозиторий.

---

// ИЛИ

Написать `NodeJS Rest API` приложение для сохранения `RSS` рассылок.
В приложении должно быть следующие точки доступа
- Создание рассылки по `URL`. При успешном добавлении приложение будет запрашивать `RSS` рассылку, парсить `XML` и сохранять документы в базу данных.
- Показ списка всех добавленных `URL` рассылок.
- Показ всех сохраненных из `RSS` документов.

Приложение должно содержать тесты для всех точек доступа.
Node in Production
Process Manager pm2
Logging
Tracing
Errors Handling
Node Summary
13 мая, 20:00 — 21:30
JavaScript - Работа с браузером
- Решать специфичные для браузерной разработки задачи на языке JavaScript
- Работать с Chrome Dev Tools
16 мая, 20:00 — 21:30
Домашние задания: 1
1 getPath - поиск уникального селектора
Написать алгоритм и функцию `getPath()`, находяющую уникальный css-селектор для элемента в документе.
Уникальный селектор может быть использован `document.querySelector()` и возвращать исходный элемент.
`document.querySelectorAll()`, вызванный с этим селектором, не должен находить никаких элементов, кроме исходного.

```javascript
$0 // HTMLElement
getPath($0) // => "..."
```
UI Libraries
В этом модуле мы разбираем тенденции FrontEnd с наиболее популярными библиотеками. Мы начинаем с браузерного JavaScript и спецификации Web Components. Далее мы погружаемся в React и Vue, рассматриваем и сравниваем их основные принципы - шаблонизацию, декомпозицию, Server-Side Rendering и управление состоянием приложений вместе с Redux и Vuex.
Обзор Web Components - HTML Template - Polymer - Lit-HTML
Участники смогут
- Создавать custom elements, используя встроенные браузерные возможности
- Подключать и использовать Polymer для создания приложений
- Ориентироваться в веб спецификациях, на базе которых работает Polymer
20 мая, 20:00 — 21:30
Custom Elements
Подключать и использовать веб-компоненты в приложениях
Создавать Polymer компоненты, решающие функциональные и композиционные задачи
23 мая, 20:00 — 21:30
Shadow DOM
27 мая, 20:00 — 21:30
Домашние задания: 1
1 Custom Elements Tree
С помощью Custom Elements создать приложение для показа дерева с помощью компонентов my-tree и my-leaf. Компоненты должны получать данные о структуре поддерева от родительского элемента. Используйте Shadow DOM при отрисовке компонент.

Пример структуры

{
"id": 1,
"items": [{
"id": 2,
"items": [{ "id": 3 }]
}]
}
Основы React и JSX
Участники смогут:
- Настроить себе окружение для работы с React и использовать его
- Понимать и применять синтаксис JSX
- Создавать простые приложения на React
30 мая, 20:00 — 21:30
Компоненты React - Lifecycle React-компонент - state и props
Участники смогут:
- Разрабатывать полноценные React-компоненты в различных стилях.
- Корректно использовать state и props.
3 июня, 20:00 — 21:30
Домашние задания: 1
1 Создать структуру приложения погоды
Приложение для самостоятельной работы в блоке React - веб-приложение погоды.
На странице приложения должна быть возможность добавлять города в список избранных.
По каждому городу показывается информация о температуре, ветре, другие параметры.

---

Создать структуру приложения, создать компоненты контейнеры.
Higher-Order Components
6 июня, 20:00 — 21:30
Состояние приложения - Flux и Redux
Участники смогут:
- Отличать основные понятия однонаправленной архитектуры Flux.
- Ориентироваться и использовать возможности redux - создавать actions, reducers, а также применять redux в связке в React
17 июня, 20:00 — 21:30
Routing в React - Оптимизация приложения
- Создавать систему routing для React приложений, использовать библиотеку react-router
- Использовать специальные возможности библиотеки для оптимизации отрисовки
20 июня, 20:00 — 21:30
Домашние задания: 1
1 Routing для приложения погоды
Реализовать компонент фильтра и поиска городов.
Данные по городам сохранять в браузерном хранилище.
Добавить страницу погоды по конкретному городу.
При переходе на нее должен меняться url, показываться информация на несколько дней вперед.
Специфика построений приложений в React - Best Practices
- Эффективно разрабатывать приложения на React, учитывая последние тенденции в разработке front-end
- Использовать Advanced React
- Применять на практике Best-Practices разработки на React
24 июня, 20:00 — 21:30
Подготовка React Приложения к Production
Сборщики - Webpack, Parcel
Аспекты Server-Side Rendering
27 июня, 20:00 — 21:30
Основы Vue
- Настроить себе окружение IDE, зависимости и библиотеки для создания проектов и работы с Vue
- Создавать простейшие приложения используя Vue
1 июля, 20:00 — 21:30
Компоненты, шаблонизатор и формы
Участники смогут
- Понимать синтаксис шаблонизаторы
- Создавать компоненты, описывать атрибуты элементов
4 июля, 20:00 — 21:30
Домашние задания: 1
1 Структура приложения "Устный счет"
В разделе Vue одна большая самостоятельная работа - SPA (Single Page Application) игра "Устный счет".
Игра состоит из двух экранов - на первом экране пользователь выбирает настройки, которые будут использовать в игре - типы вычислений, сложность, время раунда.
На этой же странице показывается статистика тренировок.
Вторая страница - сама игра.
Пользователь должен решить максимальное количество задач на заданное время.
Мокапы - https://app.moqups.com/korzio@gmail.com/bTYyBLCtpU/edit/page/ad64222d5

---

Подготовить общую структуру приложения - компоненты контейнеры для страниц приложения.
Сделать первую страницу приложения - форму настроек.
Routing и модели данных
Участники смогут:
- Описывать routing для Vue приложений
- Создавать формы, связывая шаблоны с моделями
8 июля, 20:00 — 21:30
Advanced Vue - Vuex
Участники смогут:
- Применять анимацию в компонентах
- Создавать плагины
- Разбираться в тонкостях Change Detection
11 июля, 20:00 — 21:30
Домашние задания: 1
1 Routing для приложения "Устный счет"
Реализовать второй экран - игру "калькулятор".
Настроить переходы по страницам приложения.
Специфика построений приложений c Vue, Best Practices
15 июля, 20:00 — 21:30
Работа с анимацией во Vue
Unit тестирование
Server-Side Rendering с Nuxt
Custom Directives во Vue
18 июля, 20:00 — 21:30
Angular
Подробно изучаем язык TypeScript и преимущества его использования. Разбираем макропаттерн проектирования Observable на базе библиотеки RxJS. Учимся работать с фреймворком Angular - создавать компоненты и формы, использовать Dependency Injection для внутренних сервисов, а также тестировать и делать сборку приложения с помощью Webpack.
Введение в Angular
Участники смогут:
- Настроить себе окружение IDE, а также скачать зависимости и библиотеки, коммандные утилиты для TypeScript и создания проектов для работы с Angular
- Различать TypeScript и JavaScript
- Писать и понимать код на языке TypeScript
29 июля, 20:00 — 21:30
TypeScript
- Различать TypeScript и JavaScript, использовать преимущества статической типизации
- Писать и понимать код на языке TypeScript, разрабатывать приложения в полноценном объектно-ориентированном стиле
1 августа, 20:00 — 21:30
Компоненты и директивы
Участники смогут:
- Декомпозировать макет страницы на компоненты
- Различать директивы и компоненты во фреймворке Angular
- Создавать простые директивы и компоненты
5 августа, 20:00 — 21:30
Домашние задания: 1
1 Структура приложения для запоминания иностранных слов
Приложение для запоминания иностранных слов.
В этом приложении пользователь сможет добавлять слова для изучения, проходить тесты для запоминания слов.
Это Single Page Application состоит из 3 страниц:
- Последние добавленные слова (Recently Added)
- Упражнениями (Go)
- Настройки (Settings)
На главном экране, на странице Recently Added пользователь видит список последних добавленных слов, может добавить новое слово в словарь.

На странице упражнений пользователь занимается тестированием своих знаний. Ему показывается слово на одном языке, и он должен написать его перевод на другой язык. Если перевод правильный, слово засчитывается, иначе показываем ошибку. Мы начнем с двух языков - русского и английского, будем расширять возможности приложения по мере написания программы.

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

Навигация по страницам происходит с помощью ссылок в верхней части страниц, каждой странице соответствует отдельный url.

---

Декомпозировать приложение для запоминания иностранных слов.
Создать структуру и компоненты контейнеры приложения.
Сервисы
Участники смогут создавать сервисы для получения, отправки и хранения данных для приложений Angular
19 августа, 20:00 — 21:30
Observables - RxJS
Участники смогут:
- Отличать основные понятия паттерна
- Observable, Observer, Subscriber, Operator
- Применять шаблон проектирования Observables, используя библиотеку RxJS
5 сентября, 20:00 — 21:30
Домашние задания: 1
1 Создать сервисы для работы с текстом
Создать сервисы для работы с текстом
- Сервис перевода слова - должен запрашивать перевод через API (например, https://tech.yandex.com/translate/)
- Сервис хранения словаря - небольшая обертка для управления словарем с помощью `localStorage`
- Сервис добавления слов - должен разбивать текст на отдельные слова, запрашивать их перевод и сохранять в словарь для приложения.

Сервисы должны общаться с помощью библиотеки `RxJS`.
Состояние приложения
Участники смогут разбираться в особенностях шаблона проектирования Dependency Injection и его имплементации в Angular
9 сентября, 20:00 — 21:30
Создание и управление формами в Angular
Участники смогут:
- Создавать формы, используя техники Dynamic Forms, Reactive Forms
- Описывать валидацию и другие функции для элементов форм
12 сентября, 20:00 — 21:30
Домашние задания: 1
1 User Interface для приложения запоминания иностранных слов
Реализовать `UI` приложения
- Создать компоненты для добавления текста/слов в словарь
- Разработать компоненты и формы для тренировки запоминания слов
- Добавить экран настройку приложения, сохранять состояние
Routing
Участники смогут:
- Создавать Routing систему для приложений, используя внутренние подходы Angular - такие как Router, router-outlet и другие
- Понимать и применять хэндлеры навигации Guards
16 сентября, 20:00 — 21:30
Тестирование в Angular. Сборка приложения для Production
Участники смогут:
- Писать и запускать тесты для приложений Angular
- Настраивать сборку приложений Angular
- Использовать возможность сборки Server-side Rendering
19 сентября, 20:00 — 21:30
Домашние задания: 1
1 Routing для приложения запоминания иностранных слов
Добавить routing, ссылки на страницы и переходы между компонентами приложения.
Добавить и актуализировать тесты для компонент приложения, настроить universal рендеринг приложения.
Проектная работа
Заключительный месяц курса посвящен проектной работе. Это то, чем интересно заниматься студенту на базе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Примеры тем проекта:
- Task Runner для создания части Continuous Integration цикла
- Receipt Roulette для управления и рекомендаций рецептов
- Elements Dashboard - магазин Web компонент, созданных на одном из библиотек. В приложении можно видеть рейтинг, демонстрацию и документацию зарегистрированных элементов

Возможные технологии для проектов - Node + Vue/Angular/React/Polymer.
Предлагаемые темы выпускного проекта:
Примеры тем проекта:
- Task Runner для создания части Continuous Integration цикла
- Receipt Roulette для управления и рекомендаций рецептов
- Elements Dashboard - магазин Web компонент, созданных на одном из библиотек. В приложении можно видеть рейтинг, демонстрацию и документацию зарегистрированных элементов

Возможные технологии для проектов - Node + Vue/Angular/React/Polymer.
Вводное занятие по проектной работе. Обзор пройденных фреймворков и технологий.
Участники смогут:
- Определиться и обсудить тему проектной работы
- Выделять характеристики проектов и окружения
- Решать задачи выбора и сравнения фреймворков, понимать их преимущества и недостатки
23 сентября, 20:00 — 21:30
Домашние задания: 1
1 Проектная работа
Заключительный месяц курса посвящен проектной работе. Это то, чем интересно заниматься студенту на базе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.
Консультация по проектным работам
Обсудим цели и проектные работы
7 октября, 20:00 — 21:30
Защита проектных работ
- Подведение итогов модуля и курса в целом
- Презентация выполненных проектов
17 октября, 20:00 — 21:30
Выпускной проект
Заключительный месяц курса посвящен проектной работе. Его разработка нужна для окончательного закрепления знаний, которые были получены в рамках пройденных занятий. При успешном выполнении он станет образцом кода, который JavaScript разработчик сможет показывать будущим работодателям. В любом случае, проект — это хороший задел на будущее и возможность получить дополнительный опыт для любого, кто хочет стать более профессиональным разработчиком.

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

Примеры тем проекта:

  • Task Runner для создания части Continuous Integration цикла.

  • Reciept Roulette для управления и рекомендации рецептов.

  • Elements Dashboard — магазин web-компонент. Разработка выполняется с помощью одной из стандартных библиотек JavaScript. В приложении можно видеть рейтинг, демонстрацию и документацию зарегистрированных элементов.

Возможные технологии для проектов — Node + Vue/Angular/React/Polymer.
Подглядеть
Разработчик JavaScript
Обзор возможностей Node.js
Александр Коржиков
CSS препроцессоры
Юрий Дворжецкий
Frontend-разработчик
Глеб Худяков, frontend-разработчик
Dependency Injection в Angular
Александр Коржиков
Создание CLI на Node.js
Александр Коржиков
Разработчик JavaScript
Больше материалов
Видеоматериалы по теме
День открытых дверей
18 октября 2018 года в 20:00
День открытых дверей
18 июля 2018 года в 20:00
День открытых дверей
26 февраля 2018 года в 20:00
После обучения вы

  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на github и другие дополнительные материалы;

  • получите сертификат о прохождении курса;

  • приобретете опыт работы с актуальными технологиями, фреймворками и инструментарием;

  • получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).

Дата выдачи сертификата: 17 октября 2019 года
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик JavaScript»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик JavaScript»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
42 000 ₽
В месяц: 10 500 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
28 марта