Кто такой разработчик на PHP: технологии, навыки, зарплаты, вакансии
Рассказываем об одной из самых востребованных профессий среди программистов и о том, почему с неё легко начать свой путь в IT.
Иллюстрация: Polina Vari для Skillbox Media
PHP — это скриптовый язык общего назначения, который используют в веб-разработке. Годами ему пророчат смерть, но PHP до сих пор один из самых распространённых языков программирования. Он используется в 77% всех страниц в интернете, и далеко не всё из этого легаси.
У PHP слабая неявная динамическая типизация. Это значит, что интерпретатор сам определяет тип переменных во время выполнения программы. Разные типы можно смешивать в одном выражении, и они будут преобразовываться автоматически.
На практике это позволяет языку быть гибким и масштабируемым. Код на PHP пишется быстро — тем более что у него простой синтаксис. Скрипты будут работать, даже если в них есть грубые ошибки, хотя и с риском привести к непредсказуемым результатам.
Что делает разработчик на PHP
Будучи серверным языком, PHP используется в основном для бэкенд-разработки веб-сайтов, веб-приложений и веб-сервисов, причём любой сложности. Изначально его использовали для обслуживания персональных веб-страниц, но уже давно применяют в масштабных проектах, таких как Wikipedia, TED, «Авито», Yahoo, Badoo и BlaBlaCar. «Фейсбук»* и «ВКонтакте» тоже используют PHP (у них есть даже свои диалекты этого языка).
Сайты на PHP пишут не только напрямую, но и с помощью популярных CMS, созданных на этом языке, — например, WordPress, Drupal, «1C-Битрикс» и частично Joomla.
Преимущества PHP
- Большое комьюнити. У языка пятое по размерам сообщество на Stack Overflow. Если возникнет вопрос или проблема, то в интернете, вероятнее всего, уже кто-то опубликовал ответ или готовое решение. Проблем с поиском справочной информации точно не будет.
- Простой синтаксис и низкий порог входа. Процесс написания кода на PHP не занимает много времени, а сделать свой первый сайт на нём можно уже после месяца обучения. PHP часто выбирают в качестве первого языка.
- Множество библиотек и фреймворков, которые расширяют возможности языка и автоматизируют процессы. Среди них, например, Laravel, Symfony, Yii2.
- Востребованность. Вакансий очень много — только на HeadHunter больше их 3,5 тысячи. А ещё зарплаты у PHP-разработчиков растут быстрее, чем у разработчиков на других языках.
- Динамичное развитие. Постоянно выходят новые версии PHP, в которых исправляются недочёты и появляются новые возможности.
Недостатки PHP
- Низкая скорость. Из-за динамической типизации код на PHP выполняется медленно и потребляет много оперативной памяти. В PHP 7 и PHP 8 его оптимизировали и ускорили более чем в два раза по сравнению с прошлыми версиями. В PHP 8 появилась ещё и JIT-компиляция.
- Легко ошибиться, нужно быть внимательным. Это обратная сторона простоты и гибкости языка. Так как язык прощает многие ошибки, то допустить их легко, а отловить бывает трудно. Впрочем, начиная с PHP 7, можно включить режим строгой типизации.
- PHP медленно, но верно теряет популярность. Если пять лет назад по индексу TIOBE он был на седьмом месте, то сейчас — только на десятом. В своей нише ему приходится конкурировать с другими языками — например, с Go.
План обучения: что нужно знать, чтобы писать код на PHP
- HTML и CSS. Так как PHP — язык веб-разработки, то для программирования на нём нужно понимать, как устроены интернет-страницы.
- Основы JavaScript, особенно если вы хотите быть фулстек-разработчиком. Если собираетесь специализироваться на бэкенде, то базовое знание JavaScript всё равно будет почти обязательным.
- Дальше можно переходить непосредственно к PHP и выучить его синтаксис, переменные, типы данных, условные конструкции, циклы и функции.
- Так как PHP поддерживает объектно-ориентированное программирование, знание его основных принципов будет хорошим преимуществом на начальных порах и необходимым в дальнейшем развитии.
- Затем будет необходимо понять принцип работы HTTP и научиться работать с API.
- Также нужно разбираться в базах данных и уметь управлять ими с помощью SQL. А после освоения этого — научиться взаимодействовать с базами данных через PHP.
- При желании можно начать изучать какой-нибудь фреймворк: понимать, что он делает и как работает, хотя бы на базовом уровне.
- Ещё необходимо умение работать с Git.
Эти навыки позволят претендовать на должность джуниор-разработчика на PHP. В дальнейшем работодатели будут требовать более глубокого знания фреймворков, которые используются в их проекте. Вот несколько самых распространённых фреймворков:
- Symphony. Зрелый фреймворк с длинной историей. Очень гибкий и функциональный, нацелен на безопасность. Разработчики отмечают, что у него отличная документация.
- Laravel. Самый популярный фреймворк для PHP. У него огромное сообщество, лёгкий синтаксис и множество инструментов. Он автоматизирует многие процессы, что позволяет быстро писать код, — в среде программистов даже существует выражение «магия Laravel».
- Yii2. Считается одним из самых быстрых фреймворков. Он простой и высокопроизводительный. Его разрабатывает русскоязычная команда, поэтому он особенно популярен в России.
- CodeIgniter. Компактен, легко устанавливается и прост в освоении.
- CakePHP. Обладает большим набором компонентов и выделяется высокой надёжностью.
- Laminas (бывший Zend Framework). Хотя и довольно сложен в освоении, имеет множество модулей и компонентов и позволяет подключать сторонние.
PHP для новичков в программировании
Сфера применения PHP ограничена только веб-разработкой, причём в бэкенде. Если вы хотите работать в других сферах, этот язык вряд ли вам подойдёт.
Несмотря на то что для программирования на PHP нужно знать несколько сопутствующих технологий, он остаётся одним из самых дружелюбных к новичкам языков.
Если вы хотите войти в программирование быстро и безболезненно, то PHP будет отличным стартом. Он позволяет сосредоточиться на выполнении задачи, а не на правильном построении синтаксических конструкций.
Но из-за этого становится просто написать плохой и нечитаемый код. Он, конечно, будет функционировать, но вот работать с ним будет тяжело. Это одна из причин, почему профессиональное сообщество в своё время невзлюбило этот язык. Так что для того, чтобы писать на PHP качественный код, вы должны будете разобраться в теории построения архитектуры программ.
Что с работой: вакансии, зарплаты и обязанности
На август 2022 года на HeadHunter опубликовано 3,5 тысяч вакансий PHP-разработчика. Разброс зарплат широкий: от 20 до 100 тысяч рублей для джуниоров, от 100 до 250 тысяч для мидлов и от 230 до 500 тысяч для сеньоров.
При этом, по данным июньского исследования SuperJob, в среднем джуны могут рассчитывать на зарплату от 60 до 90 тысяч в регионах и от 90 до 120 тысяч в Москве.
На «Хабр.Карьере» опубликовано почти 200 вакансий для PHP-разработчиков. Среди работодателей — такие крупные компании, как VK, «Сбер», МТС, «МегаФон», «Ростелеком», «Банки.ру» и «Авито».
От джунов ожидают владения языком, умения работать с HTML и CSS (иногда добавляется XML) и базами данных, знания сетевых протоколов. Нередко среди требований называют навыки работы с консолью, знание JavaScript, принципов ООП и какого-нибудь фреймворка. Но джуну почти никогда не предъявляют их разом.
Мидлу же обычно нужно соответствовать каждому или почти каждому из пунктов — плюс имеет смысл знать PHP Standards Recommendations (PSR), уметь работать в Docker и *nix-средах. Обязательно знание хотя бы одного фреймворка. Для фулстек-разработчиков большим плюсом будет, если они знают ещё и фреймворк какого-нибудь языка для фронтенда (JavaScript, например).
Требования к сеньорам разнятся в зависимости специфики работы. Помимо джуновских и мидловских навыков, им нужно уметь проектировать архитектуру приложений, сервисов и баз данных — и улучшать существующую. Также от них часто требуют знания в области веб-безопасности, опыт работы с высоконагруженными системами, Redis, Sphinx, RabbitMQ, Memcached. Они должны знать несколько фреймворков, сопутствующие и смежные технологии и паттерны программирования, уметь применять их.
В вакансиях сеньоров чаще, чем в вакансиях для других грейдов, пишут о софт-скиллах: умении работать в команде и руководить ей, доносить технологические идеи понятным языком.
Где учить PHP
Так как для программирования на PHP обычно не нужны глубокие академические знания, изучить его можно самостоятельно или пройдя курсы.
Язык быстро развивается, так что образовательные программы многих вузов могут не поспевать за изменениями. Впрочем, высшее образование даёт базовые знания, которые могут пригодиться при использовании смежных и сопутствующих технологий. Если вы хотите учиться PHP в вузе, то обратите внимание на направления «Информатика и вычислительная техника», «Прикладная математика и информатика», «Программная инженерия», «Информационные системы и технологии».
Если вы собираетесь учить PHP самостоятельно и на курсах, то обратите внимание на постоянно обновляемый справочник PHP The Right Way. Он переведён на русский язык.
Резюмируем
PHP — чрезвычайно востребованный язык для бэкенд-разработки. Он дружелюбен к новичкам, но для работы с ним нужно овладеть сопутствующими технологиями (тоже несложными). Язык прощает ошибки, поэтому при программировании на нём особенно важно быть внимательным и уметь писать хороший код.
PHP постоянно обновляется и улучшается, вбирая в себя находки и преимущества других языков, а крупное комьюнити активно развивает его экосистему. Этот язык подойдёт тем, кому интересна веб-разработка и работа с базами данных.
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».