Разработчик Node.js | OTUS
Время ограничено!
Дополнительные скидки – только до 27 января. Торопитесь! Подробности в чате.
Подробнее

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65

Разработчик Node.js

Разработка серверных приложений на Node.js с использованием Express, TypeScript, GraphQl, Apollo и Nest.js.
Подойдет ли мне этот курс?

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

4 месяца

Начало

31 марта

Занятия

Пт 20:00, Вт 20:00

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

45 000 ₽

В месяц

14 000 ₽

В кредит:

14000 ₽ в месяц

Хочу дешевле
Общая стоимость
45 000 ₽
В месяц: 14 000 ₽
В кредит: 45000 ₽
в месяц
Продолжительность
4 месяца, 4 академ. часа в неделю
Пт 20:00, Вт 20:00
Начало занятий
31 марта
Что даст вам этот курс

Курс рассчитан на frontend-разработчиков или backend-разработчиков со знанием Javascript.

За 4 месяца вы научитесь:

  • разрабатывать бэкенд любой сложности на Node.js с использованием Express, Passport, Jest, GtaphQL, Next.js;

  • работать с базами данных MongoDB и PostgreSQL;

  • использовать и настраивать CI/CD для своего проекта;

  • конфигурировать приложения для production и деплоить на сервер;

  • работать с Web Sockets (Socket.IO);

  • писать понятный и чистый код на TypeScript.


  • Также вы получите:

    • глубокое понимание архитектуры и дизайна Node.js, V8;

    • навыки разработки с TDD;

    • понимание и опыт использования TypeScript;

    • практические навыки создания GraphQl-сервера с Apollo;

    • опыт создания Real-time и CLI-приложений.

TypeScript в Node.js для server-side приложений, 11 февраля в 20:00
Рассмотрим, как использовать TypeScript в Node.js. Изучим, как работает ts-node и другие технологии. Обсудим движок Deno — новый Node.js с TypeScript.
Ведет
Александр
Коржиков
NodeJS: Быстрый старт, 10 марта в 20:00
На вебинаре мы рассмотрим сильные и слабые стороны Node. Для каких задач он подходит лучше всего, а для каких лучше выбрать другие языки и фреймворки. Также мы решим небольшую прикладную задачу с использование Node.

Node.js — это асинхронная среда исполнения JavaScript, в основе которой находятся такие понятия как «Event Loop» и событийно-ориентированная архитектура. Платформа Node.js и стандартный пакетный менеджер NPM позволяет создавать эффективные приложения для различных предметных областей — от Web и до Machine Learning.

Для запуска примеров и программ нужно установить Node.js https://nodejs.org/en/download/.
Александр
Коржиков
Преподаватели
Александр Коржиков
Dev IT Engineer ING Group (Нидерланды)
Юрий Дворжецкий
Luxoft Training Center
Опытный программист, Senior Web Developer, тимлид, ментор и автор технических статей по JavaScript. Специалист по Front End, программирует на JavaScript, начиная с 2010 года.

Работал в компаниях Tinkoff Bank (Москва), «Альпари», Comindware, Backbase (Амстердам) и других. С 2017 года — Dev IT Engineer в международной финансовой корпорации ING Group (Нидерланды). Занимается проектированием и поддержкой процессов web-разработки.

Среди реализованных проектов — JSON Schema Validator Library (самая быстрая JavaScript-библиотека для проверки объектов на соответствие определениям JSON).

Образование: степень магистра в Московском государственном университете им. М. В. Ломоносова (факультет вычислительной математики и кибернетики, кафедра автоматизации научных исследований).

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

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

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

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

Преподаватель
Александр
Коржиков
Юрий
Дворжецкий
Преподаватели
Александр Коржиков
Dev IT Engineer ING Group (Нидерланды)
Опытный программист, Senior Web Developer, тимлид, ментор и автор технических статей по JavaScript. Специалист по Front End, программирует на JavaScript, начиная с 2010 года.

Работал в компаниях Tinkoff Bank (Москва), «Альпари», Comindware, Backbase (Амстердам) и других. С 2017 года — Dev IT Engineer в международной финансовой корпорации ING Group (Нидерланды). Занимается проектированием и поддержкой процессов web-разработки.

Среди реализованных проектов — JSON Schema Validator Library (самая быстрая JavaScript-библиотека для проверки объектов на соответствие определениям JSON).

Образование: степень магистра в Московском государственном университете им. М. В. Ломоносова (факультет вычислительной математики и кибернетики, кафедра автоматизации научных исследований).

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

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

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

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

Преподаватель
Необходимые знания
  • Знание основ JavaScript
  • Основы работы браузера и браузерного API
  • Знание HTML и CSS
  • Базовые навыки работы с Git
Подготовительный курс

  • Курс по Frontend-разработке на Javascript для начинающих программистов

  • Занятия в формате видео и проверочные тесты

  • Подготовка к курсам "Fullstack разработчик Javascript", "React.js-разработчик" и "Node.js-разработчик"

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

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

Домашнее задание выдается в среднем одно в неделю.
Программа обучения
Модуль 1
Особенности Node.js
Модуль 2
Web Server с Express
Модуль 3
Node.js на Prod
Модуль 4
Nest.js, TypeScript, GraphQL, Apollo
Модуль 5
Проектная работа
Особенности Node.js
Обзор особенностей, возможностей и инфраструктуры Node.js, а также системы модулей.

Тема 1: Введение в Node и NPM
- Обзор и Установка Окружения Node.js
- Конфигурация VSCode Debug
- Архитектура (V8, libuv)
- Пример Hello World
- Обзор Стандартной Библиотеки
- Использование NPM
- package.json
- scripts
31 марта, 20:00 — 21:30
Домашние задания: 1
1 Создание NPM пакета для показа дерева
Цель: Написать функцию для показа древовидной структуры.
Тема 2: Система Модулей Node.js
- Зависимости NPM
- Обзор Шаблона Проектирования Module
- Классическая Реализация
- AMD
- CommonJS
- EcmaScript Modules
- Введение в CLI с Node.js
- package.json, bin, shebang
7 апреля, 20:00 — 21:30
Домашние задания: 1
1 CLI-утилита для работы с файловой системой
Цель: Написать утилиту tree для удобного показа структуры файлов директории. Утилита должна принимать на вход обязательный аргумент — путь до директории для показа ее структуры. Также она должна понимать опцию глубину показа --depth, -d с числом в качестве значения.
Тема 3: Events, Timers, Event Loop
- eventEmitter API
- Using Events
- Event Loop, libuv
- Timers
- setTimeout, setInverval
- setImmediate
- process.nextTick
10 апреля, 20:00 — 21:30
Тема 4: Тестирование в Node.js
- Введение в TDD
- Фреймворк Тестирования Jest
Обзор
- Tests, Assertions
Setup, Teardown
Asynchronous Code
Mocks, Stubs
14 апреля, 20:00 — 21:30
Домашние задания: 1
1 Тестирование приложения tree
Цель: Конфигурация проекта для тестирования утилиты tree из предыдущих заданий. Добиться code coverage 95 %. Можно использовать пакет для моков файловой системы.
Тема 5: HTTPS Server
- TCP/IP, Addresses, Ports
HTTP(s) Protocols
Сертификаты
Cookies, Headers & Body
HTTP2, HTTP3
- Использование fs, http
Обновление приложения при изменении файлов
Инструменты nodemon, concurrently
Пример файлового HTTPs Server
- Streams API
Отправляем файлы через потоки
17 апреля, 20:00 — 21:30
Web Server с Express
Глубоко изучим особенности фреймворка Express. Сделаем полноценное приложение-платформу с функционалом REST API, авторизацией и сессиями. Будем работать с MongoDB.

Тема 1: Web Servers
hello Express!
Express-Generator
Концепции
Request & Response
Простой HTML- и JSON-сервер
Сервим ассеты — CSS, JS, Images
Введение в Routing
Обзор Web Servers
Express, Koa, Fastify, Restify, Next.js, Loopback, Meteor
21 апреля, 20:00 — 21:30
Тема 2: Особенности Express
middlewares
Парсеры Body & Cookie
Шаблонизация
Различные Template Engines
404
Внутреннее устройство Express
Как сделать web framework на Node.js
24 апреля, 20:00 — 21:30
Домашние задания: 1
1 Создание Express-приложения
Цель: Генерация сертификатов. Выбор шаблона, шаблонизатора. Конфигурация проекта.
Тема 3: Введение в MongoDB
обзор типов Databases
NoSQL
MongoDB
Стэк MEAN
Операции CRUD
Aggregation Фреймворк
28 апреля, 20:00 — 21:30
Тема 4: REST API с MongoDB
mongoose
Работаем с моделями
Routes и Express
REST
Реализуем GET, POST, PUT, DELETE
1 мая, 20:00 — 21:30
Домашние задания: 1
1 Создание REST API для управления сущностями приложения
Цель: Оживление шаблонов сайта с данными из MongoDB.
Тема 5: Аутентификация и Безопасность
аутентификация и авторизация
OAuth
Библиотека passport
Сессии и куки
Express Middlewares авторизационные сервисы
Helmet
Login & Регистрация
Хранение паролей
Хэширование, сброс
JSON Web Tokens
Создание Tokens
Защищенные URLs
5 мая, 20:00 — 21:30
Домашние задания: 1
1 Авторизация пользователей
Цель: Добавление авторизации при доступе к API. Добавление методов защиты от попыток авторизации.
Тема 6: Другие Особенности Web Server
валидация эндпоинтов
Отправка и хранение файлов
Отправка Emails
Пагинация и фильтры
8 мая, 20:00 — 21:30
Тема 7: Real-Time Web Приложения с сокетами
протокол Sockets
Web Sockets
Библиотека Socket.io
События, Возможность броадкастинга
Каналы
Создание приложения чата
12 мая, 20:00 — 21:30
Домашние задания: 1
1 Чат с посетителями сайта
Цель: Отправка email пользователю при регистрации.
Node.js на Prod
Научимся деплоить Node.js-приложение в Heroku, правильно обрабатывать ошибки и логи. Рассмотрим особенности отладки и контроля производительности в Node.js.

Тема 1: Отладка и профилирование Node.js
ошибки и логи
Коды ошибок
Идентификация запросов
Профилирование приложений
Встроенные модули — async_hooks, perf_hooks, trace_events
15 мая, 20:00 — 21:30
Тема 2: Node.js в Production
процессы, потоки
child_process, worker_threads
Кластер
Менеджмент процессов pm2
Другие инструменты
Особенности конфигурации на проде
Пример конфигурации Nginx и Express
Измерение производительности
19 мая, 20:00 — 21:30
Домашние задания: 1
1 Подготовка приложения к Production
Цель: Использовать cluster для распараллеливания запросов. Настройка nginx и pm2 для Express-сервера.
Тема 3: Деплой приложения
cI/CD
Переменные окружения
Gitlab CI/CD
Heroku
MongoDB в облаке
Мониторинг
Prometheus
Запросы к логам
Запускаем Node.js в Docker
22 мая, 20:00 — 21:30
Домашние задания: 1
1 Настройка деплоя приложения в Heroku
Тема 4: TypeScript в Node.js
ключевые особенности TypeScript
Практические примеры
Иснтрументы tsc, tsconfig, DefinitelyTyped
Конфигурация и сборка проекта
26 мая, 20:00 — 21:30
Тема 5: Express с TypeScript
декораторы
Библиотека Ts.ED
Мигрируем Node.js на TypeScript
Отладка
29 мая, 20:00 — 21:30
Домашние задания: 1
1 Портирование Express или tree-приложения в TypeScript
Тема 6: CLI в Node.js
общие принципы
Примеры — npm, git
package.json
Создание CLI на oclif
Конфигурация проекта
Команды, плагины
Аргументы и флаги
Эффекты
2 июня, 20:00 — 21:30
Домашние задания: 1
1 Написать CLI для администрирования приложения
Цель: CLI должен уметь авторизоваться, содержать команды для просмотра списка, получения и обновления элементов.
Тема 7: Особенности архитектуры V8, WebAssembly, Node.js
native Modules
Особенности WebAssembly
Заключение
Best Practices
Мнение Ryan Dahl
Deno
5 июня, 20:00 — 21:30
Nest.js, TypeScript, GraphQL, Apollo
TypeScript-приложение на Nest.js.
Рассмотрим структуру фреймворка Nest.js, язык GraphQL и инструменты Apollo.
Создадим CMS-приложение с GraphQL API на Nest.js.
Тема 1: Начинаем с Nest.js
введение
Почему Nest.js
Hello World
Routing
Nest.js CLI
Концепции Nest.js
Dependency Injection
Контроллеры, Провайдеры, Модули
Middleware
9 июня, 20:00 — 21:30
Домашние задания: 1
1 Создание API на Nest.js
Тема 2: Работа с PostgreSQL
введение в PostgreSQL
ORM Sequelize с Nest.js
Реализация CRUD
12 июня, 20:00 — 21:30
Тема 3: Особенности Nest.js
pipes и Guards
Валидация
Interceptors
Специальные декораторы
Аутентификация
16 июня, 20:00 — 21:30
Домашние задания: 1
1 Настройка базы данных с PostgreSQL
Цель: Добавление ORM, аутентификации запросов.
Тема 4: Введение в GraphQL
почему GraphQL?
Введение и Обзор GraphQL
Сравнение с REST
Преимущества и недостатки
Schemas, Queries
Пример Github REST & GraphQL API
Создаем проект
Конфигурация GraphQL и Nest.js проекта
Инструменты
server, client
graphql, graphql-tools, graphql-compose, prisma
19 июня, 20:00 — 21:30
Тема 5: Особенности GraphQL
queries
Fields, Aliases
Variables, Directives
Subscriptions
Обновление данных с Mutations
Schemas и Типы
Типы, язык типов
Конфигурация проекта
Validation & Execution
23 июня, 20:00 — 21:30
Тема 6: Создание GraphQL API Сервера
введение в Apollo Server – Создание GraphQL APIs с Nest.js
Определение схем
Конфигурация Prisma
Конфигурация Apollo Server с Express и MongoDB
26 июня, 20:00 — 21:30
Домашние задания: 1
1 Настройка приложения и вывод данных
Тема 7: Apollo Client
конфигурация Apollo Client
Queries с клиента
Тестирование
Assertions
30 июня, 20:00 — 21:30
Тема 8: GraphQL в проде
деплой в прод
Создание и деплой Prisma-сервиса
CI/CD
Github Actions
Travis CI
Заключение
3 июля, 20:00 — 21:30
Домашние задания: 1
1 Настройка деплоя приложения в Heroku
Проектная работа
Тема 1: Вводное занятие
7 июля, 20:00 — 21:30
Тема 2: Консультация по проектам
10 июля, 20:00 — 21:30
Тема 3: Защита проектов
14 июля, 20:00 — 21:30
Домашние задания: 1
1 Проектная работа
Выпускной проект
Заключительный месяц курса посвящен проектной работе. Проект станет вашим портфолио для будущих работодателей.

Предлагаемые темы выпускного проекта:
  • образовательная платформа с возможностью смотреть и редактировать медиаконтент;

  • сервер для хранения заметок с Git;

  • ORM-фреймворк;

  • html-шаблонизатор;

  • на выбор ученика.


  • Возможные технологии для проектов — Node.js, GraphQL, Nest.js, Express.
После обучения вы

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

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

  • приобретете опыт разработки на Node.JS, а также Express, TypeScript, GraphQl, Apollo и Nest.js.;

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

Дата выдачи сертификата: 28 августа 2020 года
Ваш сертификат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
45 000 ₽
В месяц: 14 000 ₽
В кредит: ₽ в месяц
Продолжительность
4 месяца
Начало занятий
31 марта