Je dois faire une évaluation rapide de dizaines d'étudiants frais très rapidement. J'ai 30 minutes pour rencontrer chacun d'eux (dans deux ou trois jours). Je veux utiliser la plupart du temps pour discuter des aspects non techniques. Je prévois donc d’utiliser 10 minutes pour les questions techniques. Les mêmes questions pour tous.
Ils sont tous déjà engagés (ce sont des étudiants). Ce que je dois savoir, c'est le niveau moyen pour préparer une formation.
Idéalement, la difficulté must be progressive
afin de définir un niveau pour chacun. Niveau Je ferai la moyenne, et je ferai une moyenne sur chaque question aussi.
Si vous n'aviez que 10 minutes et 10 questions à poser à un candidat, quel serait votre top 10?
Réponses:
Trois questions, développant la fin de la réponse d'Eric Lippert ici :
Question 1:
Question 2:
Question 3:
Le facteur le plus important dans votre décision est de déterminer où un élève se situe (de façon réaliste) , et ces trois questions vous aideront à le déterminer rapidement. Cela aide également à identifier les personnes susceptibles d'être compromises par l'effet Dunning-Kruger (à l'une ou l'autre extrémité), mais c'est un autre sujet.
Si quelqu'un peut trouver la référence à cette méthode sur SO et modifier ce message pour y inclure un lien, je l'apprécierais vraiment.
En tout cas, cela devrait tomber bien en dessous de dix minutes.
la source
N'hésitez pas à suggérer des remplaçants, cette liste peut encore être améliorée.
la source
la source
Mon expérience d’étudiants commence à peu près de zéro: j’ai trouvé ce que les gens apprennent à l’Université et ce qui est utile sont deux ensembles bien distincts.
Mais comme vous avez la chance de leur parler, il serait stupide de ne pas le prendre.
Mon hypothèse est qu'il y a peu de points communs dans leurs origines, donc j'évite les questions spécifiques à la langue. La seule exception que j’ai faite à cela est la supposition qu’ils ont fait quelque chose sur le Web, mais cette question pourrait être remplacée par quelque chose d’équivalent si ce sont des spécialistes intégrés ou autre.
Vous avez demandé à ce qu'ils soient progressifs, ce que j'ai en quelque sorte essayé de faire, mais si mon hypothèse de non-similitude est correcte, les questions correctes / fausses sont relativement délicates et une grande partie de leur compétence proviendra de la qualité de leurs réponses à des questions plus générales. les questions sont.
En tous cas...
1) À quelles langues et technologies avez-vous été exposé? Combien de ceux-ci (et lesquels) avez-vous passé plus de 50 heures à programmer (cela n'inclut pas les cours magistraux, le temps de laboratoire, etc. mais les projets et les tâches pour lesquels vous codiez en solo).
2) Décris le programme le plus complexe que tu aies jamais écrit. Qu'est-ce qui l'a rendu complexe?
3) Qu'est-ce qui vous a été enseigné à l'université (concernant la programmation) et que vous ne pensez vraiment pas comprendre correctement? Si vous pensez avoir tout compris (vérifiez leurs notes à ce stade), parlez d'une application ou d'un élément d'une application que vous avez vu et que vous ne sauriez pas comment coder et comment vous pourriez commencer à y penser.
4) Quels sont les principes de base de la programmation orientée objet?
5) Parlez-moi autant de bases de données relationnelles que vous pouvez en 1 minute
6) Pour une application Web, décrivez une méthode pour conserver des informations sur l'utilisateur entre les pages. Quels sont les avantages et les inconvénients du mécanisme que vous avez décrit?
7) Choisissez une fonctionnalité couramment utilisée en informatique et expliquez très brièvement comment elle fonctionne au niveau de la programmation (par exemple, le cryptage, la compression). Expliquez également comment vous avez dû utiliser cette fonctionnalité pour pouvoir la mettre en œuvre (ici, je chercherais le fait que même si vous savez comment quelque chose fonctionne, il est probablement préférable de chercher une bibliothèque pour cela).
EDIT: restructuré et ajouté un couple de questions supplémentaires pour le rendre plus progressif comme demandé à l'origine.
la source
Si ce sont des étudiants et que vous cherchez à savoir où ils en sont dans leurs études, alors il ne devrait vraiment y avoir aucune question piège ou question qui les inciterait à réfléchir. Mon conseil serait de se concentrer uniquement sur les bases - il est inutile de leur demander d'expliquer le fonctionnement de la réflexion si elles ne sont toujours pas complètement au courant des objets et de l'héritage.
Voici quelques exemples de questions qui pourraient être utilisées. Vous pourriez peut-être commencer par quelque chose de la catégorie des connaissances fondamentales, puis vous déplacer en fonction de la façon dont ils répondent aux questions, un peu comme le fonctionnement des tests adaptatifs .
Fondamentaux
Coeur
enum
mot - clé utilisé et quand l'utiliseriez-vous?Avancée
la source
Sans une réponse à mon commentaire ci-dessus, ce sont des choses qui me viennent à l’esprit en général mais je ne suis pas sûr d’envisager ces techniques.
la source
Je me rends compte que vous essayez de construire la formation sur la base de ce qu’ils ne savent pas, et que vous envisagez d’avoir plusieurs «seaux» de formation pour différents groupes d’étudiants. Puisque vous ne disposez que de dix minutes, pourquoi ne pas dresser une liste des choses que vous envisagez d’inclure dans la formation et poser ces questions spécifiques. Donc, vous envisagez de leur apprendre le C #. Demandez-leur s'ils le savent bien. Demandez-leur s'ils ont utilisé des fonctionnalités plus récentes (LINQ, types nullables, génériques, ...). Si votre formation contient du contenu dans une base de données, posez des questions à ce sujet. En fin de compte, vous constaterez peut-être que l'un des sujets que vous aviez planifiés est inutile, car ils le savent tous, et que tout le monde en a besoin, etc. C'est plus pratique que d'essayer de poser des questions qui ne sont pas liées à ce que vous '
la source
Posez-leur la question FizzBuzz
Savaient-ils comment le coder? Quelle langue utilisaient-ils? Pourquoi l'ont-ils codé comme ils l'ont fait? Ont-ils utilisé la récursivité? Boucles? Autres méthodes / fonctions? Pointeurs?
Vous pouvez également utiliser la question comme base pour d'autres questions (par exemple, pourquoi avez-vous / n'a pas utilisé la récursivité? Comment l'écrivez-vous à l'aide de pointeurs?)
Cela ne comprend pas tout, mais cela pourrait vous donner une idée de leurs compétences en matière de codage.
la source
Dix questions:
Affiche une boucle for qui additionne les valeurs d'un tableau. Demandez ensuite ce que fait le code. [Peuvent-ils lire une boucle de base?]
Leur demander d’écrire une boucle for imprimant les nombres de 1 à 10, séparés par des virgules. [En plus de "peuvent-ils faire cela?" vous pouvez juger à quel point leur code est répétitif.]
Afficher un morceau de code avec deux références
a
etb
pointant vers deux objets différents avec un champ entierx
défini sur, par exemple,7
et5
. Puis réattribuer:a = b;
,b.z = 9;
puis demander la valeura.z
. [Comprennent-ils les références?]Affiche deux boucles for imbriquées (à l'aide d'index
i
etj
), accumulant les valeurs d'une expression. Dans la boucle la plus interne, faites deux calculs:double x = Math.pow(2.0, i)
etdouble y = x * j
. Demandez-leur de rendre le code plus efficace. [Connaissent-ils la dépendance à la boucle simple?]Demandez-leur ce qui ne va pas dans l'exemple de code A. (Voir ci-dessous.) [Peuvent-ils penser logiquement?]
Demandez-leur ce qui ne va pas dans l'exemple de code B. (Voir ci-dessous.) [Aussi sur la pensée logique.]
Demandez-leur d'inverser cette condition:
(s != null && s.Length != 0)
sans utiliser!
. [Connaissent-ils la loi de DeMorgan?]Montrez un morceau de code similaire aux anciennes publicités de Lint dans les magazines: demandez-leur de trouver le bogue. Par exemple, surcharger
equals
au lieu de le remplacer. [Sont-ils de bons avocats de la langue? Ce genre de questions teste principalement l'expérience: avez-vous déjà vu celle-ci?]Peuvent-ils décrire comment effectuer une recherche binaire dans un tableau trié?
Peuvent-ils décrire comment une méthode de tri pourrait être mise en œuvre?
Celles-ci peuvent sembler "trop courtes", mais je pense qu'en évaluant les étudiants, les dix minutes sont assez courtes. Vous voulez vraiment les voir faire du codage. (On dirait que vous ferez FizzBuzz, basé sur un commentaire.)
Si vous pouvez assumer un élève plus fort, vous voudrez peut-être aussi poser quelques-uns des classiques, tels que la récursion, l'inversion d'une liste chaînée, et peut-être un joker avancé comme l'explication d'une liste XOR, ou quelles intuitions ils pourraient avoir pour pourquoi trier un ensemble de nombres facilite la compression plutôt que le tri.
Exemple de code A:
Exemple de code B:
la source
Vous faites sûrement cela dans le mauvais sens. Identifiez les groupes dans lesquels vous souhaitez placer chaque élève
par exemple
etc. Une fois que vous avez identifié les groupes appropriés qui dépendent du matériel de cours, il sera facile de déterminer quelles questions poser.
la source
Les étudiants sont déjà embauchés et vous souhaitez mettre en place un programme de formation. Une partie de la transaction consiste donc à déterminer à quelle vitesse ils peuvent apprendre (et / ou ce qu'ils savent: qui se soucie de quoi?). Pourquoi ne pas choisir des questions faciles, moyennes et difficiles et leur donner à l'avance. Pourquoi les embusquer avec des questions qu’ils ne connaissent peut-être pas, s’ils peuvent être facilement appris (par certains)?
Vous verrez, contrairement à ce que la plupart des gens imaginent, que de nombreux étudiants ne réussiront pas très bien, même avec les questions en main. De cette façon, vous en apprendrez davantage sur vos élèves, leurs connaissances et leur capacité à apprendre.
la source
Créez 5 structures de diagramme simples et une liste de réponses séparée. Demandez-leur de faire correspondre l'image avec la phrase.
Dessine ce qui suit:
Demandez-leur d'expliquer la différence entre 1 et 2.
Demandez-leur d'expliquer la différence entre 3 et 4.
Demandez-leur un exemple de cas dans lequel une construction de déclaration de cas serait applicable.
la source
Je ne suis pas sûr qu'il serait possible de le faire en 10 questions en 10 minutes. Peut-être leur donner 5 minutes pour vous dire ce qu'ils savent sur .net. Ensuite, préparez une liste d'environ 20 sujets et choisissez 2 ou 3 des choses qu'ils ont mentionnées et 2 ou 3 des choses qu'ils n'ont pas mentionnées.
Par exemple, vous pourriez commencer:
Puis après ça:
Puis posez 5 questions au so suivant:
Expliquez brièvement le fonctionnement de la collecte des ordures dans .Net
....
Comment pouvez-vous déboguer quelque chose si vous avez un problème?
la source
Je crois en "auto-évaluation"! Si vous expliquez à la personne la situation exacte dans laquelle il se trouvera, par exemple: "vous devrez coder SQL ... avec une base de données de plus de 100 tables et plus de 500 000 enregistrements, qui doivent durer moins de 4 secondes ...". Et si vous lui demandez: "Pensez-vous pouvoir le faire?" - Vous obtiendrez une réponse correcte.
Je vais passer 5 questions sur les attentes des étudiants et 5 plus techniques:
Alors vous pouvez aller avec quelques questions techniques comme (cela devrait être en fonction du sujet). pour OOP par exemple:
la source
Je recherche une solution aux problèmes, une forte habitude d’apprentissage, un développement professionnel et une connaissance approfondie des approches.
chicken
un objet? Quel est le rapport avec les autresbirds
?mammals
Et à propos deanimals
?Je m'attends à ce que les développeurs:
la source
La taxonomie de Bloom est utile ici. Vous souhaitez atteindre une variété de niveaux de connaissances, allant de la mémorisation par cœur à l'analyse. Cela vous donne une chance de savoir où se situe leur niveau de compétence. Comme le PO cherchait des questions à poser aux étudiants, la liste ci-dessous ne suppose pas plus de connaissances qu'un étudiant de 3e ou de 4e année en aurait (j'espère).
Conceptuel
Pratique
la source
Comme ils sont déjà embauchés, pour une évaluation rapide, je pense qu’on devrait (avec les questions de programmation), leur poser des questions sur:
Ces questions sont juste pour connaître leur connaissance du système qu’ils utilisent lors de la programmation,
la source
Commencez par les niveaux les plus bas de la pile de logiciels et plus.
la source
la source