В августе 2018 года Google, Amazon, Apple объявили, что готовы нанимать лиц, не имеющих высшее образование. Решающим фактором при найме будет не образование, а наличие навыков в руках и понимания сути в голове. Если локомотивы IT-отрасли пошли на такой шаг, значит вскоре это распространится на всех, хотя примеров когда нанимают только благодаря умению, а не «корочкам» - масса.
По этой причине – мы задумались по поводу, что же должен уметь и знать php-разработчик.
Основы ООП (объектно-ориентированного программирования)
Необходимо знать, по крайней мере, некоторые понятия: абстрактные классы / методы, интерфейсы, наследование и т. д. Ориентация на ООП должна быть известна разработчику, независимо от того, какой язык он использует. Не зная, как работают языки программирования, в общем, вы не профессионал
MVC
Понимать, что такое MVC (Laravel, Symfony, Yii2, CodeIgniter), как это работает, хотя бы основные понятия. Когда это полезно и почему. Было бы очень полезно получить некоторый опыт, по крайней мере, в одной общей структуре.
Четкое понимание того, как использовать документацию PHP.net
Четкое понимание того, как использовать документацию PHP.net
Вряд ли существуют люди, которые синтаксис PHP и определения на 100%. В принципе, это и не нужно. Главное знать, как и где исправить свой пробел в знаниях и как интерпретировать документацию.
Отладка
Профессионал должен знать, как перейти от кода ошибки к устранению проблемы, даже в незнакомой структуре. Никто не будете паниковать из-за возникшей проблемы, если знать как пройти по маршруту ошибки.
Знать, как var_dump () + print_r () возвращают данные; как создавать план тестирования и где находится файл error.log.
REST
Что такое REST и как он работает в целом. Поскольку часто используются микросервисы в архитектуре, это будет важно.
PHPunit или PHP Testing Framework, навык написания единичного теста
Это было бы плюсом, потому что приходится часто использовать тестовую разработку.
Это не относится ко всем компаниям, но это важно. То же самое касается функциональных и регрессионных тестов.
MySQL
Даже не каждый проект использует реляционную базу данных в наши дни, но часто достаточно MySQL или PostgreSQL. Основы: что такое индекс и для чего он используется? Что такое ограничения/внешние ключи.
Безопасность
Многие веб-приложения имеют дело с пользовательскими данными, поэтому необходимо обезопасить их.Нужно иметь представление о SQL-инъекции и как ее избежать; что такое XSS и XSRF и как с ними справиться.
Основные принципы программного обеспечения
Достаточно проникнуться смыслом и сутью SOLID. Пожалуй, сейчас это самые лаконичные и основные принципы программирования.
Навыки в PHP и HTML5, CSS3
В сети 90% сайтов стоят на CMS (Drupal, Joomla, WordPress) из тех, что на движках. Потому нужно иметь представление об этих CMS и опыт запуска. Есть ещё множество навыков, которые не назвать первоочередными, но и последними они не являются. Это парсинг JSON, XML. Знание библиотек PEAR, PECL. Умения в JQuery, JavaScript и Bootstrap.
Обычно работодателям требуется несколько навыков, и даже умение во время что-то подпереть костылями.