kutombawewe.net

Wie kann ich PHP Fähigkeiten in einem Interview testen?

Mein Unternehmen muss einen PHP Entwickler einstellen, aber niemand verfügt über PHP Kenntnisse in meinem Unternehmen, und es fällt uns schwer, PHP Fähigkeiten zu testen. Wenn es ein C/Java-Entwickler wäre, würde ich ihn bitten, eine schnelle Implementierung des Game of Life zu schreiben, aber PHP ist eine völlig andere Sprache.

Ich habe diesen Test mit Interesse gesehen:

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

Hat noch jemand weitere Vorschläge?

58
Mascarpone

Code

  • Bitten Sie den Kandidaten, Code zu schreiben
  • Bitten Sie den Kandidaten, den Code zu lesen

Wenn Sie den Kandidaten bitten, Code zu schreiben, stellen Sie Folgendes sicher:

  • Der Code ist nicht trivial, aber klein
  • Sie erlauben den Zugriff auf das Handbuch und das Internet

Wenn Sie den Kandidaten bitten, Code zu lesen, stellen Sie Folgendes sicher:

  • Der Code weist einige geringfügige Fehler auf
  • Der Code weist einige nicht triviale Fehler auf
  • Der Code funktioniert gut, kann aber leicht optimiert werden

Sie können drei oder mehr verschiedene Codeteile verwenden, von der einfacheren beginnen und nur dann zur nächsten übergehen, wenn Sie feststellen, dass der Kandidat problemlos zurechtkommt. Wirf eine Rekursion ein, um die Dinge aufzupeppen.

Ressourcen

Fragen Sie nach einer detaillierten Liste von PHP Ressourcen, die der Kandidat verwendet. Bücher, Blogs, Foren, Magazine usw. So erfuhren meine derzeitigen Arbeitgeber von StackOverflow .

Wenn der Kandidat StackOverflow oder Programmierer erwähnt, sollten Sie NICHT nach ihrem Benutzernamen fragen oder versuchen, ihn herauszufinden. Wenn sie für ihren Ruf werben wollten, hätten sie einen Karriere 2. Link in ihren Lebenslauf aufgenommen.

Frameworks

Jeder PHP Entwickler sollte die beliebtesten PHP Frameworks) kennen:

und fließend mindestens einen von ihnen. Sie können für jedes ein paar Codebeispiele bereithalten und den Kandidaten bitten, diese zu lesen und zu erklären, nachdem er Ihnen mitgeteilt hat, mit welchem ​​er besser vertraut ist.

Debugging & Profiling

Ich hatte immer das Gefühl, dass PHP Entwickler fehlen Debugging- und Profiling-Fähigkeiten (vielleicht nur die PHP Entwickler, mit denen ich gearbeitet habe). Wenn Sie während der Diskussion Finde heraus, dass der Kandidat xdebug aktiv verwendet, kümmere dich nicht um den Rest des Interviews und stelle sie einfach ein .;)

Eingabebereinigung

Das ist wichtig. Sie können mit einer Diskussion darüber beginnen, warum dies wichtig ist, und dann nach den gängigsten Methoden fragen, um dies zu erreichen. Diese Diskussion hilft Ihnen bei der Frage.

Einige Hinweise:

PHP snafus

Sie können eine Menge PHP snafus in diesem ausgezeichnete Diskussion finden. Wenn Sie für eine leitende Position interviewen, sollten Sie auf jeden Fall einige davon fragen. Einige Beispiele:

PHPs Umgang mit numerischen Werten in Strings:

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

Gültig PHP Code :

System.out.print("hello");

In PHP ist eine Zeichenfolge so gut wie ein Funktionszeiger:

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

Unit Testing

Muss ich mehr sagen?

Schlussfolgerung

Ein guter PHP Entwickler sollte eine Vielzahl von Fähigkeiten und Talenten kombinieren:

  • Ein gutes Verständnis von HTTP
  • Ein gutes Verständnis der Apache-Konfiguration (auch wenn Sie in Ihrem Unternehmen einen anderen Webserver verwenden)
  • Zumindest ein grundlegendes Verständnis von JavaScript
  • Ein gutes Verständnis von HTML/CSS

Die Liste geht weiter und weiter. Stellen Sie sicher, dass Sie das Interview auf die spezifischen Bedürfnisse der Stellenausschreibung zuschneiden. Sie möchten nicht nur einen guten Entwickler einstellen, sondern einen guten Entwickler, der großartig darin ist, was Sie sofort von ihm/ihr verlangen.

71
yannis

Der Test, mit dem Sie verlinkt haben, ist interessant, und Yannis Rizos ' Antwort ist großartig, aber ich denke, was auch wichtig ist, ist Folgendes:

Wenn Sie einen guten Entwickler benötigen, suchen Sie nicht nach PHP Entwickler. Suchen Sie nach einem guten Entwickler, der PHP kennt. Das bedeutet, dass Sie mindestens die Hälfte des Interviews Fragen stellen sollten, die nicht viel haben zu tun mit PHP Syntax oder PHP Funktionen.

Fragen Sie ihn, was MVC ist, was AJAX ist, wie HTTP funktioniert, wie REST funktioniert, wie SQL-Verknüpfungen funktionieren, einige Datenstrukturen, einige Leistungsgrundlagen (wie Sie messen, wie Sie sich verbessern), Testen Grundlagen, Sicherheitsgrundlagen (XSS, XSRF, Injektionen, wie Sie verteidigen), grundlegende Programmierkenntnisse in Bezug auf typische PHP -Domänen - Web, Netzwerk, Datentransformationen usw.).

Wenn er gut darin ist, bitten Sie ihn, einen einfachen Code zu schreiben, eine einfache Aufgabe auszuwählen, die nicht lange dauern sollte - wie das Finden von Wörtern mit den meisten Vokalen in einer Reihe im Text oder das Umkehren jedes Wortes im Text oder das Multiplizieren von zwei Matrizen. Sie können ihn auch bitten, das Spiel des Lebens in PHP zu implementieren, wenn Sie möchten :)

Wenn er das besteht, können Sie mit schwierigeren Fragen fortfahren PHP Fragen, aber legen Sie nicht zu viel Gewicht darauf. Er kann das meiste davon im Handbuch lesen und was er kann ' Wenn Sie nicht lesen, wird er ziemlich schnell lernen, wenn er gut ist. PHP ist einfach aufgebaut. Wenn er also ein guter Programmierer ist und über einige PHP-Kenntnisse verfügt, wird er wahrscheinlich in der Lage sein Wenn er weiß, wie man im Allgemeinen programmiert, ist das Erlernen des Programmierens in PHP einfacher als umgekehrt) - Wissen PHP Syntax-Minutien nicht Wichtig, wenn Sie nicht verstehen, wofür Unit-Tests gedacht sind oder wie Sie XSS-Probleme beseitigen können.

44
StasM

Obwohl Yannis Rizos ' Antwort eine gute ist, weiß ich, dass ich diesen Test nicht bestehen würde, und ich könnte diese Antwort als Ressource verwenden, um zu bestimmen, wo ich mich konzentrieren muss, um meine PHP Chops zu verbessern Ich denke, es würde sich lohnen, einen Programmierpartner zu finden, der PHP kennt, um am Interviewprozess teilzunehmen. Alle Fragen in der vorherigen Antwort sind gut, aber ohne einige Domänenkenntnisse wird es schwierig sein, die Qualität der Antworten zu beurteilen.

Das heißt, je nachdem, was Sie brauchen, wie andere gesagt haben, sind allgemeine Programmiermöglichkeiten und Team-Fit wahrscheinlich wichtiger als sprachspezifische Kenntnisse.

13
cori