Программа и содержание

Для кого этот курс

Для разработчиков, программирующих на PHP (опыт от 1 года) или на любом другом ООП (опыт от 3-х лет), которые хотят развиваться в backend-направлении или стать fullstack-специалистом.

Если вы уже знакомы с PHP, то понимаете, что для него важно придерживаться парадигм программирования. На курсе вы узнаете, чем парадигмы ООП отличаются от функционального программирования, научитесь применять SOLID, DRY, KISS и стандарты PHP — PSR. Вы сможете оценить алгоритмическую сложность кода, работать с кодом с точки зрения анализа и будете понимать, почему решение работает медленно и как это поправить.

Вы освоите тестирование, доставку в продакшн, а также познакомитесь с SRE-практиками, которые позволяют определять, насколько стабилен сайт, как повысить его стабильность и сделать отказоустойчивым

Необходимые знания

Опыт разработки на PHP от одного года или опыт разработки на другом языке от 3 лет (приветствуются любые языки ООП)

Опыт работы с системой версионирования Git

Знание основных принципов ООП, опыт работы с базами данных и понимание основ веб-разработки облегчат прохождение курса для программиста, но не являются обязательными.

Что вам даст этот курс

Вы сможете грамотно решать на PHP разнообразные задачи бэкенда Middle+ уровня. Подготовка проходит на реальных продуктовых задачах, после которых вы будете четко понимать, чем эффективные решения отличаются от плохого кода.

В последние годы работодатели отдают предпочтение PHP-разработчикам, которые не только пишут чистый код, но и умеют работать с инфраструктурой, в команде.

Поэтому программа курса глубоко погружается в экосистему PHP

Инфраструктура — Docker, виртуальные машины, облака, сетевое взаимодействие, обеспечение безопасности приложения, Composer, управление зависимостями, очереди и построение асинхронного взаимодействия.

Хранилище — PostgreSQL, MySQL, NoSQL (Clickhouse, ElasticSearch) и взаимодействие PHP с различными типами хранилищ.

Тестирование — не только unit-тесты, но и покрытие тестами всех слоёв приложения

Программа

Общие знания

Модуль направлен на обобщение знаний, а также на расширение понимания возможностей языка PHP и теоретических основ.

Тема 1: Подготовка к курсу и инфраструктура ПО //ДЗ

Тема 2: Linux //ДЗ

Тема 3: Внутреннее устройство PHP

Тема 4: Composer // ДЗ

Тема 5: PHP WebServers // ДЗ

Тема 6: Сети, протоколы. Балансировка. Безопасность // ДЗ

Базы данных

Модуль нацелен на активное изучение вопросов выбора, применения и управления хранилищами в проектах, использующих PHP. Происходит тесное знакомство с СУБД PostgreSQL, рассматриваются различные NoSQL хранилища, а также вопросы тюнинга MySQL.

Тема 1: Основные понятия баз данных // ДЗ

Тема 2: Алгоритмы

Тема 3: Решение алгоритмических задач // ДЗ

Тема 4: PostgreSQL для администратора

Тема 5: PostgreSQL для разработчика // ДЗ

Тема 6: Как устроен PostgreSQL // ДЗ

Тема 7: Другие SQL-решения // ДЗ

Тема 8: Redis // ДЗ

Тема 9: MySQL и форки

Тема 10: PHP и базы данных // ДЗ

Тема 11: Парадигмы программирования

Тема 12: Практикум решения алгоритмических задач 1 // ДЗ

Практики разработки

Модуль изучает всевозможные правила, рекомендации и практики, применяемые в современной разработке: начиная от именования переменных и заканчивая паттернами и алгоритмами, студенты знакомятся с правильной организацией кода PHP-приложений.

Тема 1: Архитектура кода // ДЗ

Тема 2: Практики хорошего кода

Тема 3: Design patterns. Часть 1

Тема 4: Design patterns. Часть 2 // ДЗ

Тема 5: Введение в тестирование

Тема 6: Unit-тестирование // ДЗ

Тема 7: Практикум по тестированию // ДЗ

Архитектуры и HighLoad-системы

Модуль посвящён расширению приложения, его отказоустойчивости, вариантам организации взаимодействия с другими приложениями, а также способам доставки функциональности до Production.

Тема 1: Профилирование, логирование и мониторинг

Тема 2: Очереди. Часть 1

Тема 3: Практикум решения алгоритмических задач 2 // ДЗ

Тема 4: Очереди. Часть 2 // ДЗ

Тема 5: Проектирование API // ДЗ

Тема 6: Репликация

Тема 7: Шардинг

Тема 8: Кеширование

Тема 9: Deploy приложений // ДЗ

Тема 10: Основы Kubernetes

Тема 11: Практикум по разворачиванию приложений

Тема 12: Site Reliability Engineering

Преподаватели:

Владимир Языков, Александр Пряхин, Дмитрий Кириллов, Илья Нуриллин, Сергей Петров, Михаил Каморин, Олег Мельник.