¿Las compañías realmente usan candidatos de desarrolladores para hacer trabajo gratis cuando se les pide que creen una pequeña aplicación como asignación?

Depende de la empresa, por supuesto. Aunque no tengo suficiente experiencia con este tipo de empresas para decirte cómo suele ser, puedo darte mi opinión como fundador de una startup.

Si quisiera contratar a un desarrollador, lo seleccionaría en función de sus habilidades. Podría hacer una entrevista en la pizarra, pero no estoy seguro de si podría pasar una de esas. Me importa la calidad del código, no las habilidades para resolver acertijos.

Por lo tanto, una tarea funcionaría perfectamente. Quiero ver cómo escriben el código, qué opciones toman (por ejemplo, escribir pruebas o no) y cómo, qué les importa, el estilo de codificación y otras cosas.

No les pediría que hicieran una aplicación como trabajo gratuito porque:

  • Ese no es el punto, quiero contratar a alguien para que trabaje para mí, alguien en quien pueda confiar
  • Probablemente necesitaré a alguien para seguir trabajando en esa aplicación de todos modos
  • Mi compañía y yo perderemos el respeto.
  • La mayoría de las aplicaciones no son algo que pueda hacer en un fin de semana (a menos que esté en un hackathon, pero allí no le importa la calidad del código)

Por supuesto, eso no es todo lo que se necesita para contratar a alguien, sino parte del proceso.

Voy a responder esto de manera diferente, pedirles a los candidatos que hagan tareas son en su mayoría inútiles. Es una pérdida de dinero para la empresa, una pérdida de tiempo para el desarrollador , y no pruebe nada. Los buenos candidatos no harán las tareas porque confían en sus habilidades, por lo que obtienes las mediocres. Los resultados de las tareas no prueban nada sobre la resolución de problemas o la capacidad de codificar. No hago tareas, sino que hablo con los candidatos sobre sus experiencias y lo que han construido para asegurarse de que huelen los exámenes aprobados. Finalmente, si hay un candidato límite, no les pido que hagan tareas de programación, pero si es necesario, una solución. Es decir, construir una estructura de base de datos que represente un concesionario de automóviles … en papel. Sin codificación, nada. Eso muestra un verdadero pensamiento crítico, resolución de problemas y la capacidad de traducir los requisitos adecuadamente. Una solución de codificación demuestra … absolutamente nada.

Lamentablemente, se ha convertido en un estándar de la industria “sí, vamos a entusiasmarnos con dar una tarea” sin tener en cuenta ni pensar en el proceso en sí.