web-dev-qa-db-fra.com

Comment puis-je tester les compétences PHP dans une interview?

Mon entreprise a besoin d'embaucher un développeur PHP, mais personne n'a PHP connaissance dans mon entreprise et nous avons du mal à tester les compétences PHP. S'il s'agissait d'un développeur C/Java, je lui demanderais d'écrire une implémentation rapide du Game of Life, mais PHP est un langage complètement différent.

J'ai vu ce test avec intérêt:

http://vladalexa.com/scripts/php/test/test_php_skill.html

Quelqu'un d'autre a plus de suggestions?

58
Mascarpone

Code

  • Demander au candidat d'écrire du code
  • Demandez au candidat de lire le code

Si vous demandez au candidat d'écrire du code, assurez-vous que:

  • Le code n'est pas trivial mais petit
  • Vous autorisez l'accès au manuel et à Internet

Si vous demandez au candidat de lire le code, assurez-vous que:

  • Le code a quelques erreurs triviales
  • Le code contient des erreurs non triviales
  • Le code fonctionne bien, mais il peut être facilement optimisé

Vous pouvez utiliser trois ou plusieurs morceaux de code différents, commencer par le plus simple et passer au suivant uniquement si vous voyez que le candidat s'en sort facilement. Ajoutez une récursivité pour pimenter les choses.

Ressources

Demandez une liste détaillée des ressources PHP que le candidat utilise. Livres, blogs, forums, magazines, etc. C'est ainsi que mes employeurs actuels ont découvert StackOverflow .

Si le candidat mentionne StackOverflow ou Programmeurs, vous ne devriez PAS demander ou essayer de trouver son nom d'utilisateur. S'ils voulaient faire connaître leur réputation, ils auraient inclus un lien Careers 2. sur leur CV.

Cadres

Chaque développeur PHP doit connaître les frameworks les plus populaires PHP:

et parler couramment au moins l'un d'entre eux. Vous pouvez avoir quelques exemples de code prêts pour chacun et demander au candidat de les lire et de les expliquer, après qu'il vous ait dit lequel il est le plus familier.

Débogage et profilage

J'ai toujours pensé que PHP manquent de compétences de débogage et de profilage (peut-être seulement les développeurs PHP avec lesquels j'ai travaillé). Si au cours de la discussion, vous découvrez que le candidat utilise activement xdebug , ne vous embêtez pas avec le reste de l'entretien et embauchez-les.;)

Purification des entrées

C'est important. Vous pouvez commencer par une discussion sur pourquoi c'est important, puis demander les méthodes les plus courantes pour y parvenir. Cette discussion vous aidera à savoir quoi demander.

Quelques conseils:

Snafus PHP

Vous pouvez trouver beaucoup de PHP snafus dans ce excellente discussion . Si vous interviewez pour un poste senior, vous devriez définitivement poser des questions sur certains d'entre eux. Quelques exemples:

Gestion par PHP des valeurs numériques dans les chaînes:

"01a4" != "001a4" // true
"01e4" == "001e4" // also true

Valide PHP code :

System.out.print("hello");

En PHP, une chaîne est aussi bonne qu'un pointeur de fonction:

$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"   

Test unitaire

Dois-je en dire plus?

Conclusion

Un bon développeur PHP doit combiner une variété de compétences et de talents:

  • Une bonne compréhension de HTTP
  • Une bonne compréhension de la configuration d'Apache (même si vous utilisez un autre serveur Web dans votre entreprise)
  • Au moins une compréhension de base de JavaScript
  • Une grande compréhension de HTML/CSS

La liste se rallonge de plus en plus. Assurez-vous d'adapter l'entrevue aux besoins spécifiques de l'ouverture d'emploi, vous ne voulez pas embaucher juste un bon développeur, mais un bon développeur qui est excellent dans ce que vous avez immédiatement besoin de lui.

71
yannis

Le test auquel vous avez lié est intéressant, et Yannis Rizos réponse est génial, mais je pense que ce qui est également important est le suivant:

Si vous avez besoin d'un bon développeur, ne cherchez pas PHP développeur. Recherchez un bon développeur qui connaît PHP. Cela signifie qu'au moins la moitié de l'interview, vous devriez poser des questions qui n'ont pas beaucoup à voir avec PHP syntaxe ou PHP fonctions.

Demandez-lui ce qu'est MVC, ce qu'est AJAX, comment HTTP fonctionne, comment REST fonctionne, comment fonctionnent les jointures SQL, certaines structures de données, quelques notions de base sur les performances (comment vous mesurez, comment vous vous améliorez), les tests bases, bases de la sécurité (XSS, XSRF, injections, comment vous vous défendez), connaissances de base en programmation artisanale appliquées aux domaines typiques PHP - web, réseaux, transformations de données, etc.

S'il est bon là-dessus, demandez-lui d'écrire du code simple, choisissez une tâche facile qui ne devrait pas prendre longtemps - comme trouver des mots avec la plupart des voyelles d'affilée dans le texte, ou inverser chaque mot dans le texte, ou multiplier deux matrices. Vous pouvez également lui demander d'implémenter le Game of Life en PHP, si vous le souhaitez :)

S'il passe cela, alors vous pouvez passer à des questions plus délicates PHP, mais n'y mettez pas trop de poids. Il peut en lire la plupart dans le manuel, et ce qu'il peut '' t lu, il apprendra assez rapidement s’il est bon. PHP est conçu pour être simple, donc s’il est un bon programmeur et a une connaissance pratique de PHP, il sera probablement S'il sait comment programmer en général, alors apprendre à programmer en PHP est plus facile que l'inverse - savoir PHP minutie syntaxique n'est pas important si vous ne comprenez pas à quoi servent les tests unitaires ou comment vous débarrasser des problèmes XSS.

44
StasM

Bien que Yannis Rizos réponse soit une bonne réponse - je sais que je ne passerais pas ce test et je pourrais utiliser cette réponse comme une ressource pour déterminer où se concentrer pour améliorer mes PHP côtelettes , Je pense que cela vaut la peine de trouver un copain de programmation qui connaît PHP pour participer au processus d'entrevue. Toutes les questions de la réponse précédente sont bonnes, mais sans connaissance du domaine, il sera difficile d'évaluer la qualité des réponses.

Cela dit, selon ce dont vous avez besoin, comme d'autres l'ont dit, la facilité de programmation générale et l'adéquation de l'équipe sont probablement plus importantes que les connaissances spécifiques à la langue.

13
cori