rahman-nero / roadmap-php-developer

Дорожная карта (road-map) PHP-разработчика

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Дорожная карта (roadmap) бета-версия

  • Начальный этап:
    • Сперва изучения основнова стека, это - HTML, CSS, Javascript (основы) и PHP
    • Изучения базы данных (MySQL), синтаксис SQL и CRUD-операции
    • Практика. Создание своих проектов.
    • Изучить базовое понятие HTTP, HTTPS, TCP/UDP
    • Изучение начального ООП, понятие синтаксиса
    • Изучение Composer и Packagist
    • Изучение GIT
    • Владения базовыми командами из консоли
  • Начально-средний:
    • Изучение фреймворка Laravel/Symfony
    • Создание проекта с использованием фреймворка и разных пакетов. Или перевод старых проектов на фреймворк
    • Регулярные выражения
    • Базовая защита от взлома: XSRF, XSS, etc
    • Изучение продвинуто базу данных
      • Joins: Inner join, left join, right join
      • Умение спроектировать базу данных
      • Связи между таблицами
      • Защита от SQL-инъекции
      • Отличие Timestamp от Datetime
      • Составление и оптимизация SQL запросов
      • Индексирование
      • Нормализация и денормализация
      • Транзакции и их уровни
      • ER-diagrams
      • N+1 Problem
      • Nested sets, materialize path etc
    • Более глубокое изучение PHP/ООП:
      • DI
      • Генераторы: yield и т.д
      • DI-Container
      • IOC
      • SPL-библиотеки
      • Автозагрузка классов
    • Рефакторинг кода старых проектов с использованием DI-Container, не использование фасадов
    • Изучение нереляционной базы данных: Redis/Memcache
    • Профилирование запроса с помощью Xdebug
    • Иметь понимание об CI/CD-процессах
    • Перейти на Linux (Ubuntu, Arch, Manjaro и в конце arch i3 :))
    • Изучение побочных вещей:
      • REST API
      • JWT-технология
      • Swagger
      • Postman или аналоги
      • OAuth
      • Git flow
      • Обработка задач в фоне
      • supervisord
      • cron
      • systemd
    • Изучения тестирования в PHP. Интеграционные тесты, функциональные - PHPUnit, пирамида тестирования
  • Cредний уровень:
    • Изучение анализаторов в PHP: CodeShiffer, Psalm
    • Пройти PSR
    • Изучение паттернов проектирования
    • Тестирование
      • Основы тестирования, виды тестирования
      • PHPUnit
      • Integration Testing
      • Function Testing
    • Прикрутить тесты к проектам. Практика
    • Изучение базы данных углубленно:
      • Агрегация
      • Оконные функций
      • Подзапросы
      • План выполнения запроса
      • Временные таблицы
      • Хранимые процедуры
      • Триггеры
    • Изучить Docker, базовое владение с docker-compose.
    • CI/CD, Jenkins, Kubernetis (необязательно)
    • Перевод проектов на Docker, настройка CI/CD
    • Изучение ООП углубленно:
      • Закон диметрии
      • Low coupling и High Cohesion
      • Контракты, контрактное программирование
      • SOLID
      • DRY
      • KISS
      • YAGNI
      • PSR-стандарты и т.д
      • GRASP
      • Пакетные принципы
    • Доработка проектов с использованием углубленного ООП: SOLID, low coupling & high cohesion и т.д
    • Изучение паттерн проектирования (снова): простые паттерны, архитектурные паттерны и т.д
    • Изучение основ алгоритмов и структура данных
      • Очереди, стек, деревья и т.д
      • эффективные алгоритмы
      • временная и пространственная сложность
      • O-нотация.
    • Изучения архитектуры:
      • DDD
      • Clean Architecture
      • Читаешь много книг про архитектуру, стримы Соера, смотришь доклады
    • Попытки написания по TDD
    • Изучение RabbitMQ
    • Изучение высоконагруженные приложения
  • Высокий уровень:
    • Изучить другой язык программирования: GO
    • Изучение микросервис
    • Изучение высоконагруженных систем: репликация, шардирование и т.д (Читаем кабанчика)
    • Многопоточность, ассинхронность и т.д, все что будет затрагиваться в новом языке, изучить
    • Дальше буду дорабатывать этот список

Изучить другой язык программирования для расширения кругозора (JavaScript, Python, GO, Rust и т.д)

А и еще самое главное: прокачивайся и в других сферах, программирование не единственная вещь в мире

Полезные ссылки:

About

Дорожная карта (road-map) PHP-разработчика

License:MIT License