Solución:
Cuando entrevisto a candidatos, y en particular júnior candidatos, primero evalúo si van a ser buenos desarrolladores. No importa Magento.
Por lo tanto, escucharía muchas preguntas genéricas, que no son de Magento, de mi parte. Éstos son solo algunos:
- Explique la diferencia entre un mapa, un hash, una matriz, una colección y una lista.
- Explique lo que cree que significa “herencia” y déme un ejemplo que no involucre automóviles o miembros de la familia.
- Nombre 3 tipos de vulnerabilidades de seguridad que se introducen comúnmente por la entrada de usuario sin filtrar.
- Explique qué es una declaración preparada y qué hace.
- ¿Cuál es su nueva característica favorita en PHP 5.5?
- Nombre al menos 3 frameworks PHP principales.
- ¿Cuál es la diferencia entre una declaración de función y una expresión de función?
Algunas preguntas no técnicas:
- Dígame la última vez que cometió un error que le costó dinero a una empresa o cliente, y:
- ¿Qué aprendiste de tu error?
- ¿Qué haces para mantenerte al día con las tecnologías?
- ¿Qué estás aprendiendo en tu tiempo libre?
Luego, podría pedirles que revisen el código con algunos de sus trabajos en Github o algo que hayan enviado; podríamos hacer algunos ejercicios de pizarra como Fizzbuzz, tal vez una selección del Proyecto Euler … algo en ese sentido. Solo estoy tratando de mezclarlo aquí y ver cómo manejan los problemas que pueden no haber encontrado.
Si estoy satisfecho y sé que el candidato tiene experiencia en Magento, podría preguntar preguntas más específicas sobre Magento:
- ¿En qué se diferencia Magento MVC de MVC clásico (o Zend Framework MVC)?
- Nombre 3 tipos de Magento Modelos
- Describe o dame un ejemplo de grupos de código de Magento y / o respaldo de tema.
- ¿Cuándo está bien realizar una modificación del núcleo? (respuesta: NUNCA.)
- Enumere al menos 3 técnicas para anular la funcionalidad básica / predeterminada.
En este punto, puedo hacer algunas preguntas realmente difíciles o hacer que me bosquejen algo, tal vez el flujo de pago de Magento. Puedo hacer que describan todas las subcarpetas en una extensión de Magento. Podría preguntarles qué modelos abstractos extender para la funcionalidad deseada.
Espero que esto ayude – el proceso de contratación es difícil para ambas partes en la mesa. En mi primera ronda de contratación, revisé por teléfono a más de 75 solicitantes, examiné más de 500 presentaciones de currículum y lo reduje a 2 o 3 entrevistas en persona. Ninguno de ellos funcionó, así que, en mi caso, cuando estás sentado frente a mí, ¡te estoy apoyando! ¡Quiero que lo hagas! Quiero que termine el tortuoso proceso de la fase de contratación para que podamos hacer lo que mejor hacemos: crear productos increíbles.
El truco es mantenerlo ligero y convertirlo en una experiencia útil y al menos educativa para el candidato.
Según la discusión que tuve con los socios de Magento (nota: no he entrevistado a los desarrolladores), a continuación se presentan algunos consejos:
1) No busque desarrolladores de Magento. Encuentre buenos OO PHP (o Java, he escuchado historias de éxito de conseguir desarrolladores de Java que hagan Magento) y capacítelos. También tenemos algunas personas en casa que se mudaron de Java a Magento y no tienen los malos hábitos de los desarrolladores de PHP típicos.
2) Nunca use una empresa de contratación externa: no encontrarán a nadie y no saben lo que están haciendo (es decir, me persiguen porque trabajo para Magento y fui desarrollador hace mucho tiempo, pero no soy un Magento desarrollador)
3) No estoy seguro de cuál es su función / empresa. Si quieres hacer desarrollo, busca gente. Sin embargo, si usted es un comerciante o necesita hacer un solo proyecto, considere ir con un socio experimentado en su lugar.
4) Consiga que @benmarks responda: está realizando una formación interna para los nuevos empleados de BlueAcorn y, con suerte, puede compartir algunas ideas interesantes.
La primera pregunta que probablemente esperaría es algo como:
Aquí hay una instalación predeterminada, ahora elimine el bloque “Regreso a la escuela” de la página de inicio usando local.xml.
También puede encontrar algo como:
Descubra por qué el proceso de pago predeterminado no funciona como debería. (pista, compruebe si hay errores de JavaScript en la consola).
Después de instalar un módulo de terceros que modifica la forma en que se muestran las imágenes del producto, a la página de vista del producto le falta otra característica generada por un módulo de terceros independiente. ¿Cuál es el primer paso para depurar esto? (pista: ‘depende’).
El cliente desea un espacio en la página de inicio donde pueda modificar fácilmente el contenido sin tener que lidiar con mucho “código”. ¿Cómo implementaría esto?
Yo personalmente vi todas estas preguntas durante una entrevista.
Y luego, por supuesto, espere algunas preguntas sobre errores comunes de Magento durante el desarrollo (borrar caché, reindexar, errores de base_url, etc.). Si lo logra todo, espere algunos temas más difíciles (EAV, reescrituras de clase, actualización de un bloque a través de AJAX).
Dependiendo de a quién esté entrevistando, puede ser suficiente tener una buena comprensión de algunas áreas básicas de Magento (diseño XML, trabajar con plantillas) ya que los primeros meses de su empleo probablemente involucren la solución de problemas de frontend aleatorios en sitios aleatorios. . Si es relativamente nuevo en Magento y se encuentra contratado como desarrollador jr, espere aprender mucho en el trabajo.