Dijiste que estás entrevistando para puestos internos en la pregunta, así que esto es desde ese punto de vista, para los desarrolladores a tiempo completo la barra será un poco más alta.
Cuando entreviste a pasantes, debe recordar que es posible que no hayan completado sus estudios y que también hayan ingresado a la universidad sin experiencia previa en programación y ciencias de la computación. Como tal, debe escalar las expectativas a lo que razonablemente puede esperar que alguien conozca y al grado de prestigio de la posición (es decir, Google puede salirse con las expectativas que una empresa de la que la gente no ha oído hablar puede).
Al revisar las preguntas que presentó, probablemente las vería de la siguiente manera en una entrevista:
1) Escriba una función que devuelva verdadero si los lados del triángulo (todos los enteros) a, byc pueden representar un triángulo rectángulo.
Aplicación básica de geometría con codificación simple, la mayoría de los estudiantes deberían poder hacerlo sin mucha dificultad. A lo sumo, podría ser necesario un recordatorio del Teorema de Pitágoras si muestran un poco de estrés por estar en una entrevista. Esto casi podría verse como un problema de "impulso del ego", ya que puede ayudar a calmar a algunas personas si están muy nerviosas antes de la entrevista.
2) FizzBuzz
Nuevamente, otra aplicación de algunas declaraciones de control básicas. Es posible que los estudiantes que no hayan estado expuestos al operador del módulo, o que no lo hayan usado mucho, necesiten recordarlo, pero no deberían encontrar ningún problema real para resolver el problema.
3) Calcule el enésimo elemento de Fibonacci usando la recursión (si no supieran qué era Fibonacci, incluso les escribiría la definición F (n) = F (n-1) + F (n-2); F (1 ) = 1; F (0) = 1).
Esto tiende a ser un problema bastante común, por lo que la mayoría (si no todos) los estudiantes lo verán en algún momento antes de la graduación. El problema es que generalmente aparece cuando se presenta la recursividad a los estudiantes, ya que se presta bien o es una solución recursiva o en bucle que luego se puede comparar para que los estudiantes de diferentes escuelas puedan verla en diferentes momentos dependiendo de la secuencia de los cursos. En la práctica, si a alguien no se le ocurriera el recursivo, pediría una alternativa usando bucles y si no se le ocurriera eso, me preocuparía más su potencial capacidad.
4) Implemente la lista de estructuras para la función de entero y escritura para revertirla.
Esta pregunta en realidad podría ser demasiado abierta, ya que está escrita, por lo que también podría ser una buena pregunta para ver cómo el candidato busca información adicional (por ejemplo, si se deben incluir funciones de eliminación, conversión a matrices, etc.), pero si enunciado del problema definido ("Implementar una estructura de lista básica para enteros que permita agregar números al final o en un índice arbitrario, eliminarlos e incluir una función para devolver una copia invertida de la lista") que los estudiantes deberían poder resolver El problema siempre y cuando las listas sean una estructura común presentada ya sea en un curso temprano de estructuras de datos o en un curso básico temprano de informática.
En términos de tratar con los candidatos, si tienen dificultades, asegúrese de que estén relajados y permítales un poco de indulgencia, ya que podrían estar teniendo ansiedad por el rendimiento, ya que esta podría ser su primera entrevista real. Es posible que se requieran consejos para resolver los problemas, sobre todo en el caso de los problemas tercero y cuarto en lugar de los dos primeros.
Además, estructure el proceso general de la entrevista para que haya puntos de "salida elegante" incorporados. Por ejemplo, puede tener la siguiente agenda:
- Conocer y saludar, procedimientos de entrevista.
- Entrevista corta con programadores del personal, preguntas básicas sobre antecedentes.
- Presentación de cuestionario de programación.
- Descanso
- Regreso del descanso, despido de algunos candidatos que no encajan bien.
- Entrevista extendida con programadores del personal.
- Entrevista con recursos humanos (si es necesario).
- Envolver.
Este flujo de entrevistas tiende a funcionar bien si desea poder despedir a los candidatos antes de tiempo, ya que saben desde el principio que podrían ser despedidos después del descanso. La breve entrevista antes de la prueba también significa que no solo se presentan para tomar el examen, lo que les permite practicar algo de la entrevista y también puede permitirles decidir que no encajan bien. Si hay otros programadores observando el cuestionario o asistiendo al candidato durante el mismo, entonces también les da la oportunidad de aprobar / reprobar al candidato mientras están tomando un breve descanso.
En todo momento, cuando esté entrevistando para una pasantía y los candidatos sean estudiantes, debe recordar que todavía son estudiantes y es posible que no tengan mucha práctica con las entrevistas (lo que conduce a una posible ansiedad por el rendimiento) y que también no hayan llegado al punto en sus estudios para incluso poder responder a las preguntas, lo que significa que podría ser una buena idea enviarlas en su camino con una copia de las "soluciones ideales" a los problemas que se les presentan también.