Что даст вам этот курс
- Глубокое знакомство с библиотеками PHP и особенностями языка
- Навыки проектирования приложений, работы с базами и файлами, веб-фронтендом
- Привычку к хорошему и чистому коду
- Владение тактиками по созданию высоконагруженных систем
Для реализации больших и долгосрочных проектов современному PHP-разработчику необходимо заботиться об архитектуре кода, применять паттерны проектирования, писать код в соответствии с принципами SOLID и поддерживать высокий code coverage своих unit-тестов. Но профессия PHP Backend Developer требует знаний не только языка PHP, а ещё знаний инструментов, таких как базы данных, очереди, кеш-сервера, без которых немыслимо современное веб-приложение.
Программа курса
Общие знания
Модуль направлен на обобщение знаний, а также на расширение понимания возможностей языка PHP и теоретических основ.
- Тема 1: Подготовка к курсу и инфраструктура ПО // ДЗ
- Тема 2: Linux // ДЗ
- Тема 3: Внутреннее устройство PHP
- Тема 4: Composer // ДЗ
- Тема 5: Веб-серверы PHP // ДЗ
- Тема 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
Проектный модуль
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей. Проект должен стать примером кода, который можно показывать потенциальным работодателям. Например: 1. Система для обучения работы на PHP (аналог CodeAcademy + HackerRank); 2. Bot в телеграмм, позволяющий найти перелеты/отели 3. Анализ GitHub на наличие интересных проектов (рост коммитов, звездочек). Как продолжение поиск лучших контрибьютеров; 4. Создать масштабируемую новостную ленту с множеством интеграций; 5. Свой проект.
- Тема 1: Выбор темы и организация проектной работы
- Тема 2: Консультация по проектам и домашним заданиям
- Тема 3: Защита проектных работ
- Тема 4: Подведение итогов











