He realizado más de 800 entrevistas técnicas en los últimos 3 años para un puesto de desarrollo de complementos.
Hemos contratado a 10 personas desde entonces, la mitad de ellos eran referencias .
No hay pruebas disponibles para el desarrollo de complementos. De hecho, hemos discutido un programa oficial de capacitación dos veces en WordCamp San Francisco con algunos de los principales organizadores de la comunidad (incluidos los nombres con los que todos están familiarizados).
- ¿Por qué Knockout.js no se ha vuelto tan popular como Angular.js?
- ¿Cuánto tiempo se tarda en producir un diseño receptivo para un sitio web en promedio?
- ¿Hay algún buen instituto en Mumbai para aprender desarrollo web (PHP, CSS, JS, etc.)?
- Ahora que Angular 2 está en Beta, ¿debería considerar usarlo para una nueva aplicación web a pequeña escala en el trabajo o seguir con Angular 1?
- ¿Dónde puedo obtener más información sobre stack medio?
En términos de un programa formal para eso, hay dos obstáculos basados en mi comprensión después de cientos de chats y varias conversaciones en vivo:
- Las opciones principales y obvias para la capacitación formal tendrían que gastar una tonelada de recursos y obtener una mala reputación entre millones de proveedores de servicios que construyen sitios agrupando temas y complementos.
- La comercialización del esfuerzo afectaría la libertad y la accesibilidad de los países con estándares económicos más bajos.
Entiendo ambos puntos a pesar de que estoy increíblemente insatisfecho con la calidad de los desarrolladores en la industria de WordPress. Probablemente la mitad de las personas que hemos contratado no tenían experiencia en WordPress, pero pasaron de 2 a 4 años en el desarrollo de PHP desde cero y con marcos establecidos que requieren una programación real en el día a día.
Incluso he entrenado varios cursos sobre desarrollo de plugins de WordPress. Incluso un año después, tuve dificultades para elegir un candidato simplemente porque no habían pasado suficiente tiempo mejorando sus habilidades y aplicándolas en un entorno del mundo real. Dicho esto, son bastante útiles para incorporar nuevos candidatos que sean estudiantes talentosos y rápidos.
Hay varias cosas que hacemos antes de contratar a un desarrollador de complementos internamente.
Portafolio de WordPress.org . Todos pueden contribuir al repositorio global y oficial de WordPress. Hay un formulario de contribución que requiere un nombre de complemento, una breve descripción y un enlace al complemento. El equipo de revisión de complementos realiza una revisión de código y aprueba el complemento en cuestión de días si todo funciona sin problemas.
Algunos candidatos también pueden participar en el desarrollo de WordPress Core. En este momento, es probable que haya menos de 2.000 personas en todo el mundo que hayan contribuido al WordPress Core (la plataforma principal disponible para todos) y más del 60% de ellos han enviado traducciones, pequeños ajustes de cadena o alteraciones de avisos dentro del código, con menos de 1K personas que contribuyen con el código de programación real. Todavía no hemos contratado a un colaborador de Core internamente, aunque tenemos 5 colaboradores que han enviado sus parches mientras trabajan con nosotros.
Otra prueba del trabajo de desarrollo de complementos . Por lo general, GitHub, Bitbucket, GitLab u otro repositorio abierto donde podemos revisar los complementos de muestra y su desarrollo a lo largo del tiempo. Todos los VCS permiten navegar confirmaciones iterativas y analizar cómo alguien piensa y aplica los cambios a lo largo del tiempo (que muchas personas olvidan).
Conocimiento de las API de WordPress . Hay una lista bastante detallada de las API de WordPress disponibles y la mayoría de los desarrolladores han utilizado al menos una docena de estas. Solicitar fragmentos de código y proyectos prácticos que los utilicen, así como detalles sobre cómo funcionan o qué opciones ofrecen, dónde se almacenan los datos, qué tipo de desinfección se requiere o se incluye de forma inmediata ayuda.
Experiencia en PHP fuera de WordPress . Dado que se puede construir y lanzar un sitio web de WordPress sin experiencia en codificación, la experiencia de programación con PHP fuera de WordPress también es importante para nosotros. Los desarrolladores de WordPress a menudo no necesitan lidiar con la administración de bases de datos y crear sus propios esquemas, crear paneles de administración y lidiar con sesiones de usuarios, construir motores de plantillas con enrutamiento y reescribir componentes, o incluso implementar funciones básicas que son obligatorias para proyectos personalizados.
Adhesión a los estándares de codificación . Existen estándares de codificación públicos para proyectos de WordPress que se centran en PHP, HTML, CSS y JavaScript. Hay un conjunto aceptado de mejores prácticas y convenciones de codificación que los desarrolladores de complementos deben seguir para que sean compatibles con versiones anteriores y mantenibles a medida que crece un proyecto.
Comprender el ecosistema circundante . El desarrollo de complementos suele formar parte de la creación de una aplicación continua que depende de otros aspectos. Además de otros lenguajes de programación que interactúan dentro y con el sitio web, existen argumentos específicos de alojamiento y argumentos de configuración del servidor que los desarrolladores deben conocer, herramientas viables como WP-CLI y una comprensión aproximada de cómo el proyecto de WordPress crece y se desarrolla con el tiempo.
Mantenerse en contacto con la comunidad de WordPress y los sitios web de make / org significa que el desarrollador se mantiene al día con las últimas tendencias y es consciente de los cambios que se necesitarían para el proyecto a lo largo del tiempo. Hemos rechazado las ofertas de proyectos para componentes que fueron programados para las próximas 2 versiones del núcleo de WordPress, ya que no tiene sentido construir una réplica de algo que estaría disponible para decenas de millones de propietarios de sitios en 6 meses a partir de ahora.
Fondo de informática . No nos importan los graduados. Ninguno de nuestro personal técnico se ha graduado con éxito (aunque algunos de nosotros lo intentamos). Pero hay muchas cosas debajo de la superficie.
WordPress es un CMS creado con PHP y JavaScript que manejan datos en una base de datos MySQL. Se requieren conocimientos de programación, así como algoritmos, estructuras de datos y garantizar la legibilidad, estabilidad, seguridad y rendimiento del código.
El CMS funciona sobre un servidor web (Apache o nginx) a través de mod_php o php-fpm. Es importante comprender cómo funcionan los servidores web y procesar las solicitudes y todas las estrategias de estabilidad y gestión de datos.
Todo eso se ejecuta en un sistema operativo que coordina e interactúa con el hardware de la computadora. Comprender el impacto de los picos de CPU, maximizar el almacenamiento de RAM, golpear el servidor con E / S pesadas y las mejores prácticas para la optimización, el almacenamiento en caché, la descarga de recursos y la desnormalización de bases de datos son ciertamente beneficiosas.
Luego está el aspecto de la red y el envío de recursos, el protocolo TCP / IP y todo. No se requiere un conocimiento profundo, pero simplemente escribir código sin ninguna pista de lo que está sucediendo allí es simplemente poco profesional.
Entrevista técnica Durante la entrevista repasamos todos los pasos anteriores. Además de eso, discutimos logros y problemas complejos que se han resuelto tanto desde el punto de vista comercial como técnico. Si un solicitante dice que ha creado una plantilla de página con 2 campos de entrada como el mayor logro, definitivamente es un bloqueador (sucedió la semana pasada aquí para un concierto de desarrollo de PHP).
También podemos tocar algunas de las API de WordPress y discutir qué experiencia tienen los candidatos o qué creen que realmente tienen esos componentes. Buenos ejemplos son la API de opciones, la API de configuración o la API de transitorios en términos de gestión y procesamiento de datos. Agregar tipos de publicaciones o taxonomías personalizadas es factible dentro de 20 líneas de código más o menos, pero hace mucho más por debajo de lo que importa para el gobierno de datos y el mantenimiento continuo.
Proyectos de prueba . Pedimos a los candidatos que completen un formulario de entrevista con varias preguntas sobre PHP, WordPress, JavaScript y SQL. La mayoría de ellos son bastante básicos (como “cuál es la diferencia entre una matriz unidimensional y multidimensional” o “cómo recuperar el recuento de elementos en una matriz”), pero algunos candidatos no responden a estos.
Les pedimos que creen un proyecto bastante simple que pueda desarrollarse dentro de 2 a 3 horas a partir de un desarrollador de complementos con un año de experiencia en programación. Por lo general, es un complemento simple que registra un tipo de publicación (por ejemplo, Eventos), una categoría correspondiente (Tipos de eventos), registra un metabox con un par de campos (como Fecha de inicio y Fecha de finalización) y hace un par de cosas menores. Si les toma 3 días construirlo, obviamente hay un desajuste y debemos considerar si una posición junior es factible o no.
Incluso proporcionamos un Marco de complementos con 6 páginas de documentación detallada para cada API común y cómo funciona realmente que algunos candidatos pueden usar como punto de partida. En este momento tengo dos candidatos que han estado trabajando en la tarea de prueba durante 5 días a tiempo completo y aún no logran concluir el complemento básico.
Dado que los desarrolladores de complementos profesionales son algo raros de encontrar en el gran grupo de candidatos, es probable que se requieran algunos compromisos. Con base en las diferentes estrategias de prueba anteriores, puede decidir qué tan familiarizado está un desarrollador con el desarrollo de complementos y cuánto tiempo le tomará unirse a su equipo o trabajar en su proyecto, y si vale la pena descargar eso a un equipo más grande de expertos de la industria. En desarrollo real.