Специальная цена

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

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

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

5 месяцев

Начало

26 сентября

Занятия

Пн 20:00, Чт 20:00

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

60 000 ₽ 50 000 ₽

В месяц

15 000 ₽ 13 100 ₽

В кредит:

15000 ₽ в месяц

Хочу дешевле
Общая стоимость
60 000 ₽ 50 000 ₽
В месяц: 15 000 ₽ 13 100 ₽
В кредит: 50000 ₽
в месяц
Продолжительность
5 месяцев, 4 академических часа в неделю
Пн 20:00, Чт 20:00
Начало занятий
26 сентября
Что даст вам этот курс

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

- хотят стать 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, как на собеседованиях в российские и европейские компании

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

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



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

- Понимать принципы работы современных JavaScript фреймворков и библиотек
- Уметь применять паттерны проектирования (Event Loop, Flux, Immutable, Virtual DOM, Dependency Injection, Observables)
- Знать подходы при проектировании, организации, контроля состояния и тестирования серверных и клиентских приложений
- Выбирать подходящие инструменты для проекта
- Тестировать проект unit-тестами на разных уровнях
- Создавать веб-приложения с использованием современных технологий

ИНДУСТРИАЛЬНЫЙ ПРОЕКТ ОТ компании REVOLUT *

  • Напоминалка о плановом медицинском обследовании

  • Каталогизатор мемов с загрузкой, тегированием и поиском


  • Возможные технологии для проектов — Node + Vue/Angular/React/Polymer.

    *Индустриальный проект является техническим собеседованием в компанию, упрощая трудоустройство. Так же он дает возможность отработать навыки разработки на приближены к реальным кейсах и получить дополнительную консультацию от специалиста компании.
    TypeScript в Node.js для server-side приложений, 12 сентября в 20:00
    На открытом вебинаре:
    - рассмотрим как использовать TypeScript в Node.js;
    - как работает ts-node и другие технологии;
    - движок deno - новый Node.js с TypeScript.
    Ведет
    Александр
    Коржиков
    Предыдущий открытый вебинар
    День открытых дверей для JavaScript-разработчиков, 19 сентября в 20:00
    Преподаватели-практики Александр Коржиков (курс «Fullstack разработчик JavaScript») и Андрей Поляков (курс «ReactJS/React Native-разработчик») расскажут о хардкорной программе каждого курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения.

    Также преподаватели расскажут о своём профессиональном опыте и ответят на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
    Ведет
    Александр
    Коржиков
    Предыдущий день открытых дверей
    Любое приложение, которое может быть написано на JavaScript, обязательно будет написано на JavaScript
    Александр Коржиков
    Преподаватель курса
    Любое приложение, которое может быть написано на JavaScript, обязательно будет написано на JavaScript
    Александр Коржиков
    Преподаватель курса
    Преподаватели
    Павел Асташкин
    Александр Коржиков
    Dev IT Engineer ING Group (Нидерланды)
    Антон Пальгунов
    Senior Frontend Engineer, Revolut
    Никита Овчинников
    Юрий Дворжецкий
    Luxoft Training Center
    Владимир Клепов
    Frontend-разработчик в Яндекс
    Михаил Кузнецов
    ING Group
    Маркетолог по образованию, программист по призванию.

    В настоящий момент JavaScript developer в небольшой, но динамично развивающейся компании. Последнее время занимается разработкой и внедрением решений, направленных на улучшение работы проекта, преимущественно на Vue.

    Плюс ко всему, является выпускником курса "Разработчик JavaScript"!

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

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

    Получил степень специалиста в университете по специальности «Прикладная математика и кибернетика».

    Руководитель программы
    Программирует с 2007 года, со школы. Первым рабочим языком стал С++. Окончил колледж МГКИТ по специальности «Программное обеспечение вычислительной техники и автоматизированных систем», затем с отличием окончил
    МГУТУ им. К. Г. Разумовского по той же специальности.
    C 2012 года занимается промышленной разработкой в качестве веб-разработчика. В течение 2 лет также занимался нагрузочным тестированием в ведущих банках России.
    С 2017 года работает в британской финтех-компании Revolut: разрабатывает backoffice-проект и внутренние продукты. Стек: React, TypeScript, Styled Components, Redux, Sagas, Jest+Enzyme и измененный Create React App для сборки.
    Публикует на GitHub личные проекты, самый крупный из которых — MTMR. Пишет для профильных СМИ, выступает на митапах. Считает, что программирование — это его работа, хобби и образ жизни.

    Окончил Волгоградский государственный технический университет по специальности «Автоматизированные системы обработки информации и управления». Увлёкся программированием ещё в студенческие годы (в 2010 году) и остановиться так и не смог. В коммерческой разработке с 2012 года.
    Работал с проектами разного масштаба, прошёл путь от Junior до Senior. С 2016 года — старший инженер-программист в EPAM Systems, с 2018 по май 2019 — технический руководитель по разработке софта в Skywind Group.
    Участвовал в международном проекте компании Ericsson, занимался web-программированием и собственными проектами. С 2015 по 2018 годы преподавал в GeekBrains.
    Является специалистом по архитектуре веб-приложений, хорошо знает JS/NodeJS, Mongo, MySQL, фреймворки Express, Koa2, React, AngularJS. Уверен, что в программировании всё приходит с практикой.

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

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

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

    Сейчас разрабатывает web-приложения c UI на React и Angular.

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

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

    Специализируется на интерактивных визуализациях.
    Закончил факультет компьютерных наук ВШЭ.

    Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

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

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

    Преподаватель
    Павел
    Асташкин
    Александр
    Коржиков
    Антон
    Пальгунов
    Никита
    Овчинников
    Юрий
    Дворжецкий
    Владимир
    Клепов
    Михаил
    Кузнецов
    Преподаватели
    Павел Асташкин
    Маркетолог по образованию, программист по призванию.

    В настоящий момент JavaScript developer в небольшой, но динамично развивающейся компании. Последнее время занимается разработкой и внедрением решений, направленных на улучшение работы проекта, преимущественно на Vue.

    Плюс ко всему, является выпускником курса "Разработчик JavaScript"!

    Преподаватель
    Александр Коржиков
    Dev IT Engineer ING Group (Нидерланды)
    Разработчик JavaScript в международной финансовой корпорации ING, главный офис которой находится в Амстердаме. Занимается проектированием и поддержкой процессов web-разработки.

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

    Получил степень специалиста в университете по специальности «Прикладная математика и кибернетика».

    Руководитель программы
    Антон Пальгунов
    Senior Frontend Engineer, Revolut
    Программирует с 2007 года, со школы. Первым рабочим языком стал С++. Окончил колледж МГКИТ по специальности «Программное обеспечение вычислительной техники и автоматизированных систем», затем с отличием окончил
    МГУТУ им. К. Г. Разумовского по той же специальности.
    C 2012 года занимается промышленной разработкой в качестве веб-разработчика. В течение 2 лет также занимался нагрузочным тестированием в ведущих банках России.
    С 2017 года работает в британской финтех-компании Revolut: разрабатывает backoffice-проект и внутренние продукты. Стек: React, TypeScript, Styled Components, Redux, Sagas, Jest+Enzyme и измененный Create React App для сборки.
    Публикует на GitHub личные проекты, самый крупный из которых — MTMR. Пишет для профильных СМИ, выступает на митапах. Считает, что программирование — это его работа, хобби и образ жизни.

    Никита Овчинников
    Окончил Волгоградский государственный технический университет по специальности «Автоматизированные системы обработки информации и управления». Увлёкся программированием ещё в студенческие годы (в 2010 году) и остановиться так и не смог. В коммерческой разработке с 2012 года.
    Работал с проектами разного масштаба, прошёл путь от Junior до Senior. С 2016 года — старший инженер-программист в EPAM Systems, с 2018 по май 2019 — технический руководитель по разработке софта в Skywind Group.
    Участвовал в международном проекте компании Ericsson, занимался web-программированием и собственными проектами. С 2015 по 2018 годы преподавал в GeekBrains.
    Является специалистом по архитектуре веб-приложений, хорошо знает JS/NodeJS, Mongo, MySQL, фреймворки Express, Koa2, React, AngularJS. Уверен, что в программировании всё приходит с практикой.

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

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

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

    Сейчас разрабатывает web-приложения c UI на React и Angular.

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

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

    Специализируется на интерактивных визуализациях.
    Закончил факультет компьютерных наук ВШЭ.

    Михаил Кузнецов
    ING Group
    Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

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

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

    Преподаватель
    11 вопросов JS-разработчику
    Минимальные знания

    - Знание основ 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
    React
    Модуль 3
    Node
    Модуль 4
    Vue
    Модуль 5
    Angular
    Модуль 6
    Проектная работа
    JavaScript
    Мы рассмотрим основные возможности современного и традиционного JavaScript, стандарт EcmaScript 6+, Templates, асинхронные паттерны Promise, Async Await, переменные, замыкания, функции, наследование и классы. Разберем особенности браузерного API и спецификаций Web Components на примере библиотеки Lit-HTML. Обсудим главные принципы и возможности Node.js, а также NPM для управления зависимостями и автоматизации задач. Мы научимся использовать Test-Driven Development при решении практических задач.
    Тема 1: Введение в курс Modern JavaScript Frameworks
    Участники смогут:
    - Познакомиться с преподавателем и с программой курса, понимать как она построена и какие полезные навыки они получат
    - Вспомнить основные возможности языка JavaScript
    - Применять техники языка, которые помогут при изучении фреймворков
    26 сентября, 20:00 — 21:30
    Лектор: Александр Коржиков
    Домашние задания: 1
    1 Написать функцию суммирования значений
    Написать функцию sum, которая может быть исполнена любое количество раз с не `undefined` аргументом.
    Если она исполнена без аргументов, то возвращает значение суммы всех переданных до этого значений.

    sum(1)(2)(3)....(n)() === 1 + 2 + 3 + ... + n
    Тема 2: Возможности современного JavaScript
    участники смогут:
    - Решать специфичные для браузерной разработки задачи на языке JavaScript
    - Освоить и вспомнить теорию, которая будет базисом для последующих уроков
    - Попрактиковаться с технологиями AJAX, WebSocket, Promise
    30 сентября, 20:00 — 21:30
    Домашние задания: 1
    1 promiseReduce - работа с асинхронными функциями
    Цель: Написать функцию promiseReduce(asyncFunctions, reduce, initialValue) asyncFunctions - массив асинхронных функций, возвращающих промис reduce(memo, value) - функция, которая будет вызвана для каждого успешно завершившегося промиса. initialValue - стартовое значение для функции reduce promiseReduce последовательно вызывает переданные асинхронные функции и выполняет reduce функцию сразу при получении результата до вызова следующей асинхронной функции. Функция promiseReduce должна возвращать промис с конечным результатом.
    Тема 3: JavaScript - Работа с браузером
    - Решать специфичные для браузерной разработки задачи на языке JavaScript
    - Работать с Chrome Dev Tools
    3 октября, 20:00 — 21:30
    Лектор: Александр Коржиков
    Домашние задания: 1
    1 getPath - поиск уникального селектора
    Написать алгоритм и функцию `getPath()`, находяющую уникальный css-селектор для элемента в документе.
    Уникальный селектор может быть использован `document.querySelector()` и возвращать исходный элемент.
    `document.querySelectorAll()`, вызванный с этим селектором, не должен находить никаких элементов, кроме исходного.

    ```javascript
    $0 // HTMLElement
    getPath($0) // => "..."
    ```
    Тема 4: Web Components
    ориентироваться в веб спецификациях Custom Elements и Shadow DOM
    Создавать custom elements, используя встроенные браузерные возможности
    7 октября, 20:00 — 21:30
    Лектор: Александр Коржиков
    Тема 5: Lit-HTML и Polymer
    участники смогут
    - Понимать принципы Polymer
    - Разбираться в стандарте HTML Template
    - Использовать особенности Lit-HTML для создания приложений
    10 октября, 20:00 — 21:30
    Лектор: Александр Коржиков
    Тема 6: Введение в Node - Пакетный менеджер NPM и возможности package.json
    Участники смогут:
    - Запускать приложения на платформе Node
    - Писать и запускать тесты для серверного JavaScript
    - Работать с пакетным менеджером NPM
    - Управлять зависимостями и автоматизировать задачи с помощью package.json
    14 октября, 20:00 — 21:30
    Домашние задания: 1
    1 Реализовать скрипт request для тестирования веб сервера
    Создать локальный веб сервер `server`, отвечающий на запросы каждые 100ms

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

    Скрипт `request` должен отправлять `N` последовательных или параллельных `HTTP` запросов к локальному серверу `server`
    Тема 7: Test Driven Development с JavaScript
    Обзор фреймворков и библиотек для тестирования
    Техники тестирования
    Behavior Driven Development
    Разбор примеров
    17 октября, 20:00 — 21:30
    React
    Мы подробно изучим стэк технологий React. Рассмотрим особенности синтаксической шаблонизации JSX, особенности передачи данных и хранения состояния с помощью state и props. Разберем свойства компонентного подхода для декомпозиции React приложений, жизненный цикл и типы компонент, например, High-Order Components. Изучим шаблон проектирования Flux и его реализацию на примере библиотеки Redux. Будем настраивать и оптимизировать приложения с Server-Side Rendering.
    Тема 1: Основы React и JSX
    Участники смогут:
    - Настроить себе окружение для работы с React и использовать его
    - Понимать и применять синтаксис JSX
    - Создавать простые приложения на React
    21 октября, 20:00 — 21:30
    Тема 2: Компоненты React - Lifecycle React-компонент - state и props
    Участники смогут:
    - Разрабатывать полноценные React-компоненты в различных стилях.
    - Корректно использовать state и props.
    24 октября, 20:00 — 21:30
    Домашние задания: 1
    1 Создать структуру приложения погоды
    Приложение для самостоятельной работы в блоке React - веб-приложение погоды.
    На странице приложения должна быть возможность добавлять города в список избранных.
    По каждому городу показывается информация о температуре, ветре, другие параметры.

    ---

    Создать структуру приложения, создать компоненты контейнеры.
    Тема 3: Higher-Order Components
    28 октября, 20:00 — 21:30
    Тема 4: Состояние приложения - Flux и Redux
    Участники смогут:
    - Отличать основные понятия однонаправленной архитектуры Flux.
    - Ориентироваться и использовать возможности redux - создавать actions, reducers, а также применять redux в связке в React
    31 октября, 20:00 — 21:30
    Тема 5: Routing в React - Оптимизация приложения
    - Создавать систему routing для React приложений, использовать библиотеку react-router
    - Использовать специальные возможности библиотеки для оптимизации отрисовки
    4 ноября, 20:00 — 21:30
    Домашние задания: 1
    1 Routing для приложения погоды
    Реализовать компонент фильтра и поиска городов.
    Данные по городам сохранять в браузерном хранилище.
    Добавить страницу погоды по конкретному городу.
    При переходе на нее должен меняться url, показываться информация на несколько дней вперед.
    Тема 6: Подготовка React Приложения к Production, Best Practices
    - Эффективно разрабатывать приложения на React, учитывая последние тенденции в разработке front-end
    - Использовать Advanced React
    - Применять на практике Best-Practices разработки на React
    - Сборщики - Webpack, Parcel
    - Аспекты Server-Side Rendering
    7 ноября, 20:00 — 21:30
    Node
    Этот модуль о серверной среде JavaScript. Мы разберем ключевые особенности Node.js - EventLoop, модули и потоки. Мы научимся строить API, используя фреймворк Express, подходы REST и GraphQL. Поговорим о WebAssembly и общих практиках при работе с процессами и ошибками. В конце мы подведем резюме стэка технологий Node.js.
    Тема 1: Основные концепции Node - Modules
    Участники смогут:
    - Использовать require, exports и ES6 Imports для экспорта и импорта зависимостей
    11 ноября, 20:00 — 21:30
    Тема 2: Стандартная библиотека Node - EventLoop - Timers
    Участники смогут:
    - Ориентироваться в понятии EventLoop и особенностях работы Timers
    - Использовать классы, объекты и функции модуля Streams
    - Работать c HTTP запросами в Node
    14 ноября, 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"
    ]
    }
    ```
    Тема 3: Node Best Practices - Streams - Errors - Processes
    - Работать с дочерними процессами в Node
    - Различать корректные и ошибочные техники при написании серверного JavaScript кода
    - Node Best Practices
    - Streams
    - Node Summary
    18 ноября, 20:00 — 21:30
    Домашние задания: 1
    1 Работа с потоками в NodeJS*
    * - задача со звездочкой. Сдается при желании.

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

    Для решения задачи можно использовать алгоритм “Сортировка слиянием”.
    Процесс можно разделить на 3 этапа.

    Этап 0
    Любым удобным вам способом создаем исходный файл с числами размером 100 МБ.

    Этап 1
    Исходный файл с числами необходимо разбить на несколько файлов поменьше, предварительно отсортировав их независимо друг от друга.

    Этап 2
    Необходимо создать механизм чтения чисел сразу из нескольких файлов (потоков).
    Читать данные из потоков следует по принципу pause/resume.

    Этап 3
    Необходимо создать цикл, который будет работать с данными сразу из всех потоков.
    Такой цикл будет прерван только тогда, когда будут полностью прочитаны все файлы.
    В цикле следует искать наименьшее значение и записывать его в итоговый файл.
    1 итерация = 1 число

    Для проверки решения, скрипт необходимо запустить командой
    $ node --max-old-space-size=50 script.js
    Тема 4: Web-сервер на JavaScript - Стек MEAN - Express - MongoDB
    Участники смогут:
    - Создавать простые приложения с использованием библиотеки Express, а также базы данных MongoDB
    21 ноября, 20:00 — 21:30
    Тема 5: Построение Rest API
    Участники смогут:
    - Понимать и добавлять общие стандарты создания API
    25 ноября, 20:00 — 21:30
    Тема 6: GraphQL Server
    28 ноября, 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` документов.

    Приложение должно содержать тесты для всех точек доступа.
    Тема 7: WebAssembly
    - Понимать и использовать технологию WebAssembly
    - Понимать архитектуру JavaScript движка на примере V8
    - Подведем резюме использования Node
    2 декабря, 20:00 — 21:30
    Vue
    В этом модуле мы сосредоточимся на Vue - современном и популярном FrontEnd фреймворке. Мы рассмотрим особенности шаблонизации и создания динамических приложений на Vue. Разберем возможности и жизненный цикл компонент, хранения состояния. Изучим инструменты Vuex и Vue CLI. Будем настраивать и оптимизировать сборку приложений с Server-Side Rendering.
    Тема 1: Основы Vue
    - Настроить себе окружение IDE, зависимости и библиотеки для создания проектов и работы с Vue
    - Создавать простейшие приложения используя Vue
    5 декабря, 20:00 — 21:30
    Тема 2: Компоненты, шаблонизатор и формы
    Участники смогут
    - Понимать синтаксис шаблонизаторы
    - Создавать компоненты, описывать атрибуты элементов
    9 декабря, 20:00 — 21:30
    Домашние задания: 1
    1 Структура приложения "Устный счет"
    В разделе Vue одна большая самостоятельная работа - SPA (Single Page Application) игра "Устный счет".
    Игра состоит из двух экранов - на первом экране пользователь выбирает настройки, которые будут использовать в игре - типы вычислений, сложность, время раунда.
    На этой же странице показывается статистика тренировок.
    Вторая страница - сама игра.
    Пользователь должен решить максимальное количество задач на заданное время.
    Мокапы - https://app.moqups.com/korzio@gmail.com/bTYyBLCtpU/edit/page/ad64222d5

    ---

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

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

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

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

    ---

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

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

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

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

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

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

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

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

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

    • Elements Dashboard — магазин web-компонент. Разработка выполняется с помощью одной из стандартных библиотек JavaScript. В приложении можно видеть рейтинг, демонстрацию и документацию зарегистрированных элементов.
    Прошедшие открытые вебинары по курсу
    Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
    Особенности работы с WebAssembly
    Александр Коржиков
    День открытых дверей
    19 июня в 20:00
    Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
    Возможность пройти вступительное тестирование повторно появится только через 2 недели
    Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
    Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
    Пройти вступительное тестирование
    После обучения вы

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

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

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

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

    Дата выдачи сертификата: 1 апреля 2020 года
    Ваш сертификат

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «Fullstack разработчик JavaScript»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018г.

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «Fullstack разработчик JavaScript»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018г.
    Общая стоимость
    60 000 ₽ 50 000 ₽
    В месяц: 15 000 ₽ 13 100 ₽
    В кредит: ₽ в месяц
    Продолжительность
    5 месяцев
    Начало занятий
    26 сентября