Como selecionar as habilidades dos desenvolvedores de PHP

How to screen PHP developer skills Blog

The popular scripting language PHP has been around for the last 25 years. Like Python, PHP is another programming language developed by a single developer as a side project during the ’90s. The longevity of this script means a fair amount of time has passed for software engineers to work on their PHP developer skills. 

According to W3Techs’ dados, PHP is used by 78.3% of all websites with a known server-side programming language with approximately 40 million live websites using PHP as we speak. That means almost 8 out of every 10 websites that you visit on the Internet are using PHP in some way. 

Though it may be aging, and the usage numbers of the language are in decline, Stack Overflow has revealed that PHP still remains in the top 10 most popular programming, scripting, and markup languages available.  It’s used by major sites such as Wikipedia and Facebook as well as in some of the world’s biggest open-source projects like WordPress and Drupal. 

Because of PHPs ubiquitous nature, it’s not difficult to find developers claiming PHP skills. But in this article, we’re going to tell you all you need to know about the language and how best to test for PHP developer skills. 

Tabela de Conteúdos

PHP developer skills: What is PHP?1. What is PHP? 

You might be asking what even is a PHP developer, or what does a PHP developer do? 

Well, a PHP developer writes, tests, and maintains the source code for applications, programs, and websites using PHP. An open-source, server-side scripting language primarily used for business applications and web development. 

PHP is a script language and interpreter that is freely available and used primarily on Linux Web servers. The name, originally derived from Personal Home Page Tools, now stands for PHP: Hypertext Preprocessor.

A scripting language is a language that interprets scripts at runtime. These scripts are usually embedded into other software environments. The purpose of the scripts is usually to enhance the performance or perform routine tasks for an inscrição. Server-side scripts are interpreted on the server while client-side scripts are interpreted by the client application.

1.1  PHP offers functional and object-orientated programming

PHP has a very complete set of object-oriented programming features including a complete object model. Some of its features are: visibility, class abstraction e final keywords, additional magic methods, interfaces, cloning, and type hinting. PHP treats objects in the same way as references or handles, meaning that each variable contains an object reference rather than a copy of the entire object.

Functional programming is possible with PHP however it is not a commonly used paradigm within the language. Other languages have been created with functional programming in mind (Haskell, Swift) and therefore are better suited for this.

1.2 How long has PHP been in use? 

As mentioned previously, PHP has been around since the 90s. 

Its development began in 1994 when Rasmus Lerdorf wrote several Common Gateway Interface (CGI) programs in C, which he used to maintain his personal homepage

He extended them to work with web forms and to communicate with databases, and called this implementation “Personal Home Page/Forms Interpreter” or PHP/FI.

1.3 Is PHP similar to any other languages?

C has a big influence on PHP – as the creator intended PHP to be a templating engine to call C functions. As such, PHP retains the C-style syntax of curly braces and semicolons. Visually, PHP resembles C, C++, and Java.

In regards to usage,  PHP and JavaScript are quite similar – as they traditionally have shared the web-stack space for decades. A lot of the basic syntax between PHP and JS are near-identical and have similar interpretations. This is especially true of loops, conditionals, functions, and array manipulation. 

More recently, JS has also adopted class-based syntax which further draws paradigms to the way we use PHP. Ignoring syntax, Python comes close to PHP in usage. In fact, Python can be used as a substitute for PHP in many cases.

2. What is PHP used for? 

PHP is mainly focused on server-side scripting, so you can accomplish anything a CGI program can do. This includes collecting form data, generating dynamic page content, or sending and receiving cookies.

The most popular uses for PHP developers include:

2.1 Websites and web applications (server-side scripting): The most traditional and main area of use for PHP developers is server-side scripting. Server-side scripting relates to the PHP code that is created on the web server before the data is visible on the user’s browser.

2.2 Command line scripting: Apart from building web applications and websites, there are many other tasks that need to be run in the background on the webserver. For this you don’t need any server or browser, just a PHP parser and a few lines of code. 

2.3 Writing desktop applications: There are extensions available for PHP to help with the creation of client-side applications. However, PHP is not best suited to create desktop applications with a graphical user interface.

3. What are the advantages of using PHP?

In geral, PHP is regarded as an easy programming language for people who are just starting to learn to program. As with any programming language, PHP has rules of coding, abbreviations, and logarithms which are fairly simple to master. 

PHP is often used for programming automation, web applications, server-side applications,  software-as-a-service applications, and many others. 

It pays to know why PHP developers and their PHP developer skills exist. Here are some quick points on its main features:

3.1 Cross-platform:

PHP runs on various types of platforms. It is supported by the majority of operating systems, including Solaris, UNIX, Windows, and Linux. It also easily interfaces with MySQL and Apache. It can effortlessly integrate with Java. 

3.2 It’s easy to use:

PHP is widely used because of its user-friendliness. In contrast to other programming languages that are complex, PHP is simple, fluent, clean, and organized, hence it is a blessing for new users. PHP has a well-organized syntax which is logical at the same time.

3.3 Easy database connection:

A widely-used programming language like PHP needs to connect to the base de dados very often. PHP has a built-in module that helps it with connecting to databases easily and therefore significantly reduces the time needed to manage said databases. 

3.4 Open source:

An important advantage for developers is that PHP is readily available and free for any user. This is in contrast to other scripting languages used for web development which require the user to pay for support files. PHP is open to everyone, anytime, and anywhere.

What should an IT recruiter know about PHP?4. What should an IT recruiter know about PHP? 

We’ve made a list of questions that might be pertinent for IT recrutadores to know before searching for, screening, and interviewing PHP developer skills. 

4.1 How often does its tech stack change? 

On June 28th, 2011, the PHP Development Team implemented a timeline for the future release of newer versions for PHP. Under this system, at least one release should be dropped every month. Once per year, a minor release should drop which may include new features. 

Every minor release should at least be supported for two years with security and bug fixes. This followed by at least one year of only security fixes, for a total of a three-year release process for every minor release. 

No new features, unless small and self-contained, are to be introduced into a minor release during the three-year release process. The latest versions of PHP are PHP 7.2.29, PHP 7.3.16, and PHP 7.4.4 released on 19 Mar 2020.

4.2 Are there many resources/tools/technologies available?

PHP includes various free and open-source libraries in its source distribution or uses them in resulting PHP binary builds. 

PHP is fundamentally an internet-aware system with built-in modules for accessing File Transfer Protocol (FTP) servers and many database servers, including PostgreSQL, MySQL, Microsoft SQL Servere SQLite (which is an embedded database), LDAP servers, and others. 

Numerous functions familiar to C programmers, such as those in the <stdio.h> family, are available in standard PHP builds. The language allows developers to write extensions em C to add functionality to the PHP language. PHP extensions can be compiled statically into PHP or loaded dynamically at runtime.

The most popular PHP Frameworks include:

  • Estrutura Zend
  • Symfony 
  • Yii 
  • Laravel
  • CakePHP

The most popular PHP Content Management Systems include:

  • WordPress
  • Drupal
  • Joomla
  • Magento

What should a PHP developer know about?4.3 What should a PHP developer know about?

Employers generally look for several PHP developer skills. Primarily, the PHP developer needs to be familiar with the OOP (Object Oriented Programming) concepts which are widely used in modern programming languages. It will also help them if they are familiar with different MVC (Model View Controller) based PHP frameworks. 

Secondly, the developer needs experience in creating and consuming web services. This is super important since developers will be using several third-party web services in their projects. 

Several other PHP developer skills the developer must be fluent with include unit testing framework, handling HTTP requests, parsing JSON, XML, and the use of package installers e.g. composer, pear, pecl, optimizing code for performance etc.

4.4 What type of experience is important to look for in a PHP developer?

Most developers have a bachelor’s degree in computer science, information technology, software engineering, or other IT-related fields. But formal education isn’t exactly necessary. To prepare for a career in PHP development, a developer’s understanding should include courses in computer architecture, algorithms, and data structures, object-oriented programming, operating systems, quantitative reasoning, and web programming.

It has become essential for a PHP developer to have knowledge of Ajax, jQuery, and MySQL. Being Full-Stack developers with the skills for using JavaScript, CSS, and HTML to properly code websites is also important because these skills enable them to repair the mistakes made by a web designer.

PHP developer skills in CakePHP (open-source web framework) and PHPUnit (unit testing framework) have also become important. Other skills that will be useful for them to learn are APIs, Unix/Linux, and MVC Framework Architecture. All of these technical skills will be important for developers whether they work in a corporate setting or freelance. If you’re hiring a PHP developer, commercial and open-source experience seem like the most relevant experience a candidate can have. 

5. How to verify PHP developer skills in the screening phase?

To become a highly talented PHP developer, a candidate must possess specific skills in order to excel in their role. It is important to understand that testing all the required skills at the interview stage will increase the time, costs, and hassle in the recrutando process. This makes the process more tedious. 

To minimize these difficulties and to assist recruiters and hiring managers in this whole process, pre-employment testing software plays a very crucial role. DevSkiller’s RealLife TestingTM platform is a fantastic tool to help you with your next hire. 

To evaluate a PHP developer, a recruiter may use one of the following mediums:

  • Work sample Programming tasks 
  • MCQs (Perguntas de Escolha Múltipla), 
  • MAQs (Perguntas de Resposta Múltipla) 
  • Preencha os espaços em branco, perguntas do quadro branco 
  • Perguntas de Áudio / Vídeo 
  • LogicBox (Plataforma Pseudo-Codificadora baseada em IA) 
  • Simuladores de codificação 
  • Perguntas verdadeiras ou falsas, etc.

5.1 Screening a PHP developer using their resume

Just like job descriptions are candidates’ first point of contact with you, their resume is going to be one of your first points of contact with them.
But take it as that: a first point of contact. Don’t put too much emphasis on a candidate’s educational pedigree – sure, a shiny degree with honors looks nice and is an indication that someone is a hard-worker, but when it comes to software development, that’s sort of all you can take from it.

That being said, there are some things to take into account when screening a candidate’s resume:

  • Work experience – what tier employee are you looking for? 
  • Skills and knowledge – is there a specific skill you’re looking to fill?
  • Education – is your candidate qualified for the role?
  • Competencies –  what behavioral, functional, or professional abilities do they have?

PHP glossary5.2 A PHP glossary for technical recruiters 

VersionsPHP 1.0 – 7.4
FrameworksSymfony, Zend, Laravel, Yii
CMSsMagento, WordPress, Drupal, Joomla
Construir ferramentasAnt, Maven, Gradle, Phing

5.3 PHP Versions:

  • first version: 1.0 June 1995
  • Oldest currently supported: 7.2 (supported until November 2020)
  • latest version: 7.4 November 2019
  • versions: Releases

5.4 Framework Versions:

Symfony 

Zend 

Laravel

  • first version: 1.0 June 2011
  • latest version: 7.0 March 2020
  • versions: Release Notes

Yii

5.5 CMS Versions:

Magento

WordPress

  • first version: 0.7 May 2003
  • latest version: 5.4 March 2020
  • versions: Releases

Drupal

Joomla

5.5 Which versions of PHP are similar to each other?

All PHP 5.X versions operate very similarly to one another with only minor differences.

5.6 Can any names be used interchangeably? Which versions are completely different?

Each version has its own name, for instance, version 5.4 is called PHP 5.4 and version 7.1 is called PHP 7.1

To give you an idea, a version beginning with a different prefix number is not intelligible with the other. For instance PHP 5.X is completely different from PHP 7.X.

5.7 How useful are certifications in determining skill? Which certifications are available and respected?

There are varying opinions as to whether achieving a certification in PHP validates your PHP skills.. Although most developers are self-taught, becoming PHP certified can be beneficial for a developer’s career as it formalizes their knowledge of the language.

In the recent Pearson Frank Java, Web, and PHP salary survey, 32% of survey respondents hold at least one or more professional certifications. Of the respondents surveyed who hold certifications, 21% said that their salary had increased since completing their certification. 

In short, it’s not entirely necessary, but it’s not going to hurt either. These are the primary forms of certification worth doing:

  • Zend PHP 7 Certification
  • Zend Framework 2 Certification
  • PHP Framework certifications like Symfony, Laravel etc.

5.8 What other lines on a CV can show skills?

  • Specifying the version of language used
  • Working on a typical for PHP or popular PHP Framework project
  • Participation in large projects, dealing with strange and stringent requirements
  • Participation in projects divided into microservices
  • Participation in high traffic network projects

PHP phone interview questions6. PHP interview questions to ask during a phone/video technical interview

It’s difficult to rely on just the words of a resume. After all, it’s important to challenge the candidate to determine whether they really have the PHP developer skills they claim to have. Even if it’s just a phone interview, it can help you understand how the candidate thinks and goes about solving problems related to their craft.

6.1 Questions about the candidate’s experience

Question 1: Can you tell me about some projects you’ve worked on and the approach you took from start to finish?

Answer 1: This is a good web developer interview question to start with because you can learn about their work style. This shows how they gather requirements, solve problems, manage user feedback, handle QA, and collaborate in a team setting. Their response will also show you their level of enthusiasm for web development.

Q2: Faça you have any projects that you work on (or have worked on) in your spare time?

A2: Top developers spend a significant chunk of their own time tinkering and staying on top of emerging trends. Candidates should be able to discuss their personal projects, either past or present, and possibly even show you their work. 

6.2 Behavioral questions you should ask to understand how the candidate has acted in the past

Q3: What do you do when an application stops working?

A3: Problem-solving is at the heart of web development, so listen to how the candidate talks about fixing things that go pear-shaped. Do they break down the situation and analyze potential causes? Do they know when to ask for help and where to go to find answers? How do they respond if their first idea for a solution doesn’t pan out? 

Q4: Name a website or app that annoys you. What’s wrong with it?

A4: This web developer interview question asks about the candidate’s awareness of current issues in web development, as well as their own problem-solving abilities. A good answer is one where they do more than just complain about someone else’s work. Skilled PHP developers will offer real solutions to practical issues, such as how to improve load times or optimize the user experience.        

6.3 Questions about the candidate’s knowledge and opinions

Q5: What’s the difference between SOAP and REST?

A5: These are two web service protocols that developers should know. One of the key differences is that SOAP uses XML while REST also supports text, JSON and other formats. Web developers may have strong opinions about which one is better, but they should demonstrate an understanding of both.

Q6: Which CMSs/Frameworks have you worked with?

A6: Some common open-source content management systems (CMSs) are WordPress, Joomla and Drupal. To elicit more information about their PHP developer skills, ask if they’re involved in the relevant open-source communities and whether they’ve ever made any contributions. 

Q7: What are the differences between PHP 5.6 and 7.x.? 

A7: The question is to assess the level of familiarity the candidate has of PHP versions. A lot of companies still use PHP 5.x and such questions are only natural, especially in the context of migration to version 7.

Q8: What are the differences between PUT and PATCH HTTP methods?

A8: The question is intended to verify developers’ knowledge of the HTTP protocol and differences between HTTP methods.

Q9: Explain polymorphism and inheritance

A9: The question is to check to what extent the candidate is familiar with basic OOP concepts. This knowledge is key to assessing PHP developer skills. 

PHP Coding tests7. Technical screening of a PHP developer’s skills using an online coding test

It’s vital that your PHP developer is aware of PHPs flexibility in developing web applications. As a result of its versatility, the language has developed many nuances and subtleties, each developer possibly dealing with them in a different manner. 

Your PHP developer must not only know all these niche uses, but also be willing to change the way they work in order to work as part of your team. PHP developer skills should be at the forefront of your mind when deciding on your next hire. 

7.1 Which PHP online programming test should you choose?

  • The test reflects the quality of professional work at your company
  • The test’s duration is not absurd, one to two hours max 
  • The test can be done at home and is straight-forward in nature
  • The difficulty level is on par with the candidate’s abilities
  • The test checks the quality of the code and how well it works in edge cases 
  • É o mais próximo possível do ambiente natural de programação e permite que o candidato tenha acesso a recursos relevantes
  • It provides the candidate the opportunity to use all the libraries, frameworks, and other tools they regularly encounter

7.2 DevSkiller ready-to-use online PHP developer coding assessment tests

DevSkiller coding tests use our RealLifeTestingTM methodology to mirror the actual coding environment that your candidate works in. Rather than using obscure algorithms, DevSkiller tests require candidates to build applications or features. 

They are graded completely automatically and can be taken from anywhere in the world. At the same time, the candidate has access to all of the resources that they would normally use including libraries, frameworks, StackOverflow, and even Google. 

Some key features of DevSkiller tests include:

  • Desenvolvimento de software genuíno em vez de problemas académicos 
  • Full-stack testing means candidates can use their comprehensive PHP developer skills 
  • Estes testes podem ser feitos pelos candidatos a qualquer hora e em qualquer lugar. 
  • A natural work environment where the candidate can desenvolver software, use their own IDE, clone to GIT, access Stack Overflow/Github/Google for research, and run unit tests means a better candidates experience 
  • Robust plagiarism controls verify the accuracy of your candidate’s skills 
  • Os testes são avaliados automática e instantaneamente, produzindo um relatório que os recrutadores não-técnicos podem compreender. 
  • Tests for juniores, médioe sénior desenvolvedores

Companies use DevSkiller to test candidates using their own codebase from anywhere in the world. To make it easy, DevSkiller also offers a number of premade PHP tests like the ones here:

Symfony
MÉDIO
Competências testadas
Duração
55 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de PHP, Symfony, Galho

Tarefa de programação - Nível: Médio

PHP | Symfony | Customer Relationship Management System - Implementar um Comando usando os Comandos da Consola Symfony.

PHP
MÉDIO
Competências testadas
Duração
105 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Laravel, PHP

Tarefa de programação - Nível: Médio

PHP | Laravel | API da livraria - Implementar funcionalidades em falta de uma API REST da livraria.

Symfony
MÉDIO
Competências testadas
Duração
100 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de PHP, Symfony, Galho

Tarefa de programação - Nível: Médio

PHP | Symfony | EventListener - Implemente o sistema Event driven usando o componente Event Dispatcher do Symfony.

PHP
SENIOR
Competências testadas
Duração
72 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de PHP, Symfony, YAML

Tarefa de programação - Nível: Difícil

PHP | Symfony | CompilerPass Interface - Implementa uma aplicação de arquivamento que escolhe o algoritmo de compressão com base no arquivo dado.

Laravel
JUNIOR
Competências testadas
Duração
65 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Laravel, PHP

Tarefa de programação - Nível: Fácil

PHP | Laravel | API da calculadora - Implementar as funcionalidades em falta de uma API web para um serviço de calculadora.

PHP
MÉDIO
Competências testadas
Duração
60 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de SQL

Perguntas de escolha

avaliação do conhecimento de ES6, JavaScript, CSS, HTML, WCAG 2.0, Acessibilidade na Web

Tarefa de programação - Nível: Médio

PHP | Repositório de Categorias - Implemente consultas DOP que retornarão resultados válidos sobre filmes aos usuários.

PHP
SENIOR
Competências testadas
Duração
88 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de SQL, ES6, JavaScript, AJAX, Desenvolvimento Web

Tarefa de programação - Nível: Difícil

PHP | XML-CSV Converter - Implementar métodos de filtragem e transformação de dados para passar em todos os testes.

PHP
JUNIOR
Competências testadas
Duração
41 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de SQL, CSS, HTML

Perguntas de escolha

avaliação do conhecimento de JavaScript

Tarefa de programação - Nível: Fácil

PHP | Faker | Manipulação de dados básicos - Implementar todos os métodos da classe app/Faker.

Laravel
JUNIOR
Competências testadas
Duração
66 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Laravel, PHP

Tarefa de programação - Nível: Fácil

PHP | Laravel | API da calculadora - Implementar as funcionalidades em falta de uma API web para um serviço de calculadora.

Laravel
MÉDIO
Competências testadas
Duração
80 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa de programação

resolver um desafio de programação que envolve o PHP Web Scraper

Perguntas de escolha

avaliando o conhecimento de visualizações de retorno, classe Controlador, Criptografia de cookies, Rotas parciais de recursos, Configuração de conexão de banco de dados, Acesso ao Pedido nos métodos do Controlador, Modo de Manutenção, Roteamento dos métodos do Controlador, Caminho do pedido do método, Mascaramento do nome do arquivo baixado