¿Cuál es la mejor prueba de codificación para dar a un empleado potencial?

Mi primer paso en el espíritu empresarial fue una agencia de marketing web. En aquel entonces no había herramientas como Devskiller que me hubieran hecho la vida mucho más fácil. Más tarde trabajé con varios ingenieros que tenían el mismo tipo de problemas con las pruebas de candidatos. Trabajamos juntos para encontrar Devskiller y construir su plataforma de prueba, pero todo esto fue antes de eso.

En ese momento, estaba en una posición similar a la del cartel que hizo la pregunta, pero con una gran desventaja, no tengo antecedentes técnicos. Verá, saqué la pajita cuando dividíamos los roles de apoyo en nuestra agencia y me pusieron a cargo del reclutamiento además de mis otros deberes.

Mientras éramos una pequeña empresa, el equipo de desarrollo ya estaba trabajando horas extras y estaban retrasados, de ahí la necesidad de nuevos desarrolladores. Eran tiempos difíciles y nuestro CTO me dio la condición aparentemente imposible: “Solo dame candidatos que puedan ponerse a trabajar de inmediato contribuyendo a lo que estamos haciendo y simplemente hacer las cosas”. Tampoco tiene tiempo para clasificar el trigo. De la paja.

Entonces, como un tipo de marketing con muy poco reclutamiento técnico y sin experiencia en PHP en ese momento, miré a mi alrededor para ver cómo podía asegurarme de que los candidatos que pude obtener no serían una pérdida de tiempo para nuestro equipo de desarrollo. El emparejamiento de códigos estaba fuera. No teníamos ningún desarrollador de PHP de sobra para ver si estos tipos sabían lo que estaban haciendo y no pude intervenir para realizar la prueba por ellos.

Para superar mis deficiencias técnicas personales, encontré una prueba algorítmica que podía enviar a los distintos candidatos. La idea era que decidiría a quién deberíamos llevar para conocer al equipo técnico. Sintiéndome satisfecho con mi solución, envié un montón de estas pruebas, obtuve los resultados y los canalicé a mi CTO. Y chico, oí hablar de eso más tarde.

Fuente: Yelling GIF – Buscar y compartir en GIPHY

Si bien nuestro nuevo desarrollador de PHP había salido bien en la prueba, estaban perdidos cuando se mezclaron con el resto de nuestro equipo de desarrollo. Mi CTO regresó a mí diciendo que no tenía tiempo para enseñarle a este tipo sobre cómo usar las bibliotecas. Al final, tuvimos que sacar un desarrollador de la construcción de nuestro front-end para hacer una prueba de emparejamiento de código utilizando nuestro propio código para reemplazar al tipo. Como resultado, obtuvimos un desarrollo mucho mejor, pero causó estragos en nuestro horario, lo que significa que llegamos tarde con la entrega.

Entonces, ¿qué tomé de esto?

Desea probar a los desarrolladores como si estuvieran en su primer día de trabajo

Las pruebas algorítmicas solo terminan encontrándonos un tipo que podía recordar una ecuación. Necesitábamos a alguien que pudiera usar todos los recursos disponibles para resolver los problemas que teníamos de la manera más eficiente. El problema es que se necesita un desarrollador con experiencia en PHP para descubrir quién es el mejor en PHP.

Es por eso que probar plataformas como Devskiller es una bendición. Puede probar sus posibles desarrolladores con los tipos de tareas que enfrentarán en su primer día. Incluso puede hacer que trabajen en su propio código. Hay una evaluación fácil de entender de qué tan bien lo hicieron para que no necesite sacar a un desarrollador de su trabajo para contratar.

En la industria de TI, lo mejor se puede identificar por un par de factores, por ejemplo;

  1. Facilidad de uso del producto: el producto debe ser fácil de usar para los clientes, sin importar a qué industria atiende. No he revisado todas las plataformas que ofrecen pruebas de codificación, pero cada vez que tiene la oportunidad, no decida el producto en función de la cantidad de clientes y su antigüedad, sino al usarlo. Facebook no fue la primera plataforma de redes sociales, Orkut y Friendster lo hicieron extremadamente bien, AWS no es la primera compañía de infraestructura, muchos otros florecieron antes, Google no fue el primer motor de búsqueda. Se unieron más tarde e interrumpieron el mercado de sus predecesores.
  2. Características del producto: otro factor importante del que depende enormemente el éxito del producto. Debe proporcionar funciones ricas en facilidad de uso que el cliente necesita. Una plataforma proporciona prueba de codificación en línea para contratación técnica con todas las características necesarias junto con otras plataformas en el mismo campo. Hablemos de la lista de características que deben estar disponibles para realizar una prueba de codificación efectiva.
  1. Compilador de más y más lenguajes de programación: existen numerosos lenguajes de programación, pero para ser un producto relevante, debe proporcionar más y más compiladores y entornos de ejecución de los lenguajes actuales.
  2. Biblioteca de problemas enriquecidos: la empresa proveedora de pruebas de codificación debe proporcionar una biblioteca rica de problemas de codificación, reduciendo el dolor de las empresas para crear problemas de codificación antes de realizar la prueba de codificación.
  3. Gestión de problemas de codificación – CRUD – Operaciones de creación, lectura, actualización y eliminación de problemas de codificación.
  4. Codeathon público y privado: el codeathon privado se basa en una invitación y el codeathon público está abierto para todos, solo tiene un enlace, regístrese y aparezca.
  5. Pruebas unitarias contra todos y cada uno de los problemas de codificación
  6. Detección de plagio en el envío de código .
  7. Informe de envío de código basado en diferentes factores.

Gracias

Lo que más me gusta hacer en las entrevistas técnicas que hago es crear algunos problemas de codificación simples para que se sientan cómodos escribiendo código mientras los miro y juzgo. Cosas como FizzBuzz ( http://www.codinghorror.com/blog …), recursión simple, etc.

Siempre que no hayan estropeado por completo esas cosas, les presentaré un proyecto. El lenguaje no importa y esto se hace fácilmente en PHP. El proyecto tendrá algunas cosas implementadas, algunas cosas que necesitan implementarse y algunos errores para corregir. Luego haré que corrijan los errores (de los informes de errores que les doy) e implementen funciones (según los requisitos que les doy). Permanezco todo el tiempo para responder preguntas y seguir su proceso de pensamiento y hacerles preguntas.

He descubierto que esta es una excelente manera de descubrir quién puede programar y quién encajaría en nuestro entorno.

More Interesting

¿Qué herramientas de creación de prototipos utilizan los diseñadores para probar el diseño web y móvil?

¿Por qué los diseñadores web crean sitios feos para los clientes? Entiendo que los clientes pueden no entender cómo se ve un buen sitio y están contentos con el mediocre, pero ¿no deberían saberlo mejor el diseñador / desarrollador?

¿El inicio de sesión social reemplazará el registro tradicional?

Como desarrollador web en proceso, ¿cómo puedo socializar en Nueva York?

¿Cómo mejor puedo mejorar mi página de inicio para que la gente use mi sitio?

¿Cuál es la mejor manera de ver el contenido de una base de datos de un sitio de WordPress sin WordPress en Linux Mint? Necesito que sea visualmente legible y fácil de usar.

¿Qué es el modelo de servidor cliente?

Cómo agregar datos que están en idioma nativo (asamés) a la base de datos mySql

¿En qué casos se deben agregar elementos nuevos ordenados por tiempo al final de una lista, en lugar de al principio?

¿Qué prefiere: dividir el desarrollo en dos desarrolladores o dejar que cada desarrollador trabaje en todos los componentes?

¿Qué tan efectivos son los carruseles como una forma de mostrar el contenido del sitio web?

¿Cuánto cobra como diseñador web o desarrollador web?

¿Qué tan rápido está creando aplicaciones y sitios web?

¿Cómo entiende Java y hace que suceda un evento? Por ejemplo, ¿qué sucede exactamente cuando hacemos clic en un botón? ¿Qué significa básicamente hacer clic en un componente? ¿Utiliza un bucle para verificar?

Si los navegadores son de un solo subproceso y JavaScript se utiliza principalmente en los navegadores, ¿cuál es el punto de introducir capacidades de subprocesamiento múltiple en JavaScript?