Тема №1. Введение в веб-технологии (2 часа)
Основы Интернет. Стандартизация в Интернете. Стек протоколов TCP/IP. Система доменных имен DNS. Структура и принципы WWW. Прокси-серверы. Протоколы Интернет прикладного уровня. Основы объектно-ориентированного программирования.
Тема №2. Основы веб-архитектуры (4 часа)
Клиент-серверная архитектура, домены и хостинги, протоколы доступа к веб-серверам (FTP, SFTP, HTTP, HTTPS), инструменты для веб-разработки, жизненный цикл веб-проекта, облачные хранилища (назначение, возможности),
Подключение к тестовому серверу по файловому протоколу, работа с файлами, получение информации о SSL-сертификате, получение IP-адреса по доменному имени. Взаимодействие с облачными хранилищами. Установка и настройка клиента облачного хранилища: Dropbox, Google-диск, Yandex-диск - одно на выбор. Предоставление общего доступа к тестовому файлу в облачном хранилище.
Тема № 3. Клиентская часть веб-приложений - HTML (6 часов)
Языки разметки (HTML, XML, XHTML), стандарты W3C, HTML5, семантическая верстка.
Верстка простейшей HTML-страницы, применение семантических тегов, добавление видео и аудио на HTML-страницу.
Тема № 4. Клиентская часть веб-приложений - CSS (6 часов)
Каскадные таблицы стилей (CSS), стандарты кода CSS, кроссбраузерность, медиа-запросы, адаптивная верстка,
Разработка HTML страницы с CSS, разработка адаптивной HTML страницы с CSS
Тема № 5. Введение в JS, DOM-модель веб-страницы, события браузера, AJAX (7 часов)
Назначение языка программирования JavaScript, стандарты ECMA, встраивание JS в веб-страницу, базовые возможности JS и взаимодействие с браузером, стандарты кода, динамическое изменение элементов страницы: создание, удаление, изменение атрибутов и содержимого, асинхронный JS: таймауты и интервалы, события браузера, обработка событий на JS, основы XHR (XMLHttpRequest), отправка и обработка AJAX-запросов с помощью JS. Изучение инструментальных среды для разработки wеb-приложений на языке JavaScript.
Добавление простейших интерактивных элементов на WEB-страницу, создание, изменение и удаление элементов, обработка событий на странице с помощью JS, получение и отправка данных на сервер с помощью AJAX.
Тема № 6. Библиотеки, фрейворки и экосистема JS (7 часов)
Краткий обзор популярных библиотек и фреймворков JS: jQuery, Angular и др, базовые возможности библиотеки jQuery, встраивание jQuery в веб-приложение, анимации в jQuery, AJAX в jQuery, Promise в jQuery, HTML-фреймворки, основы Twitter Bootstrap, Mobile-first, сетка Twitter Bootstrap, типографика, компоненты для стилизации HTML-элементов, модальные окна, NodeJS. Репозиторий пакетов, NPM, Yarn, Webpack.
Создание и поиск элементов, обработка событий с помощью jQuery, добавление анимаций и обработка AJAX-запросов с помощью jQuery, подключение и базовое использование Twitter Bootstrap для вёрстки, создание модального окна с помощью Twitter Bootstrap, установка библиотеки с помощью npm, сборка проекта с помощью Webpack.
Тема №7. Системы контроля версий (5 часов).
Зачем нужна система контроля версий, что такое репозиторий, сравнение систем контроля версий, Git и Github, система контроля версий Mercurial, основные операции с репозиторием.
Работа с GitHub. Работа с репозиторием Mercurial
Тема №8. Работа в ОС Linux (5 часов)
Знакомство с Linux, знакомство с командной строкой, пользователи и группы, введение в права доступа, SSH, демоны Linux, ключевые компоненты веб-сервера: NGINX, Apache, MySQL.
Знакомство с ОС Linux и консолью на виртуальной машине, настройка прав доступа на виртуальной машине, настройка NGINX и Apache для отображения сайта.
Тема № 9. Введение в РНР (8 часов)
Изучение инструментальных среды для разработки wеb-приложений на языке PHP. Назначение серверной части веб-приложений, введение в язык программирования PHP, стандарты кода (PSR), взаимодействие PHP и Apache, маршрутизация с помощью Apache (.htaccess), Cookie, сессии, заголовки запросов и ответов.
Разработка простейшего консольного PHP-приложения, обработка PHP-файлов с помощью Apache, настройка .htaccess, обработка сессий, создание редиректов.
Тема №10. Архитектура веб-приложений и дизайн (5 часов)
Архитектура приложений, шаблон проектирования MVC, формирование шаблонов с использованием PHP. Знакомство с веб-дизайном.
Cоздание простейшего приложения согласно MVC-шаблону.
Тема №11. Работа с СУБД (5 часов)
Назначение СУБД в веб-приложениях, реляционные базы данных, введение в MySQL, средства управления MySQL, Индексы, Внешние ключи и ограничение целостности, Выборки связанных данных: JOIN, LEFT JOIN, использование связки MySQL и PHP, расширение PHP PDO, использование данных MySQL в PHP-приложении.
Использование типовых запросов для управления базой данных MySQL, создание связей в MySQL, типовые выборки связанных данных, создание, удаление и просмотр MySQL-записей с помощью PHP.
Тема №12. Экосистема PHP (3 часа)
Назначение PHP-библиотек (пакетов), фреймворки и CMS, пакетный менеджер PHP (composer), автозагрузка библиотек через composer, репозиторий пакетов Packagist.
Добавление composer к разрабатываемому проекту, типовые операции с библиотеками.
Тема №13. Работа с веб-приложениями (7 часов)
Типы и назначения форм, создание форм, обработка форм посредством PHP, запросы GET и POST, загрузка файлов через HTTP протокол, ограничение на загружаемые файлы, обработка загружаемых файлов на серверной стороне, типы и назначение уведомления в веб-приложениях (Push, письма, смс), протоколы работы электронной почты (POP3, IMAP, SMTP), средства для отправки писем из PHP, отправка писем с использованием библиотек, назначение и использование отладчика, назначение и виды тестирования (unit-тестирование, функциональное тестирование), использование библиотеки тестирования PHPUnit, принципы функционирования доменов (NS-сервера, регистраторы, DNS-записи), хостинги и различия между ними (shared-хостинги, VPS, VDS), синхронизация локальной и внешней версии.
Обработка формы с помощью PHP для добавления данных в БД, загрузка файлов на сервер с помощью WEB-приложения, отправка писем с помощью PHP, создание автоматических тестов PHPUnit, развертывание проекта.