Иконка

Веб разработчик. От Middle до Senior

Профессиональная переподготовка с присвоением квалификации, 650 ак.часов

Записаться на курс

Треугольник
Треугольник
Треугольник

Аннотация курса

Цель курса веб-программирования: подготовить квалифицированного специалиста для профессиональной работы со средствами разработки Web-сайтов, владеющего современными технологиями клиентского и серверного программирования, практикой создания интерактивных веб-сайтов, способами использования библиотек и фреймворков для автоматизации разработки Web-приложений. Веб-разработчик — это востребованная и высокооплачиваемая профессия.

Во время обучения вы сами:

  • Развернёте платформу Node.js на своём компьютере и облачном хостинге
  • Создадите клиентские сценарии для извлечения данных из удалённых ресурсов и построения элементов интерфейса пользователя
  • Создадите элементы интерфейса пользователя с помощью библиотек Vue и React
  • Развернёте микросервис на платформе Node.js
  • Создадите приложение с фронтэндом и бэкэндом на языке JavaScript

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

Профессиональные стандарты

Курс соответствует:

  • профессиональному стандарту 06.035 «Разработчик Web и мультимедийных приложений» (уровни 4-6)
  • национальному стандарту Российской Федерации ГОСТ Р 56413-2015/CWA 16458:2012 "Информационные технологии. Европейские профили профессий ИКТ-сектора", идентичный международному документу CWA 16458:2012 "Европейские профили профессий ИКТ-сектора".

Предварительные требования

  • Знание основ алгоритмизации, программирования, теории БД
  • Владение HTML и CSS

Программа курса

I. Технологии front-end разработки

  • JavaScript. Основы программирования (60 часов)Стрелка вниз
    • Тема 1. Основные понятия языка JavaScript.

      Структура программы. Файлы. Выполнение программы в разных средах: в браузере и в интерфейсе командной строки (nodejs CLI). Жизненный цикл приложения на JavaScript.

    • Тема 2. Зависимости.

      Некоторые базовые инструменты (npm, yarn, turbo, nodemon, eslint). Формат JSON. Структура и назначение файла package.json

    • Тема 3. Переменные и области видимости JavaScript.

      Типы данных. Контроль типов данных. Приведение типов. Применение Unicode в JavaScript.

    • Тема 4. Функции.

      Стандартные и стрелочные функции. Возврат значения функцией. Анонимные функции (лямбды). Модели вызова функции. Передача и привязывание аргументов. Аргументы по умолчанию.

    • Тема 5. Функция как тип данных.

      Замыкания и коллбэки. Таймер. Веб-воркеры.

    • Тема 6. Управляющие конструкции JavaScript.

      Ветвление, кейсы, циклы с предусловием и постусловием, со счётчиком и без счётчика. Тернарный оператор. Контроль ошибок (try..catch).

  • Javascript. Событийно-ориентированное программирование (110 часов)Стрелка вниз
    • Тема 1. Объектная модель документа.

      Манипулирование элементами по их селекторам (querySelector). Изменение свойств каскадных стилей. Создание элементов и фрагментов DOM (documentFragment).

    • Тема 2. События.

      Слушатели событий. Всплывание событий. Кастомные события. Создание примера приложения с коммуникацией компонентов.

    • Тема 3. Считывание информации из внешнего интернет-ресурса.

      Кросс-доменные запросы. Интерфейс fetch. Считывание и интерпретация данных в формате JSON.

    • Тема 4. Строки

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

    • Тема 5. Ссылочные типы данных. Массивы

      Итерация по массиву. Генерация непрерывного массива. Маппинг и свёртка. Синхронные коллбэки и предикаты в массивах: сортировка и фильтрация.

    • Тема 6. Создание объектов (plain JavaScript objects).

      Связь с форматом JSON. Сериализация объектов. Массивоподобные объекты. NodeCollection: новый взгляд на старую проблему. Создание объектов с помощью литерала, прототипа и класса. Энумерабельность и итерабельность.

    • Тема 7. Канвас. Динамическое рисование на холсте с помощью JavaScript.

      Создание паттернов для фонового изображения веб-страницы. Сходства и различия с манипулированием SVG-элементами.

    • Тема 8. Библиотеки

      Использование функциональности сторонних библиотек для создания пользовательского интерфейса и манипулирования данными (на примере jQuery). Библиотеки манипулирования датами (на примере Moment).

    • Тема 9. Веб-компоненты и шаблонизаторы на клиентской стороне.

      Использование Shadow DOM и веб-компонентов для расширения функциональности веб-документа. Шаблонизаторы: императивный и декларативный подход. Использование шаблонизатора на клиентской стороне (на примере Handlebars).

    • Тема 10. Подготовка и размещение итогового проекта.
  • Javascript. Технологии профессионального программирования. (130 часов)Стрелка вниз
    • Тема 1. Развитие стандарта JavaScript.

      Стандарт ECMAScript. Ecma International, Technical Committee 39 и эволюция предложений (proposals). Преобразование JavaScript-кода с помощью транспилятора babel. Плагины и пресеты. Типизация. Типизированные массивы. Понятие буфера и потока.

    • Тема 2. Модульность

      Модульность в экосистеме JavaScript/NodeJS. Импорт и экспорт в стиле CommonJS и нативная ES2015-модульность. Модули в Node.js и в браузере. Асинхронная загрузка модулей. Изоморфный JavaScript-код. Сбор проекта с помощью бандлера - на примере Webpack.

    • Тема 3. Асинхронное программирование на JavaScript

      Коллбэки и ад коллбэков. Миграция к промисам. Промисификация и асинхронные функции. Синхронное ожидание промисов (async/await). Функции-генераторы. Связь генераторов и итераторов.

    • Тема 4. Элементы функционального программирования на JavaScript

      Цепочки методов и функциональный подход к манипулированию элементами DOM. Функциональный и императивный стиль в манипулировании массивами: forEach vs for of Лямбды (безымянные функции). Функции высшего порядка. Контекст this: стандартные функции JavaScript и стрелочные функции. Иммутабельность функций. Чистые функции. Немедленно вызываемые функции (IIFE). Паттерны вызова функций и паттерны передачи аргументов (внедрение зависимостей). Рекурсия и безымянная рекурсия. Обход древовидных структур.

    • Тема 5. Элементы объектно-ориентированного программирования на JavaScript.

      Проектирование структуры предметной области. ORM - Object Relational Mapping. Геттеры и сеттеры. Объекты как коллекции свойств и пространства имён. Мутабельность объектов. Встроенные объекты. Проектирование цепочки методов. Прототипы объектов. Функции-фабрики объектов и функции-конструкторы. Классы в современном JavaScript. Конструкторы. Реализация наследования. Обращение к классу-родителю с помощью super.

    • Тема 6. Элементы метапрограммирования на JavaScript

      Рефлексия. Объект Reflect. Создание прокси и ловушек. Символы. Создание итератора с помощью символа Symbol.iterator

    • Тема 7. Проектирование модульных тестов.

      Подготовка наборов кейсов. Модульное тестирование и интеграционное тестирование. Страничное, межстраничное, логическое тестирование. Тестирование клиентского сценария. Тестирование событий, возникающих в интерактивных элементах управления. Асинхронное и промисифицированное тестирование. Тестирование с помощью автоматизации управления браузером на примере Chromium / Puppeteer.

  • Использование JavaScript-фреймворков. Реактивное программирование (40 часов)Стрелка вниз
    • Тема 1. Фреймворки и библиотеки.

      Современная экосистема фреймворков JavaScript.

    • Тема 2. React как библиотека для создания интерфейсов на основе повторно используемых компонент.

      Язык JSX. Байндинг и реактивность. Состояние. Принципы управления компонентами и их событиями. Жизненный цикл компонентов.

    • Тема 3. Фреймворк Vue.

      Встроенный шаблонизатор и система компонентов.

    • Тема 4. Фреймворк Elm.

      Разработка декларативных интерфейсов.

    • Тема 5. Создание типичного фронтэнд-приложения, работающего с серверным API (на примере плеера видеороликов или микроблога).

II. Технологии back-end разработки

  • NodeJS. Основы создания веб-приложений (60 часов)Стрелка вниз
    • Тема 1. Веб-сервер и основы его взаимодействия с клиентом.

      Протокол HTTP. Методы (глаголы): GET, POST, DELETE, PUT. Коды ответов веб-сервера. Эмуляция работы браузера с помощью клиента telnet. Основные приёмы работы с curl и приложением Postman.

    • Тема 2. Модель приложения на платформе Node.js

      Объекты Request и Response. Создание простого веб-сервера. Отдача статического контента, MIME-типы. Выдача HTTP-заголовков. CORS.

    • Тема 3. Фреймворк Express.

      Объект app. Создание простого веб-приложения. Основы серверной маршрутизации. Создание микросервиса.

    • Тема 4. Серверная шаблонизация.

      Использование движков шаблонизации, связанных с Express (на примере Pug).

  • NodeJS. Технологии профессионального программирования (140 часов)Стрелка вниз
    • Тема 1. Потоки (streams) и сокеты.

      Связь с буфером. Операции с файлами, реализуемые на основе потоков. Пайпинг потоков. Веб-сокеты. Пример создания приложения (чата) на веб-сокетах.

    • Тема 2. Документоориентированные базы данных (на примере Mongo).

      Развёртывание сервера с Mongo и подключение к нему. Пользователи и их права. Импорт и экспорт данных.

    • Тема 3. Использование объектно-документного сопоставителя (Object Document Mapper, ODM) Mongoose.

      Модель и её связь со схемой и коллекцией документов. Проектирование структуры приложения на базе паттерна MVC.

    • Тема 4. Аутентификация и авторизация.

      Механизмы сессий в Express. Технология PassportJS и внешние стратегии аутентификации.

    • Тема 5. Проектирование REST API на примере серверной части микроблога.

      Обслуживание маршрутов с помощью контроллеров. Управление маршрутизаторами.

    • Тема 6. Использование Node совместно с библиотекой React.

      Клиентская маршрутизация. Создание интерфейса одностраничного приложения (SPA). Серверный рендеринг: React SSR. Сборка проекта с помощью Webpack на стороне сервера.

    • Тема 7. Использование других серверных Node-фреймворков

      Разработка Node-приложений с помощью альтернативных серверных фреймворков (на примере Koa). Управление серверным приложением. Менеджер процессов.

    • Тема 8. Подготовка и развёртывание финального проекта с использованием платформы деплоймента (на примере Heroku)
  • PHP и MySQL (60 часов)Стрелка вниз
    • Тема 1. Основные понятия языка PHP.

      Структура программы. Файлы. Выполнение программы в разных средах: в связке с веб-сервером и в интерфейсе командной строки (PHP CLI). Жизненный цикл приложения на PHP.

    • Тема 2. Развёртывание стека LAMP.

      Развёртывание связки PHP-FPM + NGINX на виртуальном хостинге и в докер-контейнере.

    • Тема 3. Программные сущности в сценарии PHP

      Переменные, типы данных, функции, строки, массивы, ассоциативные массивы. Суперглобальные массивы. Стандартные библиотеки.

    • Тема 4. Буфер вывода.

      Генерация изображений. Работа с файлами и потоками.

    • Тема 5. Основы объектно-ориентированного программирования на PHP

      Менеджер зависимостей composer и автозагрузка классов. Реализация наследования. Стандарты кодирования PSR.

    • Тема 6. Реляционные базы данных (на примере MySQL).

      Развёртывание сервера с MySQL и подключение к нему. Пользователи и их права. Импорт и экспорт данных. Использование PDO для взаимодействия PHP и MySQL.

    • Тема 7. Механизм сессий в PHP.

      Хранение данных сессии. Создание и уничтожение сессии.

    • Тема 8. Реализация MVC-паттерна в экосистеме PHP.

      Обзор популярных MVC-фреймворков (на примере Yii и Laravel).

Преподаватели курса

Государев Илья Борисович

Государев Илья Борисович

к.п.н., доцент

Шуклин Дмитрий Анатольевич

Шуклин Дмитрий Анатольевич

руководитель образовательного центра, к.п.н., доцент

Перепелица Филипп Александрович

Перепелица Филипп Александрович

старший преподаватель,
автор курсов на платформе OpenEdu