Contratación de un desarrollador junior, ¿qué debo preguntar? [cerrado]

56

Actualmente estamos contratando un desarrollador junior para que me ayude, ya que tengo más proyectos de los que puedo administrar actualmente. Nunca he contratado a nadie que no fuera amigo o al menos conocido. Tengo una entrevista telefónica con el único solicitante que realmente me llamó la atención (en papel), pero nunca antes había hecho esto.

Todos nuestros proyectos son aplicaciones web de alta escalabilidad y uso intensivo de datos que procesan millones de transacciones por hora, en múltiples servidores y clientes. Para ser específicos de idioma / pila, utilizamos ASP.Net MVC2, WebForms y C # 4, MSSQL 2008 R2, todos ejecutados sobre Windows Server 2008 R2

¿Qué debería preguntarle? ¿Cómo debo estructurar la llamada telefónica?

Jeremy Boyd
fuente
55
¿Por qué un desarrollador junior y no uno senior?
Trabajo
10
Costo; la compañía se volvió rentable este trimestre ... y mi ego es frágil;)
Jeremy Boyd
48
En muchos sentidos, un desarrollador "económico" puede ser más costoso que un desarrollador experimentado / costoso. El frágil comentario del ego es francamente aterrador. Si nunca contrata a personas que sean más inteligentes que usted, siempre será el maestro y nunca el alumno. Te quedarás en el polvo de esa manera.
JohnFx
66
Hay algunos juniors falsos (<3 años de experiencia pero muchas habilidades). ¿Es importante la edad?
James P.
2
Si está contratando Desarrolladores Junior, significa que no puede evaluar su experiencia. Porque no tienen mucha experiencia en su corta carrera. Por otro lado, puede evaluar sus habilidades de programación y también ver cómo escriben el código. Entonces, el primer paso puede ser una prueba de habilidades, como http://tests4geeks.com. En el segundo paso, puede pedirles que escriban programas simples en casa. En su caso, podría ser la aplicación MVC que muestra una lista de algunos datos utilizando JSON y AJAX. La lista se actualiza automáticamente por un temporizador para que el elemento publicado se pueda ver sin necesidad de volver a actualizar ..
duro

Respuestas:

49

Pregunte sobre qué blogs de tecnología leen, pregunte qué le parece interesante al solicitante en la tecnología actual y por qué.

Esencialmente, para una entrevista telefónica, desea saber si se trata de alguien que está entusiasmado con la tecnología y la programación y está interesado en aprender y saber más.

Como se trata de un estudiante de tercer año, no puede esperar que conozcan muchos temas avanzados, pero desea asegurarse de que puedan pensar como un programador: denles un problema simple y pídales que lo guíen a través de cómo lo resolverían. Le dará una idea de cómo piensan y resuelven los problemas.

Oded
fuente
Desearía poder elegir dos respuestas, porque la tuya y la de Peter K. son una gran combinación.
Jeremy Boyd
55
Esta respuesta es limitada y perjudicará a las personas que solo siguen este consejo. Para la pantalla del teléfono, sigue los consejos de Steve Yegge al respecto . Para una persona, tenga desafíos de codificación y siga la Guía de entrevistas de Joel's Guerilla . Tiene una pregunta de diseño: "¿cuáles son todos los pasos necesarios para hacer <insertar un software común y no trivial>?" Descubrirá que, independientemente de la experiencia, todos los buenos contratados tienen respuestas buenas y rápidas a estos problemas.
Robert P
Ojalá pudiera +3 @RobertP blogs de personas de la industria como Yegge, Joel y Atwood son tesoros para cualquiera que se entrevista o en cualquier posición de liderazgo. o cualquier persona en la industria realmente, pero especialmente si estás en posición de dar orientación o evaluar a otros ingenieros.
Jimmy Hoffa
26

Tomo un enfoque abierto para las entrevistas telefónicas, pero para darle cierta estructura, generalmente le pido a la persona que hable sobre el currículum que presentaron. A menudo, la forma en que revisan su currículum suscitará otras preguntas y obtendrá una mejor comprensión de cómo son.

La otra cosa en la que pensar durante la entrevista telefónica es preguntar: ¿podría trabajar con esta persona? ¿Son enérgicos? ¿Molesto? ¿Preciso?

Peter K.
fuente
20

Codifica con ellos.

Definitivamente deberías hacer las entrevistas habituales. Pero no contrato a nadie sin hacer un par de sesiones de programación con ellos.

Mi enfoque: tomaré 2-3 horas y un problema de juguete (por ejemplo, "Vamos a construir Twitter v 0.1" para un desarrollador de pila completa, o "Implementemos Lista de primitivas" para una persona de fondo). Nos sentaremos en la misma computadora y discutiremos cómo abordarlo. Escribiré la primera prueba unitaria y diré "haz que pase". Tal vez escriba los próximos dos exámenes para ayudarlos a ponerse en marcha. Y luego generalmente los dejo correr, saltando solo ocasionalmente. A medida que se nos agote el tiempo, los detendré y les preguntaré dónde lo llevarían a continuación y qué querrían hacer antes de ponerlo en vivo.

Cosas que busco:

  • ¿Pueden colaborar bien?
  • ¿Entienden los conceptos básicos?
  • ¿Pueden descomponer un problema en partes?
  • ¿Valoran el código limpio?
  • ¿Atrapan sus propios bichos?
  • ¿Intentan mentir cuando no saben algo?
  • ¿Les gusta la codificación?
William Pietri
fuente
17
Dudo seriamente que a un Junior le vaya bien en una sesión de programación en pareja con estilo TDD, o incluso pruebas unitarias en general.
Martin Blore
3
Depende de los antecedentes del programador junior. Acabo de contratar a uno la semana pasada que fue genial en eso. Sin embargo, en términos más generales, eso es parte de lo que estoy tratando de averiguar cuando entrevisto. Si no son buenos en la parte de prueba, simplemente escribiré las pruebas yo mismo, o dejaré que se carguen sin pruebas. De cualquier manera, me permite ver cuáles son sus fortalezas y debilidades.
William Pietri
2
No me gustaría hacer esto ahora, después de 10 años de experiencia, no importa cuando era un junior. Un pensamiento horrible!
AnthonyBlake
3
Me consideraría un programador junior y agradecería este enfoque para mostrar cómo y qué puedo hacer. Demasiado a menudo me encuentro con preguntas que requieren definiciones perfectas de diccionario con poca consideración a su uso e implementación general. ¿Prefiere citar una lista memorizada de los usos de la staticpalabra clave fuera de Wikipedia o mostrar cómo puedo usarla en un contexto viable y aplicable?
amcc
7

What's your Stack Overflow account name?

Una de las mejores maneras de saber cómo se verá el código de alguien es verlo de primera mano. Una de las mejores formas de hacerlo es a través de SO.

De lo contrario, se aplican preguntas estándar. Pregunte sobre situaciones difíciles y cómo las han superado. Pregunte acerca de los nuevos idiomas que están aprendiendo o piensan aprender y por qué. Pregúnteles qué IDE usan y por qué lo eligieron. ¿Qué fuente de control?

Puede aprender mucho haciendo preguntas abiertas que pueden no estar relacionadas con un proyecto específico, sino que les permitirán trabajar con usted en su proceso de pensamiento.

EricBoersma
fuente
Mejor pregunte por su cuenta de github, aunque probablemente habrían compartido esa información si tuvieran una cuenta.
Trabajo
77
Esta vez, inicié sesión en SO y me di cuenta de que el 90% de las personas allí solo se preocupan por el desarrollo web ... luego me fui ... tanto para mi representante.
Pemdas
3
Si bien esto puede funcionar, no es necesariamente preciso. Uno puede poner un esfuerzo significativo en su trabajo remunerado que en el asesoramiento informal aportado.
NoChance
55
Por lo que vale, algunos de los mejores desarrolladores de mi empresa no tienen una cuenta SO o tienen una reputación <100. Por supuesto, es genial si tienen una cuenta con un alto representante, pero no se puede leer mucho en ellos no teniendo uno alto.
Jeremy Wiggins
En realidad, si el candidato está algo activo en SO (o si estuvo activo a veces en el pasado), es probable que encuentre el enlace en su CV. Por otro lado, los entrevistadores rara vez tienen tiempo para revisar algo como esto. Lo que en algunos casos puede ser bueno para usted, porque, por ejemplo, no estoy orgulloso de cada pregunta / respuesta que publiqué en SO.
Radu Murzea
6

Una cosa que no vi aquí en mi lectura rápida es la necesidad de preguntarles sobre:

1 - Voluntad de aprender

2 - Capacidad de autoaprendizaje versus entrenamiento formal

3 - Ejemplo de algo que aprendieron ellos mismos en el pasado

4 - Un ejemplo de áreas con las que no se sienten cómodos

5 - Pregunta general de alto nivel como "si tiene la tarea de crear una aplicación web sobre ... qué tareas deben llevarse a cabo y quién debe hacerlas" - Esto debería darle una idea sobre su conocimiento actual sobre el proceso de desarrollo. no tiene que ser exacto, pero al menos conocerá su punto de vista tal como es hoy.

Ninguna posibilidad
fuente
4

Háblame de un proyecto en el que hayas trabajado en el pasado

  • Describa la arquitectura general del proyecto. Alto nivel está bien.
  • ¿Qué es lo que te gustó del proyecto?
  • ¿Qué es lo que no le gustó del proyecto?
  • ¿Qué es algo que, en retrospectiva, hubieras hecho de manera diferente?

Esta es una gran pregunta para entrevistas en mi opinión, por teléfono o de otra manera. Si pueden hablar inteligentemente sobre un proyecto en el que han trabajado, es probable que lo "comprendan". Estás contratando a un desarrollador de nivel junior, por lo que no es importante que sean expertos todavía, pero al menos deberían entender su campo lo suficientemente bien como para hablar de ello. Por lo general, las personas que querrá contratar no tendrán problemas para correr con esto, mientras que las personas de las que querrá mantenerse alejado responderán en un par de oraciones o menos.

¿Qué haces para mantenerte actualizado?

  • ¿Qué blogs lees?
  • ¿Qué libros has leído / estás leyendo?
  • ¿Algo más?

En una industria que cambia constantemente, creo que es importante que se mantengan actualizados. Esta no es la pregunta más importante que hago en una entrevista, pero si no se les ocurre nada que decir, no es una buena señal.

Dime como escribirías una clase de bicicleta

Tal vez sea una mejor pregunta para una entrevista en persona para que puedan escribir un pseudocódigo, pero creo que podría funcionar también para una entrevista telefónica ... Describa una bicicleta (tiene manijas, ruedas, etc. Alguien la monta. ) y pídales que describan cómo modelarían las clases. No hay nada innovador aquí, pero si luchan con esta pregunta, es probable que todavía sean DEMASIADO menores para ser una ventaja.

Jeremy Wiggins
fuente
2

Ya hay muchos buenos consejos para entrevistas ya escritos, pero no creo que pueda ocupar este puesto hasta que sepa exactamente qué van a hacer día a día. Si su primer pensamiento fue: "Lo que sea que necesite que hagan". solo para. Encuentre un fragmento de código específico para que lo revisen. Elija el mejor y el peor código para que lo vean y vean si conocen la diferencia. Dales áreas para trabajar en un primer proyecto rápido que puede haber sido descuidado.

Esperemos que haya contratado al mejor programador, pero todos tienen áreas en las que tienen mejor / más experiencia que otros. Aproveche y defina su papel en consecuencia.

Ah, y contrata a alguien con un historial de hacer las cosas.

JeffO
fuente
0

Cuando está en una discusión individual con el desarrollador, puede conocerlo y luego verificar si son honestos con usted.

Para hacerlo, puede hacerle la siguiente pregunta para saber qué tan honesto es realmente

  1. Si han realizado alguna certificación, como una Certificación de Microsoft, verifique con ellos para saber si realmente la han estudiado y elimínela.

  2. Algunos desarrolladores junior que han realizado sus proyectos del último año, no habrían hecho el proyecto solos, es decir, sus amigos deben haberlo hecho por ellos, etc.

Ser honesto juega un papel muy importante cuando el desarrollador junior se encarga de proyectos confidenciales.

Si cree que puede confiar en ellos, puede dar un cuestionario sobre las tecnologías que están reclutando, seguido de un texto práctico con algún escenario de caso para verificar si tienen la capacidad lógica, es decir, verificar si tienen un contacto constante en la programación.

Karthik Sreenivasan
fuente
1
asumiendo lo peor de la gente?
tp1
+1 por la suposición. @ tp1 Mantener abiertas todas las opciones. : D
Karthik Sreenivasan
0

El CEO de Sandglaz, Nada Aldahleh, escribió recientemente una publicación de blog sobre esto, basada en su propia experiencia de contratar desarrolladores para su startup. Estas son algunas de las cosas que busca:

  • mentalidad de resolución de problemas
  • Fuertes habilidades de comunicación
  • hacer preguntas de arquitectura y algoritmos; un desarrollador junior debería ser capaz de diseñar nuevas características pequeñas y las preguntas sobre algoritmos pueden ser sobre la mentalidad de resolución de problemas y el tipo de base que tienen
  • rompecabezas para aislar habilidades analíticas

Y, por supuesto, la prueba de programación, que no debería consistir en la pregunta de Fizz Buzz. Una tarea de la vida real que se puede completar en un par de horas en su oficina sería el mejor tipo de prueba.

Puedes leer más de sus consejos aquí: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

usuario104460
fuente