Начало занятий 31 января

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

Общая стоимость: 32000 ₽
В месяц: 9000 ₽
4 часа в неделю
4 месяца
О курсе

Курс "Разработчик JavaScript" предназначен для разработчиков, которые хотят узнать больше о мире современного JavaScript. В рамках курса мы рассмотрим ключевые особенности языка JavaScript, его окружение - браузеры и серверную платформу NodeJS. Мы разберем внутреннее устройство и понятия популярного фреймворка Angular, а также библиотеки для написания web-приложений VueJS и ReactJS. Курс подходит для разработчиков уровня Junior или Middle, которые имеют общее представление и некоторый опыт работы с Web и намерены больше узнать об актуальных подходах разработки программ и приложений в среде JavaScript.

Программа курса
1
JavaScript
2
Angular
3
Node
4
React
5
Vue
6
Polymer
Занятие 1: Введение в курс
Участники смогут:
- Познакомиться с преподавателем и с программой курса, понимать как она построена и какие полезные навыки они получат
- Вспомнить основные возможности языка JavaScript
- Применять техники языка, которые помогут при изучении фреймворков

ДЗ

Написать функцию суммирования значений.
Занятие 2: JavaScript. Работа с браузером
Участники смогут:
- Решать специфичные для браузерной разработки задачи на языке JavaScript
- Освоить и вспомнить теорию, которая будет базисом для последующих уроков

ДЗ

Написать функцию getPath, находяющую уникальный css-селектор для элемента в документе.
Занятие 3: Введение в Angular
Участники смогут:
- Настроить себе окружение IDE, а также скачать зависимости и библиотеки, коммандные утилиты для TypeScript и создания проектов для работы с Angular
- Различать TypeScript и JavaScript
- Писать и понимать код на языке TypeScript

ДЗ

Установить все необходимые зависимости для работы с angular - node, npm, tsc, angular-cli. Настройте IDE. Создать простое приложение “Hello Angular” используя angular-cli..
Занятие 4: Компоненты и директивы
Участники смогут:
- Декомпозировать макет страницы на компоненты
- Различать директивы и компоненты во фреймворке Angular
- Создавать простые директивы и компоненты

ДЗ

Создать компоненты контейнеры для приложения запоминания иностранных слов..
Занятие 5: Observables. RxJS
Участники смогут:
- Отличать основные понятия паттерна
- Observable, Observer, Subscriber, Operator
- Применять шаблон проектирования Observables, используя библиотеку RxJS
Занятие 6: Сервисы
Участники смогут создавать сервисы для получения, отправки и хранения данных для приложений Angular

ДЗ

Создать сервисы для работы с данными. Сервисы должны запрашивать данные из API и отрисовываться в приложении..
Занятие 7: Состояние приложения
Участники смогут разбираться в особенностях шаблона проектирования Dependency Injection и его имплементации в Angular

ДЗ

Разработать страницу упражнений приложения.
Занятие 8: Создание и управление формами в Angular
Участники смогут:
- Создавать формы, используя техники Dynamic Forms, Reactive Forms
- Описывать валидацию и другие функции для элементов форм

ДЗ

Создать компоненты и формы для тренировки запоминания слов.
Занятие 9: Routing
Участники смогут:
- Создавать Routing систему для приложений, используя внутренние подходы Angular - такие как Router, router-outlet и другие
- Понимать и применять хэндлеры навигации Guards

ДЗ

Для приложения запоминания иностранных слов создать routing - добавить ссылки на страницы и переходы между компонентами приложения.
Занятие 10: Тестирование в Angular
Участники смогут писать и запускать тесты для приложений Angular

ДЗ

Добавить и актуализировать тесты для компонент приложения.
Занятие 11: Сборка приложений для Production
Участники смогут:
- Настраивать сборку приложений Angular
- Использовать возможность сборки Server-side Rendering

ДЗ

Настроить universal рендеринг приложения..
Занятие 12: Node основные концепции - Introduction, EventLoop, Timers, Modules
Участники смогут:
- Запускать скрипты на платформе Node
- Ориентироваться в понятии EventLoop и как в нем работают Timers и nextTick
- Использовать ES6 Imports и стандартный способ загрузки модулей

ДЗ

Установить nvm, npm.
Занятие 13: Node стандартная библиотека - Events, Streams, Processes, HTTP
Участники смогут:
- Использовать классы, объекты и функции стандартной библиотеки
- Работать с файловой системой и HTTP запросами

ДЗ

Написать приложение на Node, которое будет принимать в качестве входного аргумента количество процессов, создавать дочерние процессы, отправлять им сообщение и после получения ответа от всех дочерних процессов заканчивать исполнение.
Занятие 14: NPM & Node Best Practices
Участники смогут:
- Работать с NPM - писать scripts, добавлять и управлять зависимостями
- Различать ошибочные техники при написании серверного JavaScript кода

ДЗ

Написать приложение для вывода списка файлов и папок файловой системы. Приложение принимает на вход параметр - путь до папки. Приложение принимает на вход параметр - путь до папки. Результатом работы должен быть объект с 2 массивами.
Написать улучшенную версию программы, написанной в предыдущем задании. Сделать вызовы файловой системы асинхронными. Создать простой веб-сервер, используя модуль http, который с помощью написанной выше асинхронной функции будет возвращать результат пользователю - папки и файлы, находящиеся по пути, переданном в запросе пользователя.
Занятие 15: Связка Node, Express, MongoDB
Участники смогут создавать простые приложения с использованием библиотеки Express, а также базы данных MongoDB

ДЗ

Написать приложение, которое будет запрашивать RSS рассылку, парсить XML и сохранять документы в БД.
Занятие 16: Построение Rest API и Тестирование
Участники смогут:
- Понимать и добавлять общие стандарты создания API
- Писать и запускать тесты для серверного JavaScript

ДЗ

Реализовать функцию series, используя подход TDD. Дана Promise-образная утилита series, которая вызывает переданные аргументы - функции по цепочке. При вызове утилиты, она поочередно исполняет все переданные промежуточные функции, передавая как аргумент в каждый обработчик функцию next. При вызове функции next вызывается следующий обработчик и так далее. Если функция next исполняется с аргументом - это означает, что произошла ошибка и цепочка вызовов должна быть прервана. При этом должна выполниться последняя функция, переданная в качестве аргумента исходной утилите series.
Реализовать функцию series, используя подход TDD. Результатом задания должен быть npm пакет со скриптом запуска тестов. Сами тесты должны быть исключены из publish версии пакета, но при этом находится в репозитории проекта.
Занятие 17: Основы React

ДЗ

Установить и настроить среду для работы с React. Написать приложение ""Hello World"".
Занятие 18: Компоненты в React. Virtual DOM

ДЗ

Создать структуру приложения, создать компоненты контейнеры. Приложение для самостоятельной работы в блоке React - веб-приложение погоды. На странице приложения должна быть возможность добавлять города в список избранных. По каждому городу показывается информация о температуре, ветре, другие параметры.
Создать структуру приложения, создать компоненты контейнеры.
Занятие 19: Состояние приложения. Flux & Redux

ДЗ

Реализовать компонент фильтра и поиска городов. Данные по городам сохранять в браузерном хранилище. Исходные данные хранятся как статичные json файлы.
Занятие 20: Routing. Оптимизация приложения

ДЗ

Добавить страницу погоды по конкретному городу. При переходе на нее должнен меняться url, показываться информация на несколько дней вперед.
Занятие 21: Основы Vue

ДЗ

Установить и настроить среду для работы с фреймворком Vue. Написать приложение "Hello World".
Занятие 22: Компоненты и формы

ДЗ

Подготовить общую структуру приложения - компоненты контейнеры для страниц приложения. В разделе Vue одна большая самостоятельная работа - SPA (Single Page Application) игра "Устный счет". Игра состоит из двух экранов - на первом экране пользователь выбирает настройки, которые будут использовать в игре - типы вычислений, сложность, время раунда. На этой же странице показывается статистика тренировок. Вторая страница - сама игра. Пользователь должен решить максимальное количество задач на заданное время. Мокапы - https://app.moqups.com/korzio@gmail.com/bTYyBLCtpU/edit/page/ad64222d5
Занятие 23: Routing, state management

ДЗ

Создать первую страницу приложения - форму настроек.
Занятие 24: Advanced Vue

ДЗ

Запрограммировать вторую страницу приложения - игру. Настроить переходы по страницам.
Занятие 25: Обзор Polymer

ДЗ

Установить и настроить среду для работы с Polymer. Написать приложение ""Hello World"".
Занятие 26: Все суть компоненты

ДЗ

Подготовить структуру приложения Polymer. Используя NodeJS скрипты из занятия 14, написать приложение, которое будет выводить на страницу файлы и папки по запросу пользователя.
Настроить и подготовить API, которое будет возвращать необходимые данные для отрисовки.
Подготовить структуру приложения Polymer.
Занятие 27: Специфика построения приложений

ДЗ

Создать компоненты, необходимые для отрисовки дерева файловой структуры. Сделать страницу, в которой пользователь сможет ввести путь, отправить значение на сервер и получить данные.
Занятие 28: Обзор пройденных фреймворков и технологий

ДЗ

Подготовить курсовую работу.
Преподаватели
Александр Коржиков
Программист с восьмилетним опытом разработки, в основном в области Front End. Получил степень специалиста в университете по специальности прикладной математики и кибернетики.
Заинтересовался WEB-разработкой еще в университете. В первую очередь тем, что в ней сразу виден результат работы. С другой стороны, кажущаяся простота скрывает много сложных и интересных задач.
Большую часть карьеры программировал на JavaScript, начиная c 2010 года в компании Альпари. После этого работал в стартапе Comindware, в банке Тинькофф, в голландской IT компании Backbase.
Сейчас работает в международной финансовой корпорации ING, главный офис которой находится в Амстердаме. Занимается проектированием и поддержкой процессов WEB-разработки.