Собеседование программиста PHP. Как оценить навыки

Текст статьи будет полезен IT рекрутерам, которые уже имели опыт в подборе ит специалистов. Молодым ресечерам статья может показаться сложной из-за терминологии. Мы описали самые ключевые моменты, которые важно знать о языке, чтобы подбор ит персонала стал для вас проще.

И так. Собеседование программиста PHP. Как оценить навыки. Поехали...

Самый популярный скриптовый язык PHP существует уже более 25 лет. Как и Python, PHP - это еще один язык программирования, разработанный одним разработчиком в качестве сайд проекта в 90-е гг. Долговечность этого скрипта означает, что прошло довольно много времени, чтобы инженеров успешно прокачали свои навыки в нем.

По данным W3Techs, PHP используется в 78,3% всех веб-сайтов с известным серверным языком программирования, т.е. около 40 миллионов действующих веб-сайтов. Это означает, что почти 8 из 10 сайтов, которые вы посещаете в Интернете, каким-то образом используют PHP.

Несмотря на то, что он может устаревать, а количество используемых языков сокращается, Stack Overflow показал, что PHP по-прежнему остается в топ-10 самых популярных и доступных языков программирования. Он используется крупными сайтами, такими как Википедия и Facebook, а также в некоторых крупнейших мировых проектах с открытым исходным кодом, таких как WordPress и Drupal.

Благодаря повсеместному использованию, нетрудно найти разработчиков. Но в этой статье мы расскажем вам все, что нужно знать о языке и о том, как лучше всего проверить навыки в общении с кандидатом на вакансию PHP программист.

1. Что такое PHP?
Вы можете спросить, что вообще кто такой PHP разработчик или что делает PHP разработчик?
Ну, разработчик PHP пишет, тестирует и поддерживает исходный код для приложений, программ и веб-сайтов, использующих PHP. Язык сценариев на стороне сервера с открытым исходным кодом, используемый в основном для бизнес-приложений и веб-разработки. Простым языком :))

PHP-это скриптовый язык и интерпретатор, который находится в свободном доступе и используется в основном на веб-серверах Linux. Название, первоначально полученное от Personal Home Page Tools, теперь означает PHP: гипертекстовый препроцессор.

Язык сценариев - это язык, который интерпретирует сценарии во время выполнения. Эти сценарии обычно встроены в другие программные среды. Целью скриптов обычно является повышение производительности или выполнение рутинных задач для приложения. Сценарии на стороне сервера интерпретируются на сервере, в то время как сценарии на стороне клиента интерпретируются клиентским приложением.

1.1. PHP предлагает функциональное и объектно-ориентированное программирование (ООП)
PHP имеет очень полный набор функций объектно-ориентированного программирования, включая полную объектную модель. Некоторые из его особенностей: видимость, абстракция классов и окончательные ключевые слова, интерфейсы, клонирование и тп. PHP обрабатывает объекты так же, как ссылки или дескрипторы, то есть каждая переменная содержит ссылку на объект, а не копию всего объекта.

Функциональное программирование возможно с помощью PHP, однако это не часто используемая парадигма в рамках языка. Другие языки были созданы с учетом функционального программирования (Haskell, Swift) и поэтому лучше подходят для этого.

1.2. Как долго используется PHP?
Как уже упоминалось ранее, PHP существует с 90-х годов. Его разработка началась в 1994 году, когда Расмус Лердорф написал несколько программ Common Gateway Interface (CGI) на языке С (си), которые он использовал для поддержания своей личной домашней страницы. Он расширил их для работы с веб-формами и для связи с базами данных, и назвал эту реализацию "Personal Home Page/Forms Interpreter" или PHP/FI.

1.3. Похож ли PHP на какие-либо другие языки?
Cи имеет большое влияние на PHP – так как создатель намеревался сделать PHP шаблонизирующим движком для вызова функций C. Таким образом, PHP сохраняет синтаксис C стиля фигурных скобок и точек с запятой. Визуально PHP напоминает C, C++ и Java.

Что касается использования, PHP и JavaScript довольно похожи – поскольку они традиционно разделяют пространство веб-стека на протяжении десятилетий. Многие основные синтаксические конструкции между PHP и JS почти идентичны и имеют схожие интерпретации. Это особенно верно для циклов, условных обозначений, функций и манипуляций с массивами. Совсем недавно JS также принял синтаксис на основе классов, который еще больше привлекает парадигмы к тому, как мы используем PHP. Игнорируя синтаксис, Python по своему использованию приближается к PHP. На самом деле Python может быть использован в качестве замены PHP во многих случаях.

2. Для чего используется PHP?
PHP в основном ориентирован на серверные скрипты, поэтому вы можете выполнить все, что может сделать CGI программа. Это включает в себя сбор данных формы, генерацию динамического содержимого страницы или отправку и получение файлов cookie.

Наиболее популярные способы использования языка PHP разработчиками включают в себя:
2.1. Веб-сайты и веб-приложения (серверные сценарии): наиболее традиционной и основной областью использования PHP-разработчиков является серверный сценарий. Серверные скрипты относятся к PHP коду, который создается на веб-сервере до того, как данные будут видны в браузере пользователя.

2.2. Сценарии командной строки: помимо создания веб-приложений и веб-сайтов, существует множество других задач, которые должны выполняться в фоновом режиме на веб-сервере. Для этого вам не нужен ни сервер, ни браузер, только PHP парсер и несколько строк кода.

2.3 Написание desktop приложений: существуют расширения, доступные для PHP, чтобы помочь в создании клиентских приложений. Однако PHP не очень подходит для создания десктоп приложений с графическим пользовательским интерфейсом.

3. Каковы преимущества использования PHP?
В целом PHP считается простым языком программирования для людей, которые только начинают учиться программировать. Как и в любом языке программирования, PHP имеет правила кодирования, аббревиатуры и логарифмы, которые довольно просты в освоении. PHP часто используется для автоматизации программирования, веб-приложений, серверных приложений, приложений software-as-a-service и многих других.

Несколько кратких моментов об основных особенностях PHP:
3.1. Кроссплатформенность:
PHP работает на различных типах платформ. Он поддерживается большинством операционных систем, включая Solaris, UNIX, Windows и Linux. Он также легко взаимодействует с MySQL и Apache. Он может легко интегрироваться с Java.

3.2. Он прост в использовании:
PHP широко используется из-за его удобства для пользователя. В отличие от других сложных языков программирования, PHP прост, свободен, чист и организован, поэтому он является благословением для новых пользователей. PHP имеет хорошо организованный синтаксис, который в тоже время логичен.

3.3. Простое подключение к базе данных:
Такой широко используемый язык программирования, как PHP, должен очень часто подключаться к базе данных. PHP имеет встроенный модуль, который помогает ему легко подключаться к базам и поэтому значительно сокращает время, необходимое для управления ими.

3.4. Открытый исходный код:
Важным преимуществом для разработчиков является то, что PHP легко доступен и бесплатен для любого пользователя. Это в отличие от других скриптовых языков, используемых для веб-разработки, которые требуют от пользователя платить за файлы поддержки. PHP открыт для всех, в любое время и в любом месте.

4. Что должен знать ИТ рекрутер о PHP?
Мы составили список вопросов, которые могут быть уместны для IT рекрутеров, чтобы знать, прежде чем искать, отбирать и интервьюировать кандидатов на должность PHP разработчика.

4.1. Как часто меняется технический стек?
28 июня 2011 года команда разработчиков PHP реализовала график будущего выпуска новых версий для PHP. В соответствии с этой системой, по крайней мере один релиз должен быть каждый месяц. Один раз в год следует выпускать незначительный релиз, который может включать в себя новые функции. Каждый незначительный релиз должен поддерживаться, по крайней мере, в течение двух лет с безопасностью и исправлениями ошибок. За этим следует, по крайней мере, один год только исправлений безопасности, в общей сложности трехлетний процесс выпуска.

Никакие новые функции, за исключением небольших и автономных, не должны быть введены во второстепенный выпуск в течение трехлетнего процесса. Последние версии PHP - PHP 7.2.29, PHP 7.3.16 и PHP 7.4.4, выпущенные на 19 марта 2020 года.

4.2 Существует ли много доступных ресурсов / инструментов / технологий?
PHP включает различные бесплатные и открытые библиотеки в свой исходный дистрибутив или использует их в результирующих двоичных сборках PHP.

PHP - это в основном интернет-ориентированная система со встроенными модулями для доступа к серверам протокола передачи файлов (FTP) и многим серверам баз данных, включая PostgreSQL, MySQL, Microsoft SQL Server и SQLite (который является встроенной базой данных), LDAP серверам и другим.

Многочисленные функции, знакомые программистам на языке Си, такие как функции в <stdio.H> family, доступны в стандартных PHP-сборках. Этот язык позволяет разработчикам писать расширения на языке Си, чтобы добавить функциональность к языку PHP. Расширения PHP могут быть скомпилированы статически в PHP или загружены динамически во время выполнения.

Самые популярные PHP фреймворки:
  • Zend Framework
  • Symfony
  • Yii
  • Laravel
  • CakePHP
Наиболее популярные системы управления контентом PHP включают в себя:
  • WordPress
  • Drupal
  • Joomla
  • Magento

4.3. Что должен знать PHP-разработчик?
Работодатели обычно ищут несколько навыков у PHP-разработчика. Прежде всего, разработчик PHP должен быть знаком с концепциями ООП (объектно-ориентированного программирования), которые широко используются в современных языках программирования. Это также поможет им, если они знакомы с различными PHP-фреймворками на основе MVC (Model View Controller).

Во-вторых, разработчику необходим опыт в создании и использовании веб-сервисов. Это очень важно, так как они будут использовать в своих проектах несколько сторонних веб-сервисов.

Некоторые другие навыки PHP программиста, которыми он должен свободно владеть, включают в себя модульное тестирование фреймворка, обработку HTTP запросов, синтаксический анализ JSON, XML и использование установщиков пакетов, таких как composer, pear, pecl, оптимизацию кода для повышения производительности и т. д.

4.4. Какой опыт работы нужно искать у разработчиков на PHP?
Большинство программистов имеют степень бакалавра в области компьютерных наук, информационных технологий, разработки программного обеспечения или других областях, связанных с ИТ. Но формальное образование не обязательно. Чтобы подготовиться к карьере в области разработки PHP, понимание ит специалиста должно включать курсы по компьютерной архитектуре, алгоритмам и структурам данных, объектно-ориентированному программированию, операционным системам, количественному мышлению и веб-программированию.

Для разработчика PHP стало очень важно иметь знания о Ajax, jQuery и MySQL. Будучи фулл стеком с навыками использования JavaScript, CSS и HTML для правильного кодирования веб-сайтов, также важно, потому что эти навыки позволяют им исправлять ошибки, сделанные веб-дизайнером.

Навыки PHP-разработчика в CakePHP (open-source web framework) и PHPUnit (unit testing framework) также стали важными. Другие навыки, которые будут полезны для их изучения, - это API, Unix / Linux и архитектура фреймворка MVC. Все эти технические навыки будут важны для специалиста, независимо от того, работают ли они в корпоративной среде или внештатно. Если вы нанимаете PHP программиста, коммерческий опыт и опыт работы с открытым исходным кодом кажутся наиболее подходящими для кандидата.

5. Как проверить навыки PHP разработчика на этапе скрининга?
Чтобы стать очень талантливым прогером на PHP, кандидат должен обладать определенными навыками, чтобы преуспеть в своей роли. Важно понимать, что тестирование всех необходимых навыков на этапе собеседования увеличит время, затраты и хлопоты в процессе подбора ит персонала. Чтобы свести к минимуму эти трудности и помочь рекрутерам в этом процессе, ПО для предварительного тестирования играет очень важную роль. Платформа Devskiller RealLife TestingTM - это фантастический инструмент, который поможет вам.

Для оценки навыков PHP разработчика IT рекрутер может использовать один из следующих способов:
  • Пример работы задачи программирования
  • MCQs (вопросы с множественным выбором)
  • MAQs (несколько вопросов с ответами)
  • Заполните пробелы, вопросы на доске
  • Аудио / Видео Вопросы
  • LogicBox (AI-based Pseudo-Coding Platform)
  • Имитаторы кодирования
  • Кейсы и вопросы в ходе интервью
5.1. Скрининг PHP разработчика по его резюме
Точно так же, как должностные инструкции являются первой точкой контакта кандидатов с вами, их резюме будет одной из ваших первых точек контакта с ними. Но прими это так: первая точка соприкосновения. Не придавайте слишком большого значения образованию (если это не требует руководитель) – конечно, блестящая степень с отличием выглядит красиво и свидетельствует о том, что кто-то усердно работает, но когда дело доходит до разработки программного обеспечения, это все, что вы можете взять из нее.

Тем не менее, есть некоторые вещи, которые следует учитывать при просмотре резюме кандидата:
Опыт работы – какого уровня сотрудника вы ищете?
Навыки и знания - есть ли конкретный навык, который вы хотите найти?
Образование - подходит ли ваш кандидат на эту роль?
Компетенции - какими поведенческими, функциональными или профессиональными способностями они обладают?

5.2 Глоссарий PHP для IT рекрутеров
  • Versions: PHP 1.0 – 7.4
  • Frameworks: Symfony, Zend, Laravel, Yii
  • CMSs: Magento, WordPress, Drupal, Joomla
  • Build tools: Ant, Maven, Gradle, Phing
5.3 Версии PHP:
  • Первая версия: 1.0 июнь 1995 года
  • Самый старый поддерживаемый в настоящее время: 7.2 (поддерживается до ноября 2020 года)
  • Последняя версия: 7.4 ноябрь 2019
  • Версии: релизы
5.4 Версии фреймворка:
Symfony
  • первая версия: 1.0 январь 2007 года
  • последняя версия: 5.0.7 ноябрь 2019
  • версии: https://symfony.com/releases
Zend
Laravel
Yii
5.5. Версии CMS:
Magento
WordPress
  • первая версия: 0.7 мая 2003 года
  • последняя версия: 5.4 март 2020
  • версии: релизы
Drupal
  • первая версия: 1.0.0 январь 2001 года
  • последняя версия: 8.4.4 март 2020 года
  • версии: релизы для Drupal core
Joomla
  • первая версия: 1.0 июль 2009 года
  • последняя версия: 3.9.16 март 2020
  • версии: категория: история версий
5.5. Какие версии PHP похожи друг на друга?
Все PHP 5.X очень похожи друг на друга с незначительными различиями.

5.6. Могут ли какие-либо имена использоваться взаимозаменяемо? Какие версии совершенно разные?
Каждая версия имеет свое название, например, версия 5.4 называется PHP 5.4 и 7.1 версии называется в PHP 7.1. Чтобы дать вам представление, версия, начинающаяся с другого номера префикса, не может быть понятна с другим номером префикса. Например PHP 5.X полностью отличается от PHP 7.X.

5.7 Насколько полезны сертификаты для определения квалификации? Какие сертификаты существуют?
Существуют различные мнения относительно того, подтверждает ли получение сертификата в PHP ваши навыки работы с PHP. Хотя большинство разработчиков являются самоучками, получение сертификата может быть полезно для карьеры разработчика, поскольку это формализует их знание языка.
В недавнем исследовании Pearson Frank Java, Web и PHP salary survey 32% респондентов имеют по крайней мере один или несколько профессиональных сертификатов. Из опрошенных респондентов, имеющих сертификаты, 21% заявили, что их зарплата увеличилась с момента завершения сертификации.

Короче говоря, это не совсем необходимо, но и не повредит. Вот основные формы сертификации, которые есть:
  • Сертификация Zend PHP 7
  • Сертификация Zend Framework 2
  • Сертификаты PHP Framework, такие как Symfony, Laravel и т. д.
5.8. Какие еще строки в резюме могут демонстрировать навыки?
  • Указание версии используемого языка
  • Работа над типичным для PHP или популярным PHP фреймворком проектом
  • Участие в крупных проектах, связанных со странными и жесткими требованиями
  • Участие в проектах, разделенных на микросервисы
  • Участие в проектах сети с высоким трафиком
6. Какие вопросы нужно задать во время телефонного / видео технического интервью?
Трудно полагаться только на слова в резюме. В конце концов, важно бросить вызов кандидату, чтобы определить, действительно ли у него есть навыки разработчика PHP, о которых он утверждает. Даже если это всего лишь телефонное интервью, оно может помочь вам понять, как кандидат думает и идет к решению проблем, связанных с его ремеслом.

6.1. Вопросы об опыте кандидата
Вопрос 1: Можете ли вы рассказать мне о некоторых проектах, над которыми вы работали, и о подходе, который вы использовали от начала до конца?
Ответ 1: Это хороший вопрос для интервью с веб-разработчиками, потому что вы можете узнать об их стиле работы. Это показывает, как они собирают требования, решают проблемы, управляют отзывами пользователей, управляют качеством и сотрудничают в команде. Их реакция также покажет вам уровень их энтузиазма в отношении веб-разработки.

Вопрос 2: Есть ли у вас какие-либо проекты, над которыми вы работаете (или работали) в свободное время?
Ответ 2: Ведущие разработчики тратят значительную часть своего собственного времени на то, чтобы возиться и оставаться на вершине новых тенденций. Кандидаты должны иметь возможность обсудить свои личные проекты, как прошлые, так и настоящие, и, возможно, даже показать вам свою работу.

6.2 Поведенческие вопросы, которые вы должны задать, чтобы понять, как кандидат действовал в прошлом
Вопрос 3: Что вы делаете, когда приложение перестает работать?
Ответ 3: Решение проблем лежит в основе веб-разработки, поэтому послушайте, как кандидат говорит о том, чтобы исправить вещи, которые идут не так. Разбивают ли они ситуацию и анализируют ли потенциальные причины? Знают ли они, когда обратиться за помощью и куда обратиться за ответами? Как они отреагируют, если их первая идея решения не сработает?

Вопрос 4: Назовите веб-сайт или приложение, которое вас раздражает. Что с ним не так?
Ответ 4: Этот вопрос интервью веб-разработчика спрашивает об осведомленности кандидата о текущих проблемах в веб-разработке, а также о его собственных способностях решать проблемы. Хороший ответ - это тот, где они решают проблему больше, чем просто жалуются на чужую работу. Опытные PHP разработчики предложат реальные решения практических вопросов, таких как улучшение времени загрузки или оптимизация пользовательского опыта.

6.3 Вопросы о знаниях и мнениях кандидата
Вопрос 5: в чем разница между SOAP и REST?
Ответ 5: это два протокола веб-служб, которые разработчики должны знать. Одно из ключевых отличий заключается в том, что SOAP использует XML, в то время как REST также поддерживает текстовые, JSON и другие форматы. Веб-разработчики могут иметь разные мнения о том, какой из них лучше, но они должны продемонстрировать понимание обоих.

Вопрос 6: С какими CMS / фреймворками вы работали?
Ответ 6: Некоторые распространенные системы управления контентом с открытым исходным кодом (CMS) - это WordPress, Joomla и Drupal. Чтобы получить дополнительную информацию о навыках программиста, спросите, участвует ли он в соответствующих сообществах с открытым исходным кодом и вносили ли туда какой-либо вклад.

Вопрос 7: В чем разница между PHP 5.6 и 7.х.?
Ответ 7: Вопрос заключается в том, чтобы оценить уровень знакомства кандидата с версиями PHP. Многие компании до сих пор используют PHP 5.x и подобные вопросы вполне естественны, особенно в контексте перехода на версию 7.

Вопрос 8: Каковы различия между методами PUT и PATCH HTTP?
Ответ 8: Этот вопрос предназначен для проверки знаний разработчиков о протоколе HTTP и различиях между методами HTTP.

Вопрос 9: Объясните полиморфизм и наследование
Ответ 9: Вопрос заключается в том, чтобы проверить, насколько кандидат знаком с основными концепциями ООП. Эти знания являются ключевыми для оценки навыков PHP программиста.

7. Технический скрининг навыков PHP разработчика с помощью онлайн теста кодирования
Очень важно, чтобы ваш кандидат знал о гибкости PHP при разработке веб-приложений. В результате своей универсальности язык выработал множество нюансов и тонкостей, каждый разработчик, возможно, справляется с ними по-своему. Он должен не только знать все ниши использования, но и быть готовым изменить способ их работы, чтобы работать в составе вашей команды.

7.1. Какой тест онлайн программирования выбрать?
  • Тест отражает качество профессиональной работы в вашей компании
  • Продолжительность теста не должна быть абсурдна, максимум один-два часа
  • Тест может быть проведен в домашних условиях и носит прямой характер
  • Уровень сложности находится на одном уровне со способностями кандидата
  • Тест проверяет качество кода и то, насколько хорошо он работает
  • Он максимально приближен к естественной среде программирования и позволяет кандидату получить доступ к соответствующим ресурсам
  • Он дает кандидату возможность использовать все библиотеки, фреймворки и другие инструменты, с которыми он регулярно сталкивается
7.2. Devskiller онлайн тесты
Тесты кодирования Devskiller используют методологию RealLifeTestingTM для отражения реальной среды кодирования, в которой работает ваш кандидат. Вместо того чтобы использовать непонятные алгоритмы, тесты Devskiller требуют от кандидатов создания приложений или функций. Они оцениваются полностью автоматически и могут быть взяты из любой точки мира. В то же время кандидат имеет доступ ко всем ресурсам, которые он обычно использует, включая библиотеки, фреймворки, StackOverflow и даже Google.

Некоторые ключевые особенности тестов Devskiller:
  • Подлинная разработка программного обеспечения, а не академические проблемы
  • Тестирование полного стека означает, что кандидаты могут использовать свои всесторонние навыки разработчика PHP
  • Эти тесты могут быть приняты кандидатами в любое время и в любом месте
  • Естественная рабочая среда, в которой кандидат может разрабатывать программное обеспечение, использовать свою собственную IDE, клонировать в GIT, получать доступ к Stack Overflow/Github/Google для исследований и запускать модульные тесты, означает лучший опыт кандидатов
  • Надежный контроль плагиата проверяет точность навыков вашего кандидата
  • Тесты оцениваются автоматически и мгновенно, создавая отчет, который могут понять не технические рекрутеры.
  • Тесты для младших, средних и старших разработчиков
  • Компании используют Devskiller для тестирования кандидатов, используя свою собственную кодовую базу из любой точки мира.
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата