¿Cómo contratar a un buen desarrollador de C # si no conozco C #? [cerrado]

15

Soy un desarrollador de C ++. Sé cómo funciona Windows en el nivel nativo, pero no soy un gran experto en C # y .NET. Ahora necesito un desarrollador de C # en mi equipo (todos mis desarrolladores son C ++). ¿Cómo puedo contratar a un gran desarrollador de C # si no conozco C # a buen nivel? ¿Cómo hacer preguntas, cómo evaluar si las respuestas son excelentes o si tienen errores tontos?

Kirill V. Lyadvinsky
fuente
55
¿Dónde publicas la oferta de trabajo? ;)
IAbstract
Aquí hay un buen conjunto de preguntas como mínimo (probablemente debería entender las respuestas de antemano, obviamente) Enlace
Doug Stanley
11
Parece que puedes contratar buenos desarrolladores de C ++. Agregue uno más a su equipo y diga "¿Adivina qué?" :)
JeffO
77
Solo contrata a un buen programador.
Marcelo
2
@ Job O, ya sabes, compra el libro.
Kaleb Brasee

Respuestas:

3

De vez en cuando me encuentro con el problema de entrevistar a programadores que tienen experiencia principalmente en C ++, que no conozco tan bien como ellos. Mi estrategia es:

  1. principalmente hago preguntas generales de programación, algoritmos, diseño de OO, cómo refactorizar, qué hace una buena prueba de unidad, etc. Agrego algunas preguntas generales dirigidas al estilo de lenguaje, por lo que para C ++ podría preguntar sobre la administración de memoria y la vida útil de los objetos para C # Podría preguntar cosas como, ¿puede tener una pérdida de memoria al usar un recolector de basura?

  2. intenta averiguar cómo aprendieron el idioma, qué libros han leído, etc.

  3. verifique que hayan escrito una cantidad sustancial de C ++. Profundice en cuándo lo han usado, cuánto, qué hicieron con él y para quién. Luego intente verificar esto en la medida de lo posible utilizando sus referencias.

Si pueden responder bien las preguntas difíciles de diseño y teoría y han escrito una cantidad decente de C ++, entonces espero que sean medio buenas al menos, y probablemente puedan aprender las cosas que faltan con bastante rapidez.

flamingpenguin
fuente
20

La prueba real para todos los programadores es qué tan bien resuelven los problemas. Un solucionador de problemas de primer nivel con solo habilidades mediocres de C # será mucho más valioso para usted que un dios C # (dess) que no puede descubrir cómo manejar la entrada de formularios.

Intente encontrar un problema real razonable de su dominio comercial y deje que lo resuelva en C #. Conoces el dominio y sabes cuál debería ser el resultado. Puede revisar la lógica usted mismo y hacer preguntas, ya que el flujo básico y los comandos en C # no son significativamente diferentes a los de C ++.

Si todavía está preocupado, envíe su código terminado a uno de sus amigos de C # o tal vez a un socio comercial y pregúnteles si pueden revisarlo y enviar sus comentarios.

Dave Wise
fuente
55
+1 para todos menos la parte de revisión de código. ¿Cómo sabes que tu amigo C # no solo va a señalar sus preferencias personales y elegir a alguien arbitrariamente? Ve con tu instinto. La inteligencia lo es todo, y la experiencia es más difícil de evaluar y evaluar que la inteligencia. Contrata personas inteligentes que hagan las cosas. (Regla de Joel.)
Warren P
Supuse que ya habría un nivel de confianza establecido con la persona a la que se le pediría que revisara el código, pero sí tiene un punto válido
Dave Wise,
2

Supongo que tiene una necesidad real para el desarrollador de C #.

Primero, averigüe qué tipo de tareas necesita para que puedan cumplir.

Luego pregúnteles cómo lograrían esas tareas. Pregunte cómo han completado tareas como esta anteriormente.

Mientras entrevista, solicite a otros solicitantes que evalúen las soluciones propuestas. Sugeriría sembrar las soluciones con una que sabes que no funcionará, y tal vez una que creas que es buena. Esto servirá para ayudar a determinar cómo el solicitante puede trabajar con su equipo. Los controles deberían ayudar a eliminar a los hombres sí y a los Asesinos de Ideas .

Esto debería proporcionarle un buen grupo de candidatos con ideas que sean aceptadas por sus pares y que tengan la capacidad de trabajar con su equipo.

SoylentGray
fuente
1
Por aquí, las personas que no pueden ver qué hay de malo en una idea son turistas, no ingenieros. :-) Creo en el poder del pensamiento positivo y negativo. El artículo que vinculaste como Idea Assasins parece que fue escrito por una persona amargada que no puede defender sus ideas débiles en una discusión constructiva de ingeniería, y que se vuelve político y emocional cuando su propia comprensión de los hechos y su capacidad limitada para hacer ciencia abandona ellos.
Warren P
Hay personas que resistirán cualquier cambio o idea que no provenga de ellos. Esos son los Asesinos de Ideas. No estoy hablando de personas que pueden ver problemas reales, solo aquellos que son tóxicos para el ambiente. Las personas que en lugar de ver cómo podría funcionar solo ven para ver cómo fallará.
SoylentGray
2

tenga la entrevista cuando estaba contratando a un desarrollador de C ++. no se centre demasiado en las tecnologías C ++, sino más bien en la resolución de problemas, la POO y la programación en general. Si lo contrataras como un desarrollador de C ++ que quiere hacer C #, entonces sería una buena contratación.

komisacroS
fuente
0

Siendo yo mismo desarrollador de .Net y tratando mucho con chicos de C ++, creo que aún querría saber si una persona sabe al menos algo sobre la plataforma .Net: recolección de basura, GAC, JIT, NGEN, Valor vs. Tipo de referencia, propósito de IDispose, etc. Una buena lista de preguntas está disponible en el blog de Scott Hanselman . No hay una manera simple de averiguar si las respuestas son correctas si no comprende las preguntas usted mismo, por lo que podría tener sentido echar un vistazo a la descripción general de .Net en MSDN o buscar un buen libro, como Essential C # 4.0.

Si está buscando un programador de GUI, es muy útil pedir implementar algo simple, como una calculadora o un rover de Marte o lo que sea. Está bien dar uno o dos días para esto. Verá de inmediato si la GUI es útil y agradable, por ejemplo, cómo se comporta cuando cambia el tamaño.

Dmitry Sevastianov
fuente
-1

Comience por verificar sus respuestas a las preguntas de C # en SO ..

Ben
fuente