Un avezado desarrollador PHP que dice trabajar para Panasonic y haber entrevistado a 200 aspirantes en los últimos 3 años enumera su criterio para seleccionar al candidato ideal para el puesto de programador "Senior". Según, lo que diferencia a un programador PHP profesional de uno amateur puede resumirse en esta lista:
- PHP5 vs. PHP4
Debe enumerar por lo menos 3 características que diferencien a PHP5 de PHP4.
- Redes
Debe ser capaz de hacer por lo menos programas básicos que manipulen sockets o por lo menos comprender cómo conectar a 2 computadoras.
- OOP
Debe entender profundamente los conceptos de la programación orientada a objetos y ser capaz de responder preguntas simples como la diferencia entre métodos "privados" (private) y "protegidos" (protected).
- Bases de datos
Debe saber qué es una base de datos normalizada, y entender claves primarias y foráneas.
Y otras imprescindibles más:
- Patrones de Diseño
No debe decir "¿Qué" cuando mencione patrones de diseño.
- Control de Código Fuente
Debe dominar buen sistema de control de versiones Open Source (archivos .ZIP en directorios temporales no cuenta). Puntos extra si puede nombrar por lo menos un motivo por el cual CVS es un dolor de...
- Unit Testing
Debe entender qué es el unit testing y porqué es importante. (Puntos extra por test driven design, sabér como hacer unit tests de JavaScript y usar Selenium.
- Ser parte de la Comunidad
Debo ser capaz de encontrar todo tipo de cosas buenas que está haciendo con PHP o tecnologías web si lo "googleo". Generalmente es un mal indicio si Google no arroja ningún resultado con tu nombre. Puntos extra por tener un proyecto (de software abierto) o contribuir a uno.
- Habilidades JavaScript
Debe saber los métodos usados para manipular el DOM y crear sus propias clases en JavaScript (validación de formularios es de 1999). Puntos extra por saber cómo hacer una variable privada en JavaScript.
- Habilidades CSS
Debe dominar el Box Model, entender los selectores CSS y usar herencia.
- Pasión por mejorar
Debe estar buscando cómo mejorar sus habilidades para convertirse en alguien más valioso.
Y esos serían los requisitos "mínimos". ¿Cuántos cumplís vos?