¿Cómo puedo probar las habilidades de PHP en una entrevista? [cerrado]

57

Mi empresa necesita contratar a un desarrollador de PHP, pero nadie tiene conocimientos de PHP en mi empresa y nos resulta difícil probar las habilidades de PHP. Si fuera un desarrollador de C / Java, le pediría que escribiera una implementación rápida de Game of Life, pero PHP es un lenguaje completamente diferente.

Vi esta prueba con interés:

enlace

¿Alguien más tiene más sugerencias?

    
pregunta Mascarpone 10.11.2011 - 00:07

3 respuestas

70

Código

  • Pida al candidato que escriba el código
  • Pida al candidato que lea el código

Si le pide al candidato que escriba el código, asegúrese de que:

  • El código no es trivial pero es pequeño
  • Usted permite el acceso al manual e Internet

Si le pide al candidato que lea el código, asegúrese de que:

  • El código tiene algunos errores triviales
  • El código tiene algunos errores no triviales
  • El código funciona bien, pero se puede optimizar fácilmente

Puedes usar tres o más códigos diferentes, comienza desde el más simple y avanza hasta el siguiente si ves que el candidato hace frente con facilidad. Agrega algo de recursión para condimentar las cosas.

Resources

Solicite una lista detallada de los recursos de PHP que utiliza el candidato. Libros, blogs, foros, revistas, etc. Así es como mis empleadores actuales se enteraron de StackOverflow .

Si el candidato menciona StackOverflow o Programadores, NO debe preguntar ni intentar averiguar su nombre de usuario. Si quisieran anunciar su reputación, habrían incluido un enlace Careers 2.0 en su currículum.

Frameworks

Todo desarrollador de PHP debe conocer los frameworks PHP más populares:

y ser fluido en al menos uno de ellos. Puede tener algunas muestras de código listas para cada una y pedirle al candidato que las lea y las explique, después de que le indiquen con cuál están más familiarizadas.

Depuración & Perfil

Siempre he sentido que los desarrolladores de PHP carecen de habilidades de depuración y creación de perfiles (quizás solo los desarrolladores de PHP con los que he trabajado). Si durante la discusión descubre que el candidato utiliza activamente xdebug , no se moleste con el resto de la entrevista y simplemente contrátelos. ;)

Desinfección de entrada

Esto es importante. Puede comenzar con una discusión sobre por qué es importante y luego solicitar los métodos más comunes para lograrlo. Esta discusión lo ayudará a saber qué preguntar.

Algunos consejos:

Snafus de PHP

Puede encontrar una gran cantidad de errores de PHP en este excelente discusión . Si está entrevistando para un puesto de alto nivel, definitivamente debería preguntar sobre algunos de ellos. Algunos ejemplos:

Manejo de valores numéricos en cadenas por PHP:

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

Código PHP válido :

System.out.print("hello");

En PHP, una cadena es tan buena como un puntero a una función:

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

Prueba unitaria

¿Necesito decir más?

Conclusión

Un buen desarrollador de PHP debe combinar una variedad de habilidades & talentos:

  • Una buena comprensión de HTTP
  • Una buena comprensión de la configuración de Apache (incluso si utiliza un servidor web diferente en su empresa)
  • Al menos una comprensión básica de JavaScript
  • Una gran comprensión de HTML / CSS

La lista sigue y sigue. Asegúrese de adaptar la entrevista a las necesidades específicas de la apertura de trabajo, no desea contratar solo a un buen desarrollador, sino a un buen desarrollador que sea excelente en lo que necesita que haga de inmediato.

    
respondido por el yannis 10.11.2011 - 04:01
43

La prueba a la que se vinculó es interesante, y la respuesta de Yannis es excelente, pero creo que también importante es esto:

Si necesitas un buen desarrollador, no busques un desarrollador de PHP. Busque un buen desarrollador que sepa PHP. Eso significa que, al menos la mitad de la entrevista, debería estar haciendo preguntas que no tengan mucho que ver con la sintaxis de PHP o las funciones de PHP.

Pregúntele qué es MVC, qué es AJAX, cómo funciona HTTP, cómo funciona REST, cómo funciona el ensamblaje de SQL, algunas estructuras de datos, algunos conceptos básicos de rendimiento (cómo mide, cómo mejora), conceptos básicos de pruebas, conceptos básicos de seguridad (XSS , XSRF, inyecciones, cómo se defiende), conocimientos básicos de programación aplicados a dominios PHP típicos: web, redes, transformaciones de datos, etc.

Si él es bueno en eso, proceda a pedirle que escriba un código simple, elija una tarea fácil que no debería tomar mucho tiempo, como encontrar palabras con la mayoría de las vocales en una fila en el texto, o invertir cada palabra en el texto, o multiplicando dos matrices. También puedes pedirle que implemente el Juego de la Vida en PHP, si quieres :)

Si pasa eso, entonces puedes pasar a preguntas de PHP más difíciles, pero no pongas demasiado peso en esto. Puede leer la mayor parte del manual y, si no puede leer, aprenderá rápidamente si es bueno. PHP está diseñado para ser simple, por lo que si es un buen programador y tiene algún conocimiento práctico de PHP, probablemente podrá ponerse al día. Si sabe cómo programar en general, aprender a programar en PHP es más fácil que a la inversa: saber la sintaxis de PHP no es importante si no comprende para qué sirven las pruebas unitarias o cómo deshacerse de los problemas de XSS.

    
respondido por el StasM 08.08.2012 - 09:05
12

Si bien respuesta de Yannis Rizos es una buena pregunta, sé que no aprobaría esa prueba y podría Use esa respuesta como un recurso para determinar dónde enfocarme para mejorar mis chuletas de PHP. Creo que valdría la pena encontrar un compañero de programación que sepa PHP para participar en el proceso de la entrevista. Todas las preguntas en la respuesta anterior son buenas, pero sin un cierto conocimiento del dominio será difícil evaluar la calidad de las respuestas.

Dicho esto, dependiendo de lo que necesite, como han dicho otros, la facilidad de programación general y el ajuste del equipo son probablemente más importantes que el conocimiento específico del idioma.

    
respondido por el cori 10.11.2011 - 15:06

Lea otras preguntas en las etiquetas