Курсы Node JS
Кому подойдёт этот курс
- Frontend-разработчикам
- Вы расширите круг своих компетенций, научитесь разрабатывать и клиентскую, и серверную часть кода — сможете самостоятельно создавать веб-серверные приложения, которые работают в режиме реального времени.
- Backend-разработчикам
- Вы освоите Node.js и научитесь писать backend на JavaScript — разберётесь во взаимодействии серверной и клиентской частей кода и станете более востребованным специалистом.
Чему вы научитесь
- Создавать веб-серверные приложения и CLI-утилиты
- Работать с менеджером пакетов npm
- Работать с шаблонами HTML
- Работать с REST API
- Использовать популярные модули Node.js
- Использовать инструменты разработчика для написания, контроля качества, тестирования и отладки кода
- Использовать базы данных PostgreSQL и MongoDB
- Развёртывать проект вручную и в автоматизированных системах
- Работать с HTTP
Содержание курса
- Подготовка рабочей среды
- Познакомитесь с терминалом, Git, VSCode, установите и настроите рабочую среду на Windows, Linux или macOS.
- Hello, world!
- Создадите свою первую программу на Node.js, узнаете о конфигурационном файле package.json и установке зависимостей, научитесь пользоваться специальным шаблоном для быстрого старта проекта.
- Решаем базовые задачи
- Узнаете, как работать с файловой системой, создавать веб-сервер и обрабатывать HTTP-запросы, посылать запросы к сторонним сервисам. Изучите полезные встроенные и сторонние модули.
- Асинхронный код
- Поймете, что такое асинхронность и почему она важна, изучите основные подходы к организации асинхронного кода (callbacks, Promises, async/await), узнаете про библиотеку Bluebird.
- Express.js
- Познакомитесь с популярным веб-фреймворком Express.js. Научитесь работать с рендерингом HTML, REST API, загрузкой файлов, авторизацией и аутентификацией.
- Реляционные базы данных
- Изучите работу с реляционными базами данных на примере PostgreSQL.
- Нереляционные базы данных
- Изучите работу с нереляционными базами, их особенности и применение. Научитесь работать с MongoDB.
- CLI (Command Line Interface) программы
- Научитесь создавать CLI-утилиты с помощью Node.js.
- Углубляем теорию
- Изучите продвинутые темы: жизненный цикл процесса, event loop, работа с Buffer, streams, генераторы и итераторы, HTTPS.
- Real-time & WebSockets
- Узнаете, что такое real-time приложения, какие есть подходы к их реализации. Научитесь работать с протоколом WebSocket.
- Pro tips
- Получите полезные практические советы и инструменты для эффективной отладки, тестирования, развёртывания проекта.
- Дипломный проект. Сервис личных заметок
- Вы создадите серверную часть для сервиса личных заметок. Реализуете авторизацию, REST API, взаимодействие с базой данных — и развернёте проект на хостинге.
Что вы будете уметь после обучения
- Верстать сайты в HTML и CSS
- Разрабатывать клиентскую часть сайта на React
- Программировать на языках JavaScript и TypeScript
- Работать с базами данных с использованием MongoDB
- Создавать серверную часть на Node.js, Express.js, Nest.js
- Работать с API сторонних сервисов и проводить Unit-тестирование
Программа курса
Часть 1. Frontend-разработка
- Вёрстка сайта на HTML и CSS
- Адаптивная и мобильная вёрстка
- Курсовой проект — адаптивная вёрстка сайта
- Основы программирования на JavaScript
- Система контроля версий Git
- Основы работы с JavaScript
- Курсовой проект — веб-менеджер личных финансов
- Разработка на JavaScript в браузере
- Профессиональная работа с JavaScript
- Frontend-разработка на React
- Курсовой проект — агрегатор отелей: frontend
Часть 2. Backend-разработка
- Введение в Node.js
- Библиотека Express.js
- Курсовой проект — приложение для доставки
- TypeScript
- js
- Firebase
- Карьера в fullstack-разработке
Дипломный проект.
Сайт-агрегатор для просмотра и бронирования отелей
В конце обучения вы создадите сайт-агрегатор для просмотра и бронирования отелей. Для выполнения итоговой работы разработаете публичный API, API пользователя, API администратора и чат для консультанта. В проекте вы задействуете технологии Node.js, Nest.js, MongoDB и Websocket.
Кому будет полезен курс
- Новичкам в программировании
Если у вас нет технического образования и опыта программирования, курс поможет быстро начать карьеру в IT. Вы изучите простой и популярный язык программирования — JavaScript. Это позволит вам быстро разобраться в программировании и найти работу, даже не имея опыта - Начинающим разработчикам
Вы углубите имеющиеся знания и ускорите карьерный рост. Комплексная программа и опыт работы с продвинутыми инструментами, фреймворками, методологиями и стандартами позволят уверенно себя чувствовать даже программистам, имеющим небольшой опыт работы - Frontend- и backend-разработчикам
Сможете добрать недостающие знания и стать fullstack-разработчиком. Умение разрабатывать клиентскую и серверную части проекта позволит вам работать со сложными, комплексными проектами и увеличить свою стоимость как специалиста
Ключевые навыки
- Вёрстка сайтов в HTML и CSS
- Frontend-разработка на JavaScript и React
- Использование библиотек React Router, Redux и Redux Thunk
- Работа с изменениями кода проекта с помощью Git и GitHub
- Программирование на языках JavaScript и TypeScript
- Backend-разработка на js: Express.js, Nest.js
- Применение принципов клиент-серверного взаимодействия
- Работа с API сторонних сервисов
- Работа с базами данных с ипользованием MongoBD
- Работа с облачной базой данных с помощью Google Firebase
- Автоматизация развёртывания и управления приложениями с помощью Docker
- Unit-тестирование при помощи Jest
Если знакомы с JavaScript, курс поможет вам
- Стать fullstack-разработчиком
- Добавите к знаниям frontend-разработки навыки backend, не изучая второй язык, а освоив только одну технологию.
- Перейти на middle-уровень
- Изучите новые технологии, расширите стек навыков и сможете стать middle-разработчиком.
- Больше зарабатывать
- Сможете работать с более сложными проектами и претендовать на вакансии с большей зарплатой.
Программа курса
Введение в Node.js
Вы познакомитесь с рабочей средой Node.js и инструментами разработки. По итогам модуля вы создадите консольное приложение для обработки файлов с помощью потоков.
- Особенности работы с Node.js, установка и настройка рабочей среды
- Менеджер пакетов
- Работа с консолью, циклы событий, асинхронность
- Модули Node.js и инструменты разработки
- Стримы (потоки)
- js HTTP-module. HTTP-stream. Встроенный низкоуровневый веб-сервер
Библиотека Express.js
Познакомитесь с библиотекой Express.js, развернёте приложение на сервере, освоите Docker, подключите базу данных MongoDB для хранения данных и Passport.js для аутентификации пользователей, настроите обмен данными между клиентом и сервером — с этим помогут websocket и socket.io.
- Библиотеки Node.js для веб-разработки. Express.js
- Паттерн «цепочка обязанностей»
- Шаблонизаторы. Отрисовка контента (рендер на сервере). Библиотеки Express.js
- Развёртывание приложения на сервере (heroku)
- Docker, установка и настройка. Контейнеризация приложения
- Сравнение реляционных и объектно-ориентированных БД
- Запуск локальной MongoDB в Docker. Подключение MongoDB в Тode.js-приложение
- Аутентификация. Passport.js
- Realtime взаимодействие с сервером, протокол websocket. Библиотеки ws и socket.io
Приложение для доставки
Вы создадите сайт доставки и чат для общения двух людей. Для создания сайта вы разработаете API для аутентификации, управления и просмотра объявлений и websocket-чат. В проекте вы задействуете технологии Node.js, Express.js, Passport.js, MongoDB и Websocket.
TypeScript
Вы освоите статическую типизацию для js кода с помощью TypeScript. На практике будете использовать богатую систему типов, декораторы, enum-ы и другие возможности языка TypeScript. Научитесь настраивать проект с помощью tsconfig.json, использовать eslint для проверки стиля и качества ts-кода. Воспользуетесь всеми возможностями TypeScript для написания надёжных приложений на Node.js.
- js и TypeScript (настройка окружения, возможности)
- Динамическая типизация JavaScript vs статическая типизация TypeScript. Инструментарий tsc, tslint/eslint. Настройка проекта
- Система типов TypeScript. Основные принципы ООП. SOLID
- Библиотека Reflect-metadata. Loc-контейнеры: type-di, inversify
- Перенос и интеграция JS-проекта на примере пройденных материалов
- Организация проекта и кодовой базы. Разделение приложения на слои
Nest.js
Вы изучите фреймворк Nest.js и основные понятия, создадите проект на Node.js, реализуете функциональность из блока TypeScript на модули Nest.js, подключите базы данных (модуль для MongoDB). Научитесь подключать аутентификацию по модулям Nest.js и добавите тестирование кода в свой проект.
- Основные понятия: модули, контроллеры, сервисы. MVC-архитектура
- Погружение в Nest.js: инверсия зависимостей, провайдеры, Middleware
- Подключение базы данных к Nest.js — модулю для MongoDB. Сервисы, репозитории, примеры
- Потоки RxJs
- Валидация и обработка ошибок. Interceptors, pipes
- Аутентификация в Nest.js, Passport.js. Guards
- Тестирование. Библиотека JEST. Unit-тесты, интеграционные и приёмочные тесты
- Вебсокеты в Nest.js
Firebase
Cоздадите аккаунт firebase, внедрите функциональность проекта «Книги» на cloud-функции и подключите облачную базу данных для хранения данных из cloud-функций.
- Cloud Firestore, Realtime Database
- Cloud Functions, Hosting
- Firebase Authentication
Итоговый проект — агрегатор отелей
В конце обучения вы создадите сайт-агрегатор для просмотра и бронирования отелей. Для этого вы разработаете публичный API, API пользователя, API администратора и чат для консультанта. В проекте вы задействуете технологии Node.js, Nest.js, MongoDB и Websocket.
Ключевые навыки
Что умею делать
- Работать с инструментами разработки Node.js
- Использовать библиотеки и фреймворки Node.js: Express.js, Nest.js
- Писать на TypeScript и использовать инструменты tsc, tslint/eslint
- Подключать и использовать в проекте базы данных (MongoDB)
- Настраивать обмен данными между клиентом и сервером (WebSocket)
- Работать с ПО для автоматизации развёртывания и управления приложениями (Docker)
- Настраивать аутентификацию с помощью Passport.js
- Писать unit-тесты
- Использовать Google Firebase
Кому подойдет курс
- Новичкам
- Поможем с нуля освоить профессию fullstack-разработчика: вы научитесь делать сайты, высоконагруженные сервисы и приложения.
- Начинающим веб-разработчикам
- Освоите полный цикл создания сайтов и приложений. После обучения сможете перейти на позицию fullstack-разработчика и делать высоконагруженные сервисы под ключ на фрилансе.
- Практикующим IT-специалистам
- Подскажем, как перейти в востребованное направление и зарабатывать больше.
Программа курса
Подготовительный блок
- Как учиться эффективно. Видеокурс от методистов GeekUniversity
- Основы программирования. Видеокурс
- Базовый курс
Frontend-разработка
- HTML/CSS. Интерактивный курс
- Уровень 1
- Продвинутый курс JavaScript
- Базовый курс
Бэкенд-разработка на JavaScript
В этой четверти студенты научатся использовать большинство возможностей, предоставляемых языком.Смогут создавать backend-приложения, которые будут генерировать HTML на бэкэнде, используя данные из базы данных. Заодно будут изучены: базовые принципы сетевых протоколов, особенности HTTP-протокола, базовая структура HTML.
- Рабочая станция
- js
- Базы данных
- Сетевой протокол HTTP
Фуллстек-разработка
Самый большой и самый технически сложный блок, после которого студенты уже смогут самостоятельно решать задачи средней сложности.
- TypeScript
- Разработка сайтов с использованием Nest.js
- Разработка высоконагруженных бэкэнд-приложений
Soft skillsРасскажем о том, как взаимодействовать с командой и проходить собеседования.
- Agile, Scrum. Теория
- Выпускной проект
- Подготовка к собеседованию
Курсы вне четверти
- Разработка десктопных приложений на Electron.js
- Разработка кроссплатформенных приложений на React Native
- Алгоритмы и структуры данных
- Подготовка к поиску работы
Ключевые навыки
Frontend:
— Разработка frontend-приложений на React
— Семантическая верстка HTML5 + CSS3
— React для SPA
— Redux + Redux-Saga / Redux Observable
— Styled-components, makeStyles, SASS
Backend:
— Разработка backend-приложений на Node.js
— JavaScript и TypeScript
— Express.js, Nest.js
— PostgreSQL, TypeORM, Memcached, MongoDB, Redis
— Cluster, Worker
Дополнительная информация:
— Знаю функциональное и объектно-ориентированное программирование
— Умеют работать с командной строкой Linux
— Есть опыт разработки desktop-решения на базе Electron.js
— Есть опыт разработки мобильного приложения на React Native
Чему Вы научитесь
- Инициализация проекта на Node.js
- Управление зависимостями проекта при помощи npm
- Внутреннее устройство Node.js
- Что такое “цикл событий” и зачем он нужен
- Порядок выполнения операций в цикле событий
- Функции setTimeout/setInterval/setImmediate
- Что такое события
- Как события применяются в Node.js
- Стандартный модуль Events и его базовый функционал
- Навыки записи и чтения файлов различными способами - синхронным, асинхронным, через потоки
- Стандартный модуль Stream и его базовый функционал
- Навыки создания консольных приложений - ввод данных, элементы графического интерфейса, создание исполняемых файлов
- Создание http-сервера на Node.js, базовые знания о маршрутизации http-запросов
- Масштабирование веб-сервера при помощи модуля Cluster
- Отличие вебсокетов от http-запросов, базовые навыки работы с библиотекой Socket.io
- Применение модуля worker_threads для выполнения ресурсоемких вычислений.
Программа курса
Урок 1. Введение в Node.js. Управление зависимостями
Cтуденты после урока будут понимать, что такое Node.js, зачем он нужен, будут уметь инициализировать проект, узнают, что такое npm, а также выведут Hello World в консоль двумя разными способами.
Урок 2. Цикл событий. События в Node.js
Вы поймете, как работает Node.js, что такое асинхронные операции и в каком порядке они выполняются. Зачем нужен стандартный модуль Events, какие функции он выполняет. Зачем, когда и как использовать “события”.
Урок 3. Работа с файловой системой. Класс Buffer. Модуль Streams
Мы изучим, что такое кодировка файла, познакомимся со стандартным модулем Node.js для работы с файловой системой. Научится читать, преобразовывать и записывать данные. Узнаем, что такое Buffer в Node.js и где его можно встретить. Изучим, что такое потоки в Node.js, узнаем о 4-х типах потоков, познакомимся с потоковым чтением и записью данных.
Урок 4. CLI-приложения
Узнаем, как создавать консольные приложения при помощи Node.js и создадим своё первое консольное приложение. Познакомимся с базовыми понятиями, вводом данных, научимся добавлять в приложение элементы графического интерфейса и создавать из программы исполняемый файл, способный запускаться и работать из любой директории.
Урок 5. HTTP-cервер на Node.js
Изучим, что такое http-сервер, чем GET-запрос отличается от POST-запроса, как обработать эти запросы и как при помощи Node.js показать html-страницу. А также узнаем, что такое кластеризация, как и зачем применяется стандартный модуль Cluster в Node.js. Подключим этот модуль в свою программу и на практике посмотрим на одну из форм горизонтального масштабирования Node.js сервиса
Урок 6. Библиотека Socket.io. Workers в Node.js
Изучим, что такое веб-сокеты, как организовать получение данных от сервиса в режиме реального времени, изучим базовый функционал библиотеки Socket.IO. Познакомимся со стандартным модулем worker_threads и научимся выносить ресурсоемкие вычисления в отдельный поток, чтобы не блокировать основной