Creo que nuestra empresa puede crear desafíos diseñados para encontrar candidatos para ingenieros de software que sean:
- Bueno para resolver problemas, no para sorprender a los reclutadores.
- Es más probable que tenga miedo de acercarse a nosotros en una feria de carreras.
- Es más probable que se subutilicen en su trabajo de programación actual, pero son demasiado introvertidos para hacer algo al respecto.
Para ver un ejemplo, vea este artículo que trata sobre Facebook ocultando una dirección de correo electrónico en una imagen usando Piet .
Simplemente no puedo encontrar ningún estudio o datos concretos sobre si esto realmente funciona o no.
Respuestas:
Como cualquier herramienta, pueden ser extremadamente útiles o extremadamente peligrosos. Un taladro eléctrico te hará la vida mucho más fácil, hasta que taladres por la parte superior de tu mano y aterrices en la sala de emergencias. Lo mismo es cierto con los desafíos de programación en el reclutamiento.
Lo bueno : esta puede ser una forma efectiva de detectar a alguien que, en el papel, podría no ser tan convincente como programador. El que tiene un título en algo que tiene muy poco que ver con lo que la gente normalmente considera campos relacionados con la "programación": biología, ciencias políticas, historia del arte ...
Si superan tus desafíos, entonces genial. Aprendieron programación, de alguna manera, y aparentemente está atascado. Si se estancan, su aplicación realmente puede ser algo que se deslizó por RRHH.
Lo malo : un desafío de programación mal escrito no evalúa realmente la habilidad de programación . Prueba la resolución de rompecabezas a través de la habilidad de programación . El problema es que la segunda es una pregunta de dos variables: ¿eres bueno para resolver acertijos y puedes resolverlo mediante código? Es posible tener un programador perfectamente talentoso que falla completamente en la parte de resolución de rompecabezas.
La mayoría de los desafíos de programación que he visto también fallan en la detección de personas cercanas a lo que quieres, dependiendo de cómo esté escrito.
Hay maneras de mitigar ambos. Para este último, consideraría aceptar un "crédito parcial" en forma de soluciones que no parecen llegar a ese punto, "Así es como resolvería esto ...", etc., si realmente está buscando un problema solucionadores. Después de todo, muy pocas personas codifican por sí solas, y si su respuesta hubiera sido correcta si hubieran podido preguntarle a un colega senior "Hola Jim, ¿conoces una buena manera de implementar X?", Puede ser alguien a quien quieras Tu equipo.
Lo primero es algo más difícil, porque la carga de eso recae sobre ti. Elige acertijos / problemas / desafíos que importen. Si nadie en su grupo se ha topado con algo que se parezca remotamente al problema del vendedor ambulante en su trabajo, no haga un giro inteligente en el vendedor que viaja con el desafío que se le presenta. De esa manera, si están fallando en el aspecto de resolución de problemas de "resolver el problema y codificarlo", al menos están fallando en algo que realmente surgirá, en lugar de un poco de inteligencia arbitraria que su equipo escuchó durante el almuerzo.
fuente
Muy efectivo.
... siempre y cuando su proceso de reclutamiento no solo contenga desafíos de programación. Mientras que traste y odio hacer la evaluación técnica de cualquier entrevista, se hace actuar como un sencillo medidor para filtrar los idiotas. Y filtrar a los idiotas es el quid del proceso de reclutamiento, por lo que puede dedicar más tiempo a aquellos que son aptos para el papel.
Al entrevistar, considero muy importante ver lo que la gente dice bajo presión. Si están inclinados a escupir un montón de basura descarada, es fácilmente identificable y sabré que esta persona no vale mi tiempo.
Esto no es algo malo. Si su candidato potencial no está dispuesto a apostar que vale la pena ser empleado allí, ¿realmente quiere reclutarlo de todos modos?
fuente
Supongo que quiere que alguien trabaje como parte de un equipo; como tal, el mejor programador es la persona que trabaja mejor con los miembros del equipo existentes. Desea reunir a un grupo de personas que puedan comunicarse efectivamente entre sí, que realmente se lleven bien entre sí (no tienen que ser amigos, pero necesitan una buena relación y respeto), que estén dispuestos a estar de acuerdo y utilizan estándares de desarrollo comunes (código y proceso), que están dispuestos a ayudar a sus universidades cuando se enfrentan a un nuevo problema o tienen un bloqueo mental (teoría de los cuatro ojos). También necesita encontrar una combinación de tipos de personalidad, por lo que si tiene un equipo de introvertidos que rara vez habla, entonces traer un miembro más hablador puede mejorar la dinámica del equipo, lo que hará que el equipo sea más productivo. Por otra parte,
Después de que una persona encaje en esa mezcla, considere la habilidad / habilidad técnica. Estos también necesitan complementarse. Cada uno tiene diferentes áreas en las que son fuertes, otras en las que están bien y algunas no tienen idea. Por lo tanto, debe obtener una combinación de fortalezas relevantes para el proyecto en cuestión. Recuerde que un codificador intermedio que trabaja bien con un buen codificador tendrá el nivel de su trabajo elevado por la persona más fuerte. El eslabón débil en la cadena son las relaciones, no las habilidades (siempre que la habilidad esté en el equipo)
Buena suerte en armar eso.
fuente