Debo hacer una evaluación rápida de docenas de estudiantes nuevos muy rápidamente. Tengo 30 minutos de reunión con cada uno de ellos (en dos o tres días). Quiero usar la mayor parte del tiempo para discutir aspectos no técnicos. Así que planeo usar 10 minutos para preguntas técnicas. Las mismas preguntas para todos ellos.
Ya están todos contratados (son estudiantes), lo que necesito saber es el nivel promedio para preparar una capacitación.
Idealmente, la dificultad must be progressive
para establecer un nivel para cada uno. Nivel promedio, y haré un promedio en cada pregunta también.
Si solo tuviera 10 minutos y 10 preguntas para hacerle a un candidato, ¿cuáles serían sus 10 principales?
Respuestas:
Tres preguntas, elaborando sobre el final de la respuesta de Eric Lippert aquí :
Pregunta 1:
Pregunta 2:
Pregunta 3:
El factor más importante en su decisión es determinar donde un estudiante (realista) coloca a sí mismos , y esas tres preguntas le ayudará a determinar que rápidamente. También ayuda a identificar a las personas que podrían verse comprometidas por el efecto Dunning-Kruger (en cualquier extremo), pero ese es otro tema.
Si alguien puede encontrar la referencia a este método en SO y editar esta publicación para incluir un enlace, realmente lo agradecería.
De todos modos, eso debería caer bastante menos de diez minutos.
fuente
Siéntase libre de sugerir reemplazos, esta lista tiene mucho margen de mejora.
fuente
fuente
Mi experiencia con los estudiantes comenzaría prácticamente desde cero: descubrí lo que la gente aprende en la Universidad y lo que es útil son dos conjuntos bastante separados.
Pero como tienes la oportunidad de hablar con ellos, sería una tontería no tomarlo.
Mi suposición es que hay poco en común en sus antecedentes, así que estoy evitando preguntas específicas del idioma. La única excepción que he hecho es suponer que han hecho algo en la web, pero esta pregunta podría sustituirse por algo equivalente si son especialistas integrados o lo que sea.
Usted ha pedido que sean progresivos, algo que he intentado hacer, pero si mi suposición acerca de que no hay nada en común es correcta, las preguntas correctas / incorrectas son relativamente complicadas y gran parte de su competencia vendrá de cuán buenas sean sus respuestas a preguntas más generales. las preguntas son
De todas formas...
1) ¿A qué idiomas y tecnologías ha estado expuesto? ¿Cuántos de estos (y cuáles) ha pasado más de 50 horas programando realmente (eso no incluye conferencias, tiempo de laboratorio, etc., sino proyectos y tareas donde codificaba en solitario)?
2) Describe el programa más complejo que hayas escrito. ¿Qué lo hizo complejo?
3) ¿Qué te enseñaron en la universidad (en relación con la programación) que realmente no crees que entiendes correctamente? Si cree que entendió todo (verifique sus calificaciones en este momento), hable sobre una aplicación o un elemento de una aplicación que haya visto que no sabría cómo codificar y cómo podría comenzar a pensar en ello.
4) ¿Cuáles son los principios básicos de la programación orientada a objetos?
5) Cuéntame todo lo que puedas sobre bases de datos relacionales en 1 minuto
6) Para una aplicación web, describa un método para mantener la información sobre el usuario entre páginas. Qué ventajas y desventajas existen para el mecanismo que ha descrito.
7) Elija una pieza de funcionalidad comúnmente utilizada dentro de la informática y explique brevemente cómo funciona a nivel programático (por ejemplo, cifrado, compresión). También explique cómo tenía que usar esa funcionalidad que la implementaría (aquí estaría buscando el hecho de que, aunque puede saber cómo funciona algo, probablemente sea mejor obtener una biblioteca para ello).
EDITAR: reestructurado y agregado un par de preguntas adicionales para hacerlo más progresivo como se preguntó originalmente.
fuente
Si se trata de estudiantes y está buscando poder evaluar dónde están en sus estudios, entonces realmente no debería haber ninguna pregunta capciosa o preguntas que los hagan pensar mucho. Mi consejo sería centrarse solo en lo básico: no tiene mucho sentido pedirles que expliquen cómo funciona la reflexión si todavía no están completamente al día con los objetos y la herencia.
Aquí hay algunas preguntas de ejemplo que podrían usarse y que tal vez podría comenzar con algo de la categoría de conocimiento central y luego moverse de acuerdo con la forma en que responden las preguntas, algo así como cómo funciona la prueba adaptativa .
Fundamentos
Núcleo
enum
usa la palabra clave y cuándo la usaría?Avanzado
fuente
Sin una respuesta a mi comentario anterior, estas son cosas que me vienen a la mente en general, pero no estoy seguro de considerarlas técnicas.
fuente
Me doy cuenta de que estás tratando de desarrollar la capacitación en base a lo que ellos no saben, y que planeas tener varios "cubos" de capacitación para diferentes grupos de estudiantes. Dado que solo tiene diez minutos asignados, ¿por qué no hacer una lista de las cosas que está pensando incluir en la capacitación y hacer esas preguntas específicas? Entonces planeas enseñarles C #. Pregúnteles si lo saben bien. Pregunte si han utilizado alguna característica más reciente (LINQ, tipos anulables, genéricos, ...). Si hay contenido de base de datos en su entrenamiento, haga algunas preguntas al respecto. Al final, puede ver que uno de los temas que había planeado es innecesario, porque todos lo saben, y todos necesitan otros temas, y así sucesivamente. Eso es más práctico que tratar de formular preguntas que no estén relacionadas con lo que tú '
fuente
Hágales la pregunta de FizzBuzz
¿Sabían cómo codificarlo? ¿Qué idioma usaron? ¿Por qué lo codificaron como lo hicieron? ¿Usaron la recursividad? Bucles? Otros métodos / funciones? Punteros?
También podría usar la pregunta como base para otras preguntas (es decir, ¿por qué usó / no usó Recursion? ¿Cómo escribiría esto usando punteros?)
No abarca todo, pero puede darte una idea de sus habilidades de codificación
fuente
Diez preguntas
Muestra un bucle for que suma los valores de una matriz. Pregunte entonces qué hace el fragmento de código. [¿Pueden leer un bucle básico?]
Pídales que escriban un bucle for que imprima los números del 1 al 10, separados por comas. [Además de "¿pueden hacer esto?" puedes juzgar cuán repetitivo es su código.]
Muestre un fragmento de código con dos referencias
a
yb
señalando dos objetos diferentes con un campo enterox
establecido en, digamos7
y5
. A continuación, reasignar:a = b;
,b.z = 9;
, y luego pedir el valor dea.z
. [¿Entienden las referencias?]Muestra dos bucles anidados para (usando índices
i
yj
), acumulando valores de alguna expresión. En el bucle más interno, tenga dos cálculos:double x = Math.pow(2.0, i)
ydouble y = x * j
. Pídales que hagan el código más eficiente. [¿Saben sobre la dependencia del bucle simple?]Pregúnteles qué hay de malo en el código de muestra A. (Ver más abajo) [¿Pueden pensar lógicamente?]
Pregúnteles qué es lo que está mal en el ejemplo de código B. (Vea a continuación.) [También en el pensamiento lógico.]
Pídales que inviertan esta condición:
(s != null && s.Length != 0)
sin usar!
. [¿Conocen la ley de DeMorgan?]Muestre un código similar a los viejos anuncios de Lint en revistas: pídales que encuentren el error. Por ejemplo, sobrecargar en
equals
lugar de anularlo. [¿Son buenos abogados de idiomas? Este tipo de preguntas evalúan principalmente la experiencia: ¿has visto esta antes?]¿Pueden describir cómo realizar una búsqueda binaria a través de una matriz ordenada?
¿Pueden describir cómo se podría implementar un método de clasificación?
Esto puede parecer "demasiado corto", pero creo que para evaluar a los estudiantes es posible que los diez minutos sean bastante ajustados. Realmente quieres verlos hacer algo de codificación. (Parece que harás FizzBuzz, basado en un comentario).
Si puede asumir que es un estudiante más fuerte, entonces también querrá preguntar algunos de los clásicos, como la recursión, revertir una lista vinculada y tal vez un comodín avanzado como explicar una lista XOR o qué intuiciones podrían tener para por qué ordenar un conjunto de números hace que sea más fácil comprimir que sin ordenar.
Código de muestra A:
Código de muestra B:
fuente
Seguramente vas por esto de la manera incorrecta. Identifique las agrupaciones en las que desea ubicar a cada alumno
p.ej
y así. Cuando haya identificado las agrupaciones adecuadas que dependerán del material del curso, resolver qué preguntas hacer será trivial.
fuente
Los estudiantes ya están contratados y desea establecer un programa de capacitación, por lo que parte del acuerdo es determinar qué tan rápido pueden aprender (y / o lo que saben: ¿a quién le importa qué?). ¿Por qué no elegir algunas preguntas fáciles, medianas y difíciles y dárselas de antemano? ¿Por qué tenderles una emboscada con preguntas que tal vez no conozcan si algunos pueden aprenderlas fácilmente?
Verá, al contrario de lo que la mayoría de la gente imagina, que a muchos de los estudiantes no les irá muy bien incluso con las preguntas en la mano. De esta manera, aprenderá acerca de sus estudiantes, sus conocimientos y su capacidad de aprender.
fuente
Cree 5 construcciones de diagramas de flujo simples y una lista separada de respuestas. Pídales que hagan coincidir la imagen con la frase.
Dibujar el siguiente:
Pídales que expliquen la diferencia entre 1 y 2.
Pídales que expliquen la diferencia entre 3 y 4.
Pídales un ejemplo de cuándo sería aplicable una Construcción de declaración de caso.
fuente
No estoy seguro de que sea posible hacer esto en 10 preguntas en 10 minutos. Tal vez les dé 5 minutos para contarles lo que saben sobre .net. Luego tenga una lista preparada de quizás 20 temas y elija 2 o 3 de las cosas que han mencionado y 2 o 3 de las cosas que no han mencionado.
Por ejemplo, podrías comenzar:
Entonces, después de esto:
Luego haga 5 preguntas para eso de lo siguiente:
Explique brevemente cómo funciona la recolección de basura en .Net
....
¿Cómo depurar algo si tiene un problema?
fuente
¡Creo en la "autoevaluación"! Si le explica a la persona la situación exacta en la que se encontrará, por ejemplo: "tendrá que codificar SQL ... con una base de datos de más de 100 tablas y más de 500K registros, que deben ejecutarse en menos de 4 segundos ...". Y si le preguntas: "¿Crees que puedes lograrlo?" - obtendrá una respuesta correcta.
Pasaré 5 preguntas sobre las expectativas de los estudiantes y 5 más técnicas:
Entonces puede ir con algunas preguntas técnicas como (esto debería ser de acuerdo con el tema). para OOP por ejemplo:
fuente
Estoy buscando resolución de problemas, un fuerte hábito de aprendizaje, desarrollo profesional y un amplio conocimiento de los enfoques.
chicken
como un objeto? ¿Cómo se relaciona con los demásbirds
? ¿Qué talmammals
yanimals
?Espero que los desarrolladores:
fuente
La taxonomía de Bloom es útil aquí. Desea alcanzar una variedad de niveles de conocimiento, que van desde la memorización de memoria hasta el análisis. Esto te da la oportunidad de descubrir dónde se encuentra su nivel de habilidad. Dado que el OP estaba buscando preguntas para hacer a los estudiantes, la lista a continuación no supone más conocimiento que el que poseería un estudiante de 3er o 4to año (espero).
Conceptual
Práctico
fuente
Como ya están contratados, para una evaluación rápida, creo que uno debería (junto con las preguntas de programación), uno debería preguntarles sobre
Estas preguntas son solo para conocer su conocimiento sobre el sistema que usan durante la programación,
fuente
Comience desde los niveles más bajos de la pila de software y suba.
fuente
fuente