Backend разработчик на PHP

Современные инструменты и лучшие практики для глубокого понимания процесса разработки на PHP
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

27 мая

Занятия

Чт 20:00, Пн 20:00

Общая стоимость

48 000 ₽

В месяц

12 000 ₽

В кредит:

12000 ₽ в месяц

Хочу дешевле
Общая стоимость
48 000 ₽
В месяц: 12 000 ₽
В кредит: 48000 ₽
в месяц
Продолжительность
5 месяцев, 4 часа в неделю
Чт 20:00, Пн 20:00
Начало занятий
27 мая
Что даст вам этот курс


  • Глубокое знакомство с библиотеками PHP и особенностями языка

  • Навыки проектирования приложений, работы с базами и файлами, веб-фронтендом

  • Привычку к хорошему и чистому коду

  • Владение тактиками по созданию высоконагруженных систем

Для реализации больших и долгосрочных проектов современному PHP-разработчику необходимо заботиться об архитектуре кода, применять паттерны проектирования, писать код в соответствии с принципами SOLID и поддерживать высокий code coverage своих unit-тестов. Но профессия PHP Backend Developer требует знаний не только языка PHP, а ещё знаний инструментов, таких как базы данных, очереди, кеш-сервера, без которых немыслимо современное веб-приложение.


32 работодателя

Практический выпускной проект в команде или в одиночку

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

Авторская программа

Преподаватели
Александр Пряхин
Игорь Саханков
Разработчик в Booking.com
Никита Попов
Inspiritum
Василий Никонов
Профессиональный Партнёр

Технический директор E-Commerce проекта с бэкграундом разработки и технического обеспечения веб-приложений. В профессиональном программировании прошел долгий путь от Junior Developer до CTO.

Окончил факультет прикладной математики и физики МАИ (НИУ). Имеет преподавательский опыт в Московском Авиационном институте, а также на базе нескольких платформ дополнительного образования. Разработал различные обучающие курсы: от изучения языка PHP до построения масштабируемых систем и архитектур.



Навыки
Разработка Web-приложений
Кризис-менеджмент
Построение команд
Linux-based системы
PHP, Java, JS
Инженер-программист с более чем 6-летним опытом программирования.

Работал в крупных российских и заграничных компаниях. Являлся техническим руководителем и архитектором проекта для крупного банка.

Магистр по программе MSIT SE CMU Университета Иннополис. В настоящее время является разработчиком в Booking.com.
PHP-разработчик в компании в Inspiritum, занимается контейнеризацией сервисов, автоматизацией задач, фильтрацией мобильного трафика, подключением к международным операторам. Знаком с современными решениями и технологиями: docker, clickhouse, postgresql, redis, rabbitmq. Участвовал как в создании проектов с нуля, так и в реализации крупных проектов.

Ранее работал в GlobeXY и Drom.ru, создавал микросервисы, дорабатывал виджеты и логику на серверах, разрабатывал внутренние проекты компании в сотрудничестве с мобильным разработчиком.

Обучал студентов в качестве репетитора, преподавал высшую математику, MySQL, C++, C#. Окончил Национальный исследовательский Томский политехнический университет по специальности «Прикладная математика и информатика».
Заместитель начальника ИТ-отдела в компании «Профессиональный Партнёр»

Опытный PHP-разработчик и апологет системного подхода. Специализируется на автоматизации внутренних бизнес-процессов в финансовом секторе. Решает задачи формализации и описания процессов, а также проектирования, хранения и обработки данных.

Занимался PHP-разработкой в связке с PostgreSQL. Есть интересный опыт по обработке OpenData.

Одно из направлений профессиональной деятельности — офлайн- и онлайн-преподавание.
Александр
Пряхин
Игорь
Саханков
Никита
Попов
Василий
Никонов
Преподаватели
Александр Пряхин

Технический директор E-Commerce проекта с бэкграундом разработки и технического обеспечения веб-приложений. В профессиональном программировании прошел долгий путь от Junior Developer до CTO.

Окончил факультет прикладной математики и физики МАИ (НИУ). Имеет преподавательский опыт в Московском Авиационном институте, а также на базе нескольких платформ дополнительного образования. Разработал различные обучающие курсы: от изучения языка PHP до построения масштабируемых систем и архитектур.



Навыки
Разработка Web-приложений
Кризис-менеджмент
Построение команд
Linux-based системы
PHP, Java, JS
Игорь Саханков
Разработчик в Booking.com
Инженер-программист с более чем 6-летним опытом программирования.

Работал в крупных российских и заграничных компаниях. Являлся техническим руководителем и архитектором проекта для крупного банка.

Магистр по программе MSIT SE CMU Университета Иннополис. В настоящее время является разработчиком в Booking.com.
Никита Попов
Inspiritum
PHP-разработчик в компании в Inspiritum, занимается контейнеризацией сервисов, автоматизацией задач, фильтрацией мобильного трафика, подключением к международным операторам. Знаком с современными решениями и технологиями: docker, clickhouse, postgresql, redis, rabbitmq. Участвовал как в создании проектов с нуля, так и в реализации крупных проектов.

Ранее работал в GlobeXY и Drom.ru, создавал микросервисы, дорабатывал виджеты и логику на серверах, разрабатывал внутренние проекты компании в сотрудничестве с мобильным разработчиком.

Обучал студентов в качестве репетитора, преподавал высшую математику, MySQL, C++, C#. Окончил Национальный исследовательский Томский политехнический университет по специальности «Прикладная математика и информатика».
Василий Никонов
Профессиональный Партнёр
Заместитель начальника ИТ-отдела в компании «Профессиональный Партнёр»

Опытный PHP-разработчик и апологет системного подхода. Специализируется на автоматизации внутренних бизнес-процессов в финансовом секторе. Решает задачи формализации и описания процессов, а также проектирования, хранения и обработки данных.

Занимался PHP-разработкой в связке с PostgreSQL. Есть интересный опыт по обработке OpenData.

Одно из направлений профессиональной деятельности — офлайн- и онлайн-преподавание.
Минимальные знания

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

Формат проведения занятий - 2 раза в неделю по 2 академических часа (1.5 астрономических часа) и 4 академических часа на домашнюю работу в неделю.
Программа обучения
Модуль 1
General Knowledge
Модуль 2
Databases
Модуль 3
Developing
Модуль 4
Architecture & HighLoad
Модуль 5
Проектный модуль
General Knowledge
Подготовка к курсу
* обсудить цели курса, коротко обсудить рассматриваемые темы
* обсудить историю развития веб-приложений, состояние на текущий день
* ввести общую терминологию
* обсудить организационные вопросы, порядок сдачи и проверки домашних работ
27 мая, 20:00 — 21:30
Виртуализация, контейнеры и облачные вычисления
* поговорить про виртуализацию и контейнеры
* рассмотреть облачных провайдеров
* рассмотреть экономику работы с публичным облаком, своим датацентром и т,д.
* научиться работать с докером
30 мая, 20:00 — 21:30
Домашние задания: 2
1 Провести экономическое сравнение Приватного и Публичного облаков
Выберите в качестве примера свою текущую компанию (или компанию, в которой хотите работать), коротко опишите ее (количество сотрудников, сфера, приоритеты)

Сравните целесообразность разворачивания своей инфраструктуры или аренды публичного облака (можно выбрать любого провайдера)
2 Основы работы с Docker
* Установить Docker себе на машину
* С помощью Dockerfile настроить статический сайт (можно использовать nginx образ)
Linux
* объяснить актуальность Linux систем (почему сервера в основном * работает на этой ОС)
* рассмотреть процессы, потоки
* обсудить пользователей, привилегии
* научиться использовать ряд полезных утилит (top, grep etc)
научиться использовать bash скрипты
3 июня, 20:00 — 21:30
Домашние задания: 2
1 Консольная команда Sum
Написать консольное приложение (bash скрипт), который принимает два числа и выводит их сумму в стандартный вывод.

Если предоставлены неверные аргументы (для проверки на число можно использовать регулярное выражение) вывести ошибку в
2 Анализ таблицы пользователей
Имеется таблица следующего вида:

id user city phone
1 test Moscow 1234123
2 test2 Saint-P 1232121
3 test3 Tver 4352124
4 test4 Milan 7990923
5 test5 Moscow 908213

Таблица хранится в текстовом файле.

Вывести на экран 3 наиболее популярных города среди пользователей системы, используя утилиты Линукса.

Подсказка: рекомендуется использовать утилиты uniq, awk, sort, head.
Основы PHP
* рассмотреть историю языка
* изучить организацию памяти и garbage collector
* обсудить актуальность экосистемы
* рассмотреть менеджеры пакетов
6 июня, 20:00 — 21:30
Домашние задания: 3
1 Установить расширение двумя способами
Необходимо установить любое расширение через pecl и через make.
- прислать скриншот команды pecl list, где должно значиться расширение + вывод функции `php -i | grep "ваше расширение"`
- прислать вывод команды make, т.е. `make > make_output.txt` + вывод функции `php -i | grep "ваше расширение"`
2 Создание собственного расширения
Необходимо создать расширение, и выложить в git и на packagist.org
- прислать команду для клонирования с гита
- прислать команду для установки через composer
3 Создать Docker-образ для работы
Необходимо создать образ, который будет включать:
- образ php, берем с https://hub.docker.com/_/php/
- необходимые утилиты (git, curl, wget, grep...)
- установленный composer
- установленные расширения redis, memcached, pecl_http, pdo_pgsql
PHP in CLI
Цель занятия:
* обсудить лучшие практики создания скриптов
* научиться демонизировать скрипты
* изучить способы запускать скрипты по расписанию (cron, supervisord и т.д.)
* обсудить IPC
10 июня, 20:00 — 21:30
Домашние задания: 3
1 [Всем] Калькулятор по шаблону. Strategy. Покрыть его PHPUnit тестами.
2 [Вариант 1] Сокеты
Два PHP-шных скрипта, запущенных на одной машине обмениваются сообщениями через сокеты
3 [Вариант 2] Утилита для исправления опечаток
Существует утилита The fuck (https://github.com/nvbn/thefuck )

Написать аналог на php для одной команды ( например git commit)
PHP WebServers
* обсудить принципы построения веб-серверов
* рассмотреть FastCGI
* рассмотреть php-fpm
* изучить nginx
* популярные фреймворки
13 июня, 20:00 — 21:30
Домашние задания: 1
1 Простое веб-приложение в docker
Используя Docker, вы описали сборку двух контейнеров – один с nginx, второй – с php-fpm и вашим кодом.
Используя docker-compose вы запускаете оба контейнера.
Контейнер с nginx пробрасывает 80 порт на вашу хостовую машину и ожидает соединений.
Клиент соединяется, и шлёт следующий HTTP-запрос:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 48

string=(()()()()))((((()()()))(()()()(((()))))))

Все запросы с динамическим содержимым (*.php) nginx, используя директиву fastcgi_pass, проксирует в контейнер с php-fpm и вашим кодом.
Nginx должен обрабатывать запросы не обращая внимания на директиву Host. После обработки,
• если строка корректна, то пользователю возвращается ответ 200 OK, с информационным текстом, что всё хорошо;
• если строка некорректна, то пользователю возвращается ответ 400 Bad Request, с информационным текстом, что всё плохо.
Сети, протоколы. Балансировка
* рассмотреть сетевой стек
* поговорить о HTTP и HTTPS протоколах
* обсудить балансировку, рассмотреть решения на разных уровнях сетевого стека (L4, DNS и т.д.)
17 июня, 20:00 — 21:30
Домашние задания: 1
1 приложение верификации email
Реализовать приложение (сервис/функцию) для верификации email.
Реализация будет в будущем встроена в более крупное решение.
Минимальный функционал - список строк, которые необходимо проверить на наличие валидных email.
Валидация по регулярным выражения и проверке DNS mx записи, без полноценной отправки письма-подтверждения.
Безопасность
* рассмотреть симметричные и ассиметричные алгоритмы шифрования AES, RSA, Blowfish. Digest-алгоритмы sha и md5.
* детально рассмотреть TOP10 видов уязвимостей web-приложений по OWASP (в частности SQL-injections, XSS, CSRF).
20 июня, 20:00 — 21:30
Домашние задания: 1
1 Сканер уязвимостей (OpenVAS)
Установить сканер уязвимостей OpenVAS (использовать готовые сборки или собрать самостоятельно).
Просканировать свои проекты.
Результат работы сканера в PDF в чат по ДЗ.
Если найдены уязвимости - внести исправления (код, настройки). Повторное сканирование, результат работы сканера в PDF в чат по ДЗ.
Рекомендуем использовать на регулярной основе.
Командна разработка
* обсудить методологии разработки ПО
* обсудить роли в команде
* подробно изучить SCRUM
24 июня, 20:00 — 21:30
Домашние задания: 1
1 Клиент для вашей библиотеки должен работать по протоколу HTTP.
Для этого, используя docker compose, вы создадите два контейнера, один с nginx, а второй с php-fpm и приложением, использующим библиотеку.
Databases
Основные понятия баз данных
Обсудим модели данных и ранние подходы к организации данных, в частности, иерархические и сетевые базы данных. Научимся описывать концептуальные схемы предметной области при помощи ER-модели. Остановимся на реляционной модели и погрузимся в реляционную алгебру. Поговорим о SQL, его истории, стандартах и совместимости.
27 июня, 20:00 — 21:30
Домашние задания: 1
1 Необходимо спроектировать схему базы данных для одного из предложенных проектов.
Спроектировать базу данных, для планировщика задач (каких угодно на ваш выбор).
PostgreSQL для администратора
Полное погружение в PostgreSQL. Поговорим об администрации кластера, ролях, атрибутах, привилегиях, схемах, табличных пространствах и системном каталоге. Для всего этого изучим DDL.
1 июля, 20:00 — 21:30
Домашние задания: 1
1 Практическая отработка навыков с вебинаров
PostgreSQL для разработчика
Продолжим изучение PostgreSQL, но уже в качестве клиентского разработчика. Изучим DML, поговорим о типах данных, функциях и операторах. Узнаем как устроены индексы и работают транзакции. Обсудим ACID, MVCC и уровни изоляции.
4 июля, 20:00 — 21:30
Домашние задания: 1
1 Футбольная база данных
Вам предоставлена Футбольная база данных группого тура чемпионата Мира по футболу 2018 года.
Придумайте и сформулируйте 10 вопросов по этой базе данных и составьте SQL запросы для нахождения ответов.
Приложите ссылку на файл с вопросами и запросами. Работы будут проверяться с обратной связью.
Как устроен PostgreSQL
Перестанем бояться чудодейственной магии PostgreSQL и детально разберём как база данных работает “под капотом”. В этом занятии будет буферный кеш, журнал упреждающей записи, контрольная точка, страницы и версии строк, LRU, снимки и блокировки, а также Vacuum. Используя EXPLAIN, посмотрим как PostreSQL выполняет запрос и попытаемся оптимизировать его выполнение.
8 июля, 20:00 — 21:30
Домашние задания: 1
1 Индексы, XML и PHP.
Создать большую базу данных из XML файлов.
Создать РНР скрипт для генерации данных.
Создать/удалить индексы, проверить время выполнения запросов
Другие SQL-решения
Посмотрим на другие SQL-решения, в частности, сделаем детальный обзор возможностей MySQL и SQLite. Поговорим о колоночных базах данных на примере ClickHouse.
11 июля, 20:00 — 21:30
MongoDB
Рассмотрим not only SQL-решения на примере MongoDB. Познакомимся с CRUD операциями. Поговорим о Aggregation Pipeline и MapReduce. Поработаем с MongoDB из кода на PHP.
15 июля, 20:00 — 21:30
Домашние задания: 1
1 Приложение для анализа каналов на Youtube
Создать приложение для анализа каналов на Youtube:
1. Создать структуру/структуры хранения информации о канале и видео канала в mongoDB, описать в виде JSON с указанием типов полей. Описать какие индексы понадобятся в данной структуре?
2. Создать необходимые модели для добавления и удаления данных из коллекций
3. Реализовать класс статистики, который может возвращать:
- Суммарное кол-во лайков и дизлайков для канала по всем его видео
- Топ N каналов с лучшим соотношением кол-во лайков/кол-во дизлайков
4*. Можно создать паука, который будет ходить по Youtube и наполнять базу данными
Redis
Поговорим о Redis как о базе данных. Изучим типы данных и способы работы с ними из кода на PHP. Сравним Redis с Memcached.
18 июля, 20:00 — 21:30
Домашние задания: 1
1 Система хранения событий для аналитики
Аналитик хочет иметь систему со следующими возможностями:
1) Система должна хранить события, которые в последующем будут отправляться сервису событий
2) События характеризуются важностью (аналитик готов выставлять важность в целых числах)
3) События характеризуются критериями возникновения. Событие возникает только если выполнены все критерии его возникновения. Для простоты все критерии заданы так: <критерий>=<значение>

Таким образом предположим, что аналитик заносит в систему следующие события:
{
priority: 1000,
conditions: {
param1 = 1
},
event: {
::event::
},
},
{
priority: 2000,
conditions: {
param1 = 2,
param2 = 2
},
event: {
::event::
},
},
{
priority: 3000,
conditions: {
param1 = 1,
param2 = 2
},
event: {
::event::
},
},

От пользователя приходит запрос:
{
params: {
param1 = 1,
param2 = 2
}
}

Под этот запрос подходят первая и третья запись, т.к. в них обеих выполнены все условия, но приоритетнее третья, так как имеет больший priority.

Написать систему, которая будет уметь:
1) добавлять новое событие в систему хранения событий
2) очищать все доступные события
3) отвечать на запрос пользователя наиболее подходящим событием
4) использовать для хранения событий redis
PHP и базы данных
Изучим все способы работы кода на PHP с изученными базами данных. Как дань истории будут показаны устаревшие драйверы, но остановимся на PDO. Рассмотрим ООП-подход для работы с базами данных. Научимся реализовать и применять такие паттерны как DAO, ActiveRecord, ORM, ODM. Поговорим об их плюсах и минусах.
22 июля, 20:00 — 21:30
Домашние задания: 1
1 Реализация одного из паттернов работы с хранилищем данных
Необходимо реализовать один из паттернов: Table Data Gateway, Raw Data Gateway, Active Record, DataMapper для произвольной таблицы. Паттерн должен содержать метод массового получения информации из таблицы, результат которого возвращается в виде коллекции.
Дополнительно можно использовать паттерн Identity Map для устранения дублирования объектов, ссылающихся на одну строку в БД или Lazy Load для отложенной загрузки связанных записей в таблице или коллекции.
Developing
Парадигмы программирования
Когда мы пишем код - мы придерживаемся какой-то парадигмы. В этом занятии мы обсудим различные парадигмы программирования и увидим, что не ООП-единым, на примере использования функциональной парадигмы. Посмотрим на функции высшего порядка, каррирование, замыкания и монады. После чего детально остановимся на ООП.
25 июля, 20:00 — 21:30
Архитектура кода
Погрузимся в архитектуру кода. UML, SOLID, SoC, DRY, KISS, YAGNI, DI и DI-контейнеры.
29 июля, 20:00 — 21:30
Design patterns
Рассмотрим часто встречающиеся проблемы при проектировании ООП-программ и, как способ их решения, шаблоны проектирования. Обсудим порождающие, структурные, поведенческие шаблоны, а также коснёмся шаблонов GRASP.
1 августа, 20:00 — 21:30
Практики хорошего кода
Поговорим о том, как писать хороший код, о принципах CQRS и Fluent interface. Обсудим coding styles и необходимость документирования кода. Рассмотрим PHP the Right way и стандарты из PHP-FIG.
5 августа, 20:00 — 21:30
Введение в тестирование
Поговорим о тестировании - его видах и какие проблемы призван решить каждый вид. В частности, обсудим acceptance, integration и unit тестирование. Узнаем, что такое test case и как он должен выглядеть. Научимся писать интеграционные тесты на codeception.
8 августа, 20:00 — 21:30
Домашние задания: 1
1 None
Разработанное ранее мини приложение необходимо покрыть unit-тестами, используя PHPUnit и добиться code coverage в минимум 70%
Unit-тестирование
Поговорим о том, что такое тестируемый код и как его писать. Научимся писать Unit-тесты с использованием PHPUnit. Поговорим об A-TRIP, TDD и Red-Green-Refactor. Рассмотрим идеологии CI/CD и запустим автоматический прогон наших тестов в Travis.
12 августа, 20:00 — 21:30
Алгоритмы. Начало
Поговорим об алгоритмах и структурах данных. Детально рассмотрим асимптотический анализ. Рассмотрим алгоритмы сортировки, в частности: сортировка Шелла, быстрая сортировка и сортировка слиянием. Изучим стек и очередь на примере реализаций из SPL. Детально рассмотрим связанные списки и способы их обхода.
15 августа, 20:00 — 21:30
Домашние задания: 1
1 Необходимо реализовать один из предложенных алгоритмов на деревьях.
Алгоритмы. Продолжение
Продолжим говорить об алгоритмах. Рассмотрим такие структуры данных как двоичные и сбалансированные деревья поиска. Обсудим хеш-таблицы и способы борьбы с коллизиями. Закончим алгоритмами на графах - поиск в ширину и алгоритм Дейкстры.
19 августа, 20:00 — 21:30
Architecture & HighLoad
Очереди
Рассмотрим асинхронный подход обработки данных на основе очередей. Разберём несколько стандартных сценариев использования очередей (отправка уведомлений, инвалидация кеша). Реализуем работу с очередями, используя различные инструменты (очереди на базе, Redis Pub/Sub, Gearman, Beanstalkd). Детально изучим протокол AMPQ и одну из его прикладных реализаций - RabbitMQ.
22 августа, 20:00 — 21:30
Домашние задания: 1
1 None
Используя мини-приложение, разработанное в прошлом модуле, необходимо реализовать Rest API с использованием очередей. Ваши клиенты будут отправлять запросы на обработку, а вы будете складывать их в очередь и возвращать номер запроса. В фоновом режиме вы будете обрабатывать запросы, а ваши клиенты периодически, используя номер запроса, будут проверять статус его обработки.
Проектирование API
Научимся проектировать API для web и mobile используя Rest и RPC-протоколы. Обсудим JSON, XML, Protocol Buffers. Детально остановимся на Rest и способе его описания, используя RAML. Получим представление о WebSockets.
26 августа, 20:00 — 21:30
Профилирование и логирование
Скрипт тормозит? Научимся находить узкие места, используя инструменты профилирования. Также детально обсудим логирование, чтобы понимать что делает наш скрипт. Затронем уровни логирования (по PSR-3), библиотеку Monolog и сбор логов в ELK.
29 августа, 20:00 — 21:30
Репликация
Получим полное представление о репликации: о её видах (Master-Slave, Master-Master), о способе синхронизации изменений (sync, async), о формате изменений (SBR, RBR), о модели передачи изменений (push, pull) и о том, как с этим работать на уровне PHP кода.
2 сентября, 20:00 — 21:30
Шардинг
Поймём, что такое шардинг и когда его стоит применять. Обсудим виды шардинга (горизонтальный и вертикальный). Поговорим о перебалансировке и решардинге. Затронем партиционирование.
5 сентября, 20:00 — 21:30
Кеширование
Поговорим зачем приложению нужен кеш. Рассмотрим Redis и Memcached в качестве кеш-серверов. Поговорим о кеш-тегах и инвалидации кеша.
9 сентября, 20:00 — 21:30
Deploying
Обсудим возможные способы доставки вашего приложения в production-окружение - от ручного git pull до инструментов автоматизации этого процесса в лице (mina и capistrano).
12 сентября, 20:00 — 21:30
Домашние задания: 1
1 None
Используя выбранный инструмент автоматического деплоя, необходимо реализовать автоматическую выкатку написанного ранее мини-приложения на собственный виртуальный сервер.
Site Reliability Engineering
Цель занятия:
* принципы построения отказоустойчивых систем
* SLAs, SlIs, SLOs
* лучшие практики
16 сентября, 20:00 — 21:30
Проектный модуль
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

Например:
1. Система для обучения работы на PHP (аналог CodeAcademy + HackerRank)
2. Bot в телеграмм, позволяющий найти перелеты/отели
3. Анализ GitHub на наличие интересных проектов (рост коммитов, звездочек). Как продолжение поиск лучших контрибьютеров
4. Создать масштабируемую новостную ленту с множеством интеграций
5. Свой проект
Консультация по проектам
Обсуждение тем проектов, вопросы и ответы
Домашние задания: 1
1 Проект
Презентация проектов
Подведение итогов курса и презентация реализованных проектов
Выпускной проект
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

Например:
1. Система для обучения работы на PHP (аналог CodeAcademy + HackerRank)
2. Bot в телеграмм, позволяющий найти перелеты/отели
3. Анализ GitHub на наличие интересных проектов (рост коммитов, звездочек). Как продолжение поиск лучших контрибьютеров
4. Создать масштабируемую новостную ленту с множеством интеграций
5. Свой проект
Подглядеть
PHP: Как пройти собеседование с техническим специалистом
Евгений Корытов
Создание Web-сайта на фреймворке Yii2
Евгений Волосатов
Основные понятия баз данных
Олег Козинцев
Разработка высоконагруженных систем на PHP
Игорь Саханков
PHP-разработчик
Николай Балакирев, разработчик php
Больше материалов
Видеоматериалы по теме
День открытых дверей
18 февраля в 20:00
День открытых дверей
19 июля 2018 года в 20:00
День открытых дверей
13 апреля 2018 года в 20:00
После обучения вы
- получите полное представление о разработке больших и высоконагруженных веб-приложений
- получите материалы по всем занятиям (видеозаписи занятий, презентации, примеры кодов)
- существенно повысите свою компетенцию в сфере разработки на PHP
- научитесь разрабатывать коммерческие приложения самостоятельно и в команде
- получите сертификат об окончании курса
- получите приглашение пройти собеседование в компаниях-партнерах (в случае успешного обучения на курсе)
Дата выдачи сертификата: 1 декабря 2019 года
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Backend разработчик на PHP»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Backend разработчик на PHP»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
48 000 ₽
В месяц: 12 000 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
27 мая