Программа курса
Часть 1. Frontend-разработка
Вёрстка сайта на HTML и CSS
Вы научитесь верстать сайты на HTML и CSS, а также вносить изменения в существующую вёрстку. По итогам этого модуля самостоятельно сверстаете лендинг.
8 часов теории
8 часов практики
Теги для вёрстки контента страницы
Теги для вёрстки структуры страницы
Селекторы CSS
Определение контекста элементов
Блочная модель
Позиционирование элементов
Оформление текста
Оформление декоративных элементов
Состояние интерактивных элементов
Адаптивная и мобильная вёрстка (Курсовой проект — адаптивная вёрстка сайта)
Научитесь создавать вёрстку под любой тип устройств — компьютер, планшет, смартфон. Это позволит вашему сайту быть адаптивным и корректно работать на любых устройствах.
5 часов теории
39 часов практики
Вёрстка резинового макета
Введение в медиазапросы
Медиа-функции
Вёрстка адаптивного макета
Breakpoints
Основы программирования на JavaScript
Познакомитесь с азами программирования, напишете первые строки кода и создадите простые проекты. Для практики будете использовать язык JavaScript — это поможет вам лучше понять работу frontend-части приложения.
8 часов теории
24 часа практики
Алгоритмы
Переменные, числа и строки
Логика и математика
Ветвление кода
Алгоритм с множественным выбором
Ошибки в коде
Массивы
Циклы
Подпрограмма, функция
Объекты
Синхронное и асинхронное выполнение алгоритма
Система контроля версий Git
Каждый разработчик должен знать основы работы с системой Git — на данный момент это практически стандарт по управлению исходным кодом. За три занятия вы научитесь работать с этой системой и с сервисом GitHub, сможете публиковать свои домашние работы и уже в процессе обучения сформируете первое портфолио.
4 часа теории
9 часа практики
Предназначение системы контроля версий
Основные операции: фиксация и откат изменений, поиск, история
Работа с сервисом GitHub
Ветки, слияние веток и разрешение конфликтов
Командная работа
Основы работы с JavaScript (Курсовой проект — веб-менеджер личных финансов)
Глубже погрузитесь в JavaScript — один из самых популярных и гибких языков программирования. Начнёте с азов синтаксиса и узнаете, что такое ООП, исключения, замыкания, асинхронность.
9 часов теории
51 час практики
Базовый синтаксис
Расширенный синтаксис в JavaScript
Типы данных
Функции и объекты
Прототип и конструктор объекта
ООП в JavaScript (ES6)
Обработка исключений и замыкания
Прототип массива, функции высшего порядка
Асинхронность
Разработка на JavaScript в браузере
Узнаете о дополнительных возможностях, которые даёт браузер — Web API. Подключите скрипт к HTML-документу и получите к нему доступ, чтобы сделать документ «живым»: изменять его и реагировать на действия пользователя.
8 часов теории
24 часа практики
Возможности JavaScript в браузере
Способы поиска нужного HTML-элемента
Объект события
DOM — Document object model
Работа с HTML-формами
Изменение структуры HTML-документа
Асинхронные запросы
Хранение состояния на клиенте и отправка на сервер
Профессиональная работа с JavaScript
Научитесь работать с современным инструментом для организации рабочего окружения (npm, webpack) и разберётесь с наиболее сложными разделами языка: прототипной моделью, promises и асинхронными программированием — async/await. Всё это позволит вам выйти на новый уровень в сфере веб-разработки.
9 часов теории
27 часов практики
Стандарты и версии
Рабочее окружение
Модули
Unit-тестирование
Синтаксические конструкции (try-catch, delete), функции и замыкания
Свойства объекта, for-in, обёртки для примитивов
Прототипы, конструкторы
Классы, наследование
Контейнеры
Объект Math, класс RegExp, ArrayBuffer
Promises, async/await
Символы, итераторы, генераторы
Frontend-разработка на React (Курсовой проект — агрегатор отелей: frontend)
Освоите одну из самых популярных библиотек на JavaScript — React. С помощью неё вы сможете создавать интерактивные пользовательские интерфейсы. Вам достаточно описать, как части интерфейса приложения выглядят в разных состояниях, а React будет своевременно их обновлять, когда данные изменяются. Вы сможете создавать инкапсулированные компоненты с собственным состоянием, а затем объединять их в сложные пользовательские интерфейсы.
13 часов теории
76 часов практики
Компоненты
События и состояния
Props
Формы
Композиция компонентов
Жизненный цикл и работа с HTTP
HOC
Hooks, Context API
React Router
Redux
Redux и Redux Thunk
Redux Saga
Часть 2. Backend-разработка
Введение в Node.js
Познакомитесь с рабочей средой Node.js и инструментами разработки. По итогам модуля вы создадите консольное приложение для обработки файлов с помощью потоков.
5 часов теории
20 часа практики
Особенности работы с Node.js, установка и настройка рабочей среды
Менеджер пакетов, IO libuv
Работа с консолью, циклы событий, асинхронность
Модули Node.js и инструменты разработки
Стримы (потоки)
Node.js HTTP-module. HTTP-stream. Встроенный низкоуровневый веб-сервер
Библиотека Express.js (Курсовой проект — приложение для доставки)
Познакомитесь с библиотекой Express.js, развернёте приложение на сервере, освоите Docker, подключите базу данных MongoDB для хранения данных и passport.js для аутентификации пользователей, настроите обмен данными между клиентом и сервером — с этим помогут websocket и socket.io.
8 часов теории
56 часов практики
Библиотеки Node.js для веб-разработки. Express.js
Middleware. Паттерн «Цепочка обязанностей»
Шаблонизаторы. Отрисовка контента (рендер на сервере). Библиотеки ejs
Развертывание приложения на сервере (heroku)
Docker, установка и настройка. Контейнеризация приложения. Развертывание через Docker
Что такое база данных, хранение данных. Сравнение реляционных и объектных БД
Запуск локальной MongoDB в Docker. Подключение MongoDB в Тode.js приложение. Установка библиотек и настройка соединения. Знакомство с библиотекой Mongoose
Аутентификация. PassportJS
Realtime взаимодействие с сервером, протокол websocket. Библиотеки WS и socket.io
TypeScript
Изучите принципы ООП для TypeScript, установите и настроите TypeScript в проекте. Добавите в проект правила проверки кода eslint и типы из модуля библиотеки Node.js.
5 часов теории
20 часов практики
Node.js и TypeScript: настройка окружения, возможности
Динамическая типизация JavaScript vs статическая типизация TypeScript. Инструментарий tsc, tslint/eslint. Настройка проекта
Система типов TypeScript. Основные принципы ООП. SOLID
Библиотека reflect-metadata. LoC-контейнеры — type-di, inversify
TS: перенос и интеграция JS-проекта на примере пройденных материалов
Организация проекта и кодовой базы. Разделение приложения на слои: инфраструктура, внешнее API, сервисы с логикой, работа с базой данных
Nest.js
Изучите фреймворк Nest.js и основные понятия. Создадите проект на Node.js, реализуете функциональность из блока TypeScript на модули Nest.js, подключите базы данных (модуль для MongoDB). Научитесь подключать аутентификацию по модулям Nest.js и добавите тестирование кода в свой проект.
8 часов теории
32 часа практики
Фреймворк Nest.js. Создание проекта Nest.js. Основные понятия: модули, контроллеры, сервисы. MVC-архитектура
Погружение в Nest.js: инверсия зависимостей, провайдеры, Middleware
Подключение базы данных к Nest.js — модуль для MongoDB. Сервисы, репозитории, примеры
Потоки RxJs
Валидация и обработка ошибок. Interceptors, pipes
Аутентификация в Nest.js, passportjs. Guards
Тестирование. Библиотека Jest. Unit-тесты, интеграционные и приёмочные тесты
Вебсокеты в Nest.js
Firebase
Вы создадите аккаунт firebase, внедрите функциональность проекта «Книги» на cloud-функции и подключите облачную базу данных для хранения данных из cloud-функций.
3 часов теории
12 часа практики
Cloud Firestore, Realtime Database
Cloud Functions, Hosting
Firebase Authentication
Дипломный проект
Сайт-агрегатор для просмотра и бронирования отелей
В конце обучения вы создадите сайт-агрегатор для просмотра и бронирования отелей. Для выполнения итоговой работы разработаете публичный API, API пользователя, API администратора и чат для консультанта. В проекте вы задействуете технологии Node.js, Nest.js, MongoDB и Websocket.