Nuestra empresa está buscando nuevos programadores. Y aquí viene el problema: hay muchos desarrolladores que se ven realmente bien en la entrevista, parecen conocer la tecnología que necesita y tienen un buen historial de trabajo, pero después de dos meses de trabajo, descubre que no pueden trabajar en un equipo, escribir un código les lleva mucho tiempo y, además, el resultado no es tan bueno como debería ser.
Entonces, ¿utiliza alguna prueba formalizada (¿hay alguna?)? ¿Cómo se reconoce un buen programador y una buena persona? ¿Hay alguna pregunta "buena" que pueda revelar problemas futuros? ... ¿o se trata solo de su 'sentimiento' sobre la persona (es decir, principalmente su experiencia) y de probarla?
Editar: Según la respuesta de Manoj, aquí está la pregunta relacionada con la tarea de codificación en la entrevista de trabajo.
fuente
Respuestas:
Haz que hablen sobre lo que les interesa. Todavía tengo que conocer a un desarrollador que sea realmente apasionado cuando habla de programación pero que en realidad no puede codificar. Puede que existan, por supuesto, y su entrevista también debe verificar la competencia, pero la pasión es un buen indicador en mi experiencia. (Tenga en cuenta que eso no es lo mismo que poder "hablar en voz alta" en términos de palabras de moda).
Pregúnteles qué no les gusta de su idioma o plataforma favorita. ¿Cómo arreglarían las cosas? ¿Qué les gustaría ver en la próxima versión? ¿Tienen proyectos de hobby? Si tienen un blog, léelo. Verifique su presencia general en línea.
fuente
Contratar gente buena es difícil .
Me ha costado algunos errores reales mejorar en eso. Empiezas a confiar mucho más en tu tracto intestinal después de las primeras veces que no confías en él y te arrepientes.
Tengo un gran respeto por las preguntas en la pantalla del teléfono de Steve Yegge y he usado esto como base para entrevistar a personas con cierto éxito.
También creo que mejoré al entrevistar a las personas después de leer la guía de Joel para las entrevistas de guerrilla (ahora en la versión 3.0, eso está por delante de la versión para la web y todo, solo tiene que ser bueno).
También hay otras 57 preguntas (a partir del 20/11/2008) sobre Software Engineering Stackexchange etiquetadas con entrevista y algunas de ellas parecen muy relevantes, así que échale un vistazo.
fuente
2^16
de memoria. Y la versión de vía rápida en la parte inferior es solo una parodia pobre.Algunas ideas:
Haga varias preguntas abiertas desde varios ángulos diferentes:
Elija algo, cualquier cosa, que el candidato dice saber bien. Haga una pregunta simple y luego, con base en la respuesta, haga otra, un poco más detallada, y continúe "cavando" hasta llegar al límite del conocimiento del candidato. Esto te da una idea de:
Pregunta cómo el candidato ocupó de diversas situaciones a trabajos anteriores: el trabajo en equipo, proyectos atrasados, depuración, etc . ¿Las respuestas son positivas o negativas? ¿Apasionado? ¿Inteligente? ¿Arrogante?
Encuentro que los mejores candidatos son entusiastas, experimentados, confiados pero educados y, lo más importante, presentes . Necesitas saber que hay alguien adentro. :-)
fuente
Para reconocer a un buen programador, debes ser un buen programador. Eso significa que debe conocer muy bien la programación para ver a través de lo que se dice y se hace en la entrevista, y debe saber qué preguntas hacer.
He visto a los candidatos dar una respuesta incorrecta en la entrevista, pero su explicación ha demostrado que conocían el tema (y, por lo tanto, podrían obtener fácilmente la respuesta correcta buscando en la red). Para ver eso, debes conocer muy bien el tema sobre el que haces la pregunta.
Otra cosa es evitar preguntas sobre detalles que podrían fácilmente buscarse en Google. Esas preguntas solo muestran qué tan bueno es el candidato para recordar cosas, no si él o ella realmente tienen el conocimiento y la comprensión que está buscando.
Mi recomendación es obtener ayuda de alguien que conozca una gran cantidad de programación y que tenga buenas habilidades con la gente para ayudar con las entrevistas.
Editar: También escribí un comentario sobre entrevistas aquí .
fuente
Recuerde que la capacidad de programación no lo es todo. Podría tener el mejor programador del mundo trabajando para usted, pero si odian trabajar con otras personas, no los encontrará muy útiles.
La personalidad de un programador debe estar más arriba en la lista de lo que la mayoría de los empleadores parecen clasificar. En mi lugar de trabajo actual tienen mucho cuidado al contratar al tipo correcto de persona.
Las personas generalmente pueden aprender a ser mejores programadores, las personas generalmente no pueden aprender a ser mejores seres humanos.
fuente
Hazlos codificar. Dé un problema que pueda resolverse en unas 4 o 5 horas e inspeccione el código en busca de documentación, estilo de codificación, cómo planeó la solución antes de comenzar a codificar, etc. No necesita tener que resolver el problema. Y como mencionó Jon Skeet, hágales hablar sobre programación, su lenguaje de elección y cosas por el estilo. Puedes reconocer la pasión en un buen programador. Pregunte cuántos sitios relacionados con la programación siguen, como stackoverflow. Los blogs que siguen también pueden ser un buen indicador.
fuente
Me gusta la respuesta de la pasión. Creo que tienes que ser apasionado por lo que trabajas para ser realmente bueno en eso.
Un buen programador programa aparte del trabajo (de vez en cuando al menos). A él / ella le gusta resolver problemas de programación. Y cuando él / ella no puede encontrar un programa que resuelva una necesidad particular en el hogar, generalmente intentará resolverlo él mismo.
Pero hay varios tipos de programadores.
Si puede encontrar el "pirata informático" que también documenta muy bien y tiene excelentes habilidades de comunicación, creo que ha ganado el premio gordo.
Oh, y una última cosa. Probablemente no desee un programador que tenga ambiciones de líder, ya que solo usará la programación para iniciar. Eso significa que perderá ese recurso tarde o temprano.
Una pregunta que haría al contratar a un programador sería: "¿Por qué te educaste como programador?". Eso sería un regalo muerto si dudan allí.
Esa es mi opinión.
fuente
Un amigo mío está trabajando en una empresa donde tienen un paso adicional en el proceso de contratación: después de la evaluación inicial y la entrevista, un solicitante tiene que "probar el trabajo" durante unos días. Me dijo que aunque un candidato tenía todas las habilidades y talentos necesarios, no lo contrataron porque era
unapersona no agradable para trabajar.fuente
Es muy difícil reconocer a un programador basado solo en una entrevista de trabajo.
Algunas cosas que deciden que alguien es un buen programador son:
Entonces, tiene algunas pequeñas sugerencias que puede encontrar en una entrevista:
fuente
Podrías realizar alguna prueba en la entrevista.
Pero muchas veces también hay un problema con el entorno de trabajo en sí. Seguramente este no sea el caso en su organización, pero es bastante común en el campo de la industria del software que la deuda tecnológica se vuelva demasiado grande. Luego, cuando contrata nuevas personas, no es de gran ayuda si son buenas o no, debido a la deuda. Maximizar la legibilidad y la comprensión del código de su programa ayuda a los recién llegados a ponerse a trabajar.
También muchas personas son tales que pueden cooperar, pero a veces no hay forma de cooperar. Por ejemplo, si todas las personas son desarrolladores, se supone que deben hacer su trabajo. Pues lo hacen. Pero, ¿tiene un arquitecto que dirija el proyecto de desarrollo y mantenga reuniones y demás? Los desarrolladores normales pueden sentir que no tienen el mandato necesario para comenzar las reuniones y pueden pensar que interrumpir a otros de vez en cuando no es el camino.
Comunicarse entre sí no debe ser el objetivo final. Cuanta menos comunicación se necesite, mejor, pero solo si es menos posible. Menos se hace posible si tienes un arquitecto. La cantidad total de comunicación puede mantenerse en un buen nivel, pero obtiene más resultados para la misma cantidad de comunicación.
fuente
primero empiezo con las cosas habituales de la entrevista, considero muy importante ver si la persona frente a mí vale algo, y determinar sus habilidades y conocimientos.
Después de eso uso un par de técnicas en el campo de Java, como discutir algunos principios, principalmente tomados de Effective Java.
En esta etapa, cuando pienso que podría tener un buen programador frente a mí, le doy un código para que lo revise. Lo que quiero ver es que puede identificar las partes peligrosas del código, dar algunos consejos sobre las mejoras, encontrar dificultades en el rendimiento de un subproceso múltiple Y que puede distinguir entre comentarios importantes y "comentarios de sabor". Todo esto me ayuda a encontrar un empleado más competente.
pero al final siempre recuerdo que contratar es un tipo de juego ... muy muy difícil de anticipar ...
fuente
Sé que esto no responde a lo que está preguntando, pero le recomiendo, si las leyes lo permiten, siempre contrate de manera temporal al principio (dos semanas o un mes, dependiendo del trabajo). Si la persona vale la pena, no se opondrá, además es una salvaguarda para los dos (puede dejarlo ir y puede que no le guste el trabajo y se vaya).
fuente