Цель курса – дать обучающимся базовые знания и навыки веб-дизайна и веб-программирования на PHP для подготовки к дальнейшему самостоятельному их освоению. Курс ориентирован на людей, желающих устроиться работать веб-программистом и ищущих, с чего бы начать. Основное внимание курса сосредоточено на веб-программировании (РНР), а не на веб-дизайне. Необходимые знания – базовый навык программирования на любом языке (необходимо для того, чтобы изучать именно веб-программирование, не акцентируя внимание на элементарных основах программирования в целом). Продолжительность курса - 11-13 занятий по 2 академических часа. Темы: базовый веб-дизайн: html, javascript, css (в т.ч.) продвинутый веб-дизайн: jQuery, ajax, haml, sass, coffeescript фреймворк bootstrap для ускорения верстки веб-страниц язык программирования РНР, базы данных MySQL тестирование в РНР концепция MVC и РНР-фреймворк Laravel система контроля версий git как устроиться на работу РНР-программистом 1. Введение. (1 занятие) Краткий обзор рынка труда в IT-сфере в Украине и в мире. Актуальность профессии программиста в целом и веб-программиста в частности. Обоснование целесообразности выбора РНР как языка веб-программирования. О web: Схема работы web Принципы работы веб-сервера и веб-клиента Протокол http: типы передаваемой информации (текст, бинарный файл, картинка, html, xml, ) Что такое cookie и сессии. Технологии создания frontend’а backend’а сайтов. Что такое html, css, javascript, PHP и с чем их едят. Практическая часть: посылка сообщений по протоколу http. Использование fiddler для мониторинга http-траффика. разбор на практике, каким именно образом браузер отображает веб-сайт. использование панели разработчика в браузере 2. Технологии создания frontend’а сайтов (2-3 занятия) Повторный краткий обзор существующих технологий создания frontend’а. Обоснование выбора Javascript как языка сценариев. Введение в html, css, javascript. Возможности html5. Преобразование XML в html с помощью языка xslt. Haml, sass, coffeescript – надстройки над html, css, javascript. Что такое ajax. Javascript-фреймворк jQuery. NPM – менеджер зависимостей для javascript. Фреймворк bootstrap – возможность ускорения создания фронтенда сайта. Практическая часть практика создания веб-страницы, использующей html, css, javascript. Использование панели веб-разработчика в браузере для отладки css и javascript. Использование Haml, sass, coffeescript вместо традиционных html, css, javascript. Использование jQuery. Ajax-запросы. Использование bootstrap для молниеносного создания дизайна веб-страницы. 3. Введение в веб-программирование и язык PHP (2 занятия). Что такое веб-сервер и как он работает. Характеристика РНР. Популярность языка сегодня. Его сильные и слабые стороны. Синтаксис РНР. Обзор основных задач, решаемых РНР-программистами. «Магические» функции РНР. Практическая часть Использование РНР в командной строке. Установка и настройка веб-сервера, СУБД MySQL и языка РНР. Создание простой динамической страницы с помощью РНР. Отладка РНР с помощью IDE NetBeans. Работа РНР с пользовательских формами. Использование РНР в связке с AJAX. Использование РНР для генерации HTML, CSS, Javascript. Работа с базой данных MySQL с помощью РНР. Итог – создание простейшей страницы с отзывами пользователей о чём-либо. 4 Объектно-ориентированное программирование в РНР (1 занятие). Особенности реализации ООП в РНР. Целесообразность использования ООП в веб-программировании на РНР. Принципы «чистого кода» SOLID. Менеджер зависимостей Composer. Практическая часть Построение одного и того же приложения с помощью функционального подхода и с помощью ООП. Использование composer для облегчения интеграции чужих библиотек в свой код. 5 Тестирование в РНР (1 занятие). Необходимость создания тестов для приложений. Что такое юнит-тесты, функциональные и приёмочные тесты. Юнит-тестирование. Фреймворк phpunit. Приёмочное тестирование с помощью selenium. Фреймворк codeception как инструмент сочетания всех видов тестирования. 6. Шаблон проектирования приложений MVC. Фреймворки для PHP. Фреймворк Laravel. (2 занятия). Что такое MVC и зачем он нужен. Обзор существующих РНР-фреймворков. Практическая часть Создание собственного MVC-приложения на РНР. Создание простейшего приложения с помощью фреймворка Laravel. Создание реального приложения с помощью фреймворка Laravel (2 занятие). 7. Система контроля версий git (1 занятие). Система контроля версий как необходимый инструмент для повседневной работы программиста. Обзор существующих систем контроля версий и обоснование выбора git. Основные возможности git. Публикация своего кода на http://github.com. Совместная работа программистов с помощью git. Практическая часть Практический тур по основным возможностям git. Создание своих пакетов для composer и публикация их на http://packagist.org. 8 Итоги (0.5-1 занятие). Что мы изучили и что не изучили. Что изучать дальше. Что нужно знать, чтобы устроиться на работу РНР-программистом. 9 Постскриптум (1 занятие). Разворачивание приложений с помощью heroku. Быстрое разворачивание виртуальной среды разработки с помощью virtualBox и vagrant. Настройка linux-сервера. Создание своих пакетов для composer и публикация их на http://packagist.org. Регулярные выражения как необходимый инструмент программиста. Регулярные выражения как средство поиска нужного кода в своих файлах.