it-swarm-fr.com

L'entretien technique de 10 minutes

Je dois faire une évaluation rapide des dizaines d'étudiants frais très rapidement. J'ai 30 minutes de rencontre avec 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 des questions techniques. Les mêmes questions pour toutes.

Ils sont tous embauchés Déjà (ce sont des étudiants), ce que je dois savoir est le niveau moyen afin de préparer une formation.

Idéalement, la difficulté must be progressive Afin de définir un niveau pour chacun. Niveau I Moyenne et je ferai également une moyenne sur chaque question.

Si vous n'aviez que 10 minutes et 10 questions à poser à un candidat, quel serait votre top 10?

37
user2567
  1. Qu'est-ce qu'une classe?
  2. Qu'est-ce qu'une méthode statique?
  3. Qu'est-ce que l'héritage?
  4. Quel est le polymorphisme?
  5. Qu'est-ce qu'une clé primaire?
  6. Quelle est une clé étrangère?
  7. Quelle est la différence entre HTTP GET et HTTP POST?
  8. Qu'est-ce qu'un service Web?
  9. Nommez certaines structures de données.
  10. Quel est le but d'un objet/du mappeur relationnel?

N'hésitez pas à suggérer des remplaçants, cette liste a beaucoup de place à l'amélioration.

28
Eric Wilson
  1. Expliquez les pointeurs!
  2. Quelles sont les fermetures?
  3. Quelles langues utilisez-vous pendant votre temps libre et pourquoi?
  4. Parlez un peu des transactions!
  5. Quelle est la différence entre un interprète et un JIT?
  6. Expliquez les bases d'un compilateur.
  7. Que se passe-t-il sur le niveau de la mémoire lorsque vous faites une récursion (et ce qui est différent lorsque vous avez TCO)
  8. Quels sont les concepts importants de OO programmation (et pourquoi sont-ils importants)?
  9. Quelles nouvelles choses cherchez-vous à la maison et pourquoi est-ce intéressant?
  10. Expliquez la différence entre un processus et un fil.
20
nickik

Mon expérience d'élèves je ferais à peu près à partir de zéro - j'ai trouvé ce que les gens apprennent à l'université et ce qui est utile sont deux jolis ensembles séparés.

Mais comme vous avez la chance de leur parler, il serait idiot de ne pas le prendre.

Mon hypothèse est qu'il y a peu de points communs de points communs dans leur contexte, donc j'évite des questions spécifiques à la langue. La seule exception que j'ai faite à cela est une hypothèse d'avoir fait quelque chose sur le Web, mais cette question pourrait être subordonnée à quelque chose d'équivalent s'ils sont des spécialistes intégrés ou autre.

Vous avez demandé à eux d'être progressivement que j'ai essayé de faire, mais si mon hypothèse d'absence de points de communité n'est pas correcte et que de mauvaises questions sont relativement difficiles et que beaucoup de leurs compétences proviendront de la qualité de leurs réponses plus générales. les questions sont.

De toute façon...

1) Quelles langues et technologies avez-vous été exposées? Combien de ceux-ci (et lesquels) avez-vous passé plus de 50 heures en réalité en réalité une programmation (ce qui n'inclut pas les conférences, le temps de laboratoire, etc., mais avec des projets et des missions où vous codissez en solo).

2) Décrivez le programme le plus complexe que vous ayez jamais écrit. Qu'est-ce qui le rendit complexe?

3) Qu'avez-vous enseigné à l'université (relative à la programmation) que vous ne pensez vraiment pas que vous comprenez correctement? Si vous pensez que vous avez tout compris (vérifier leurs notes à ce stade), parlez d'une application ou d'un élément d'une application que vous avez vue que vous ne saviez pas comment coder et comment vous pourriez commencer à y penser.

4) Quels sont les principes de base de la programmation orientée objet?

5) Dites-moi autant de bases de données relationnelles que vous pouvez en 1 minute

6) Pour une application Web, décrivez une méthode de maintien d'informations sur l'utilisateur entre les pages. Quels avantages et quels inconvénients existent pour le mécanisme que vous avez décrit.

7) Choisissez une pièce de fonctionnalité couramment utilisée dans l'informatique et expliquez très brièvement comment cela fonctionne à un niveau de programmation (par exemple le cryptage, la compression). Expliquez également comment vous avez dû utiliser cette fonctionnalité que vous l'appliqueriez (je rechercherais ici le fait que, même si vous savez peut-être comment quelque chose fonctionne, il est probablement préférable de saisir une bibliothèque pour cela).

EDIT: restructuré et ajouté quelques questions supplémentaires pour le rendre plus progressiste à l'origine.

16
Jon Hopkins

Si ce sont des étudiants et que vous cherchez à être capable de jauger où ils sont dans leurs études, il ne devrait vraiment pas y avoir de questions ou de questions difficiles qui les feront de penser. Mon conseil serait de simplement se concentrer sur les bases - il n'est pas important de leur demander d'expliquer comment les œuvres de réflexion s'ils ne sont toujours pas complètement à la hauteur des objets et de l'héritage.

Voici quelques exemples de questions qui pourraient être utilisées et vous pourriez peut-être commencer par quelque chose de la catégorie de connaissances principale, puis de vous déplacer sur la base de la manière dont ils répondent aux questions, telles que - tests adaptatifs fonctionne.

Fondamentaux

  1. Quelles sont les commandes de contrôle de flux de base du programme?
  2. Quelles sont certaines opérations logiques de base?
  3. Quelle est la différence entre pendant et pour les boucles?

noyau

  1. Expliquez brièvement la programmation orientée objet.
  2. Expliquez brièvement le concept d'héritage.
  3. Expliquez brièvement comment fonctionner les bases de données.
  4. Quel est le mot-clé enum utilisé pour et quand l'utiliseriez-vous?

Avancé

  1. Que pouvez-vous me dire des modèles C # Generics ou C++?
  2. Que pouvez-vous me dire sur la surcharge de l'opérateur?
  3. Quelle est la différence entre une classe et une structure?
  4. Que pouvez-vous me dire de réflexion dans .net?
8
rjzii

Sans réponse à mon commentaire ci-dessus, ce sont des choses qui vont à l'esprit en général, mais je ne suis pas sûr de considérer ces techniques.

  • Quel type de contrôle de version avez-vous utilisé?
  • Êtes-vous familiarisé avec les méthodologies de développement logicielles telles que Agile, Waterfall, TDD?
  • Quel est le but de la documentation dans les logiciels?
  • Différence entre les langues statistiques et dynamiquement typées?
6
Chris

Je me rends compte que vous essayez de créer la formation en fonction de ce qu'ils ne savent pas et que vous prévoyez d'avoir plusieurs "seaux" de formation pour différents groupes d'étudiants. Depuis que vous n'avez que dix minutes allouées, pourquoi ne pas faire une liste de choses que vous envisagez d'inclure dans la formation et de poser ces questions spécifiques. Vous envisagez donc d'enseigner c #. Demandez s'ils le savent bien. Demandez s'ils ont utilisé des fonctionnalités plus récentes (LINQ, des types nullables, des génériques, ...). S'il y a du contenu de la base de données dans votre formation, posez des questions à ce sujet. À la fin, vous constaterez peut-être que l'un des sujets que vous aviez planifiés est inutile, car ils le savent tous, et d'autres sujets sont nécessaires par tout le monde, etc. C'est plus pratique que d'essayer de trouver des questions qui ne sont pas liées à ce que vous êtes capable de les former (le temps d'interrupteur de contexte sur Linux?) Ou n'est pas lié au travail que vous avez l'intention de les faire faire après leur entraînement .

4
Kate Gregory

Demandez-leur la question fizzbuzz question

Savaient-ils comment le coder? Quelle langue ont-ils utilisé? Pourquoi ont-ils déclaré comme ils l'ont fait? Ont-ils utilisé la récursion? Boucles? Autres méthodes/fonctions? Des pointeurs?

Vous pouvez également utiliser la question comme base pour d'autres questions (c'est-à-dire pourquoi/n'a-t-il pas utilisé de récursions? Comment écrivez-vous cela à l'aide des pointeurs?)

Cela ne comprend pas tout, mais cela pourrait vous donner une idée de leurs compétences de codage

4
Rachel

Dix questions:

  1. Affiche une boucle pour la boucle qui résume les valeurs d'un tableau. Demandez alors quel est le morceau de code. [Peuvent-ils lire une boucle de base?]

  2. Demandez-leur d'écrire un pour une boucle qui imprime les chiffres 1 à 10, séparés par des virgules. [En plus de "peut-ils faire ça?" Vous pouvez juger à quel point leur code est répétitif.]

  3. Montrez un morceau de code avec deux références, a et b, pointant vers deux objets différents avec un champ entier x défini sur, dites, 7 Et 5. Puis réaffectation: a = b;, b.z = 9;, Puis demandez la valeur de a.z. [Est-ce qu'ils comprennent des références?]

  4. Afficher deux boucles imbriquées (à l'aide d'index i et j), accumuler des valeurs d'une certaine expression. Dans la boucle la plus interne, avoir deux calculs: double x = Math.pow(2.0, i) et double y = x * j. Demandez-leur de rendre le code plus efficace. [Savent-ils de la dépendance de la boucle simple?]

  5. Demandez-leur ce qui ne va pas dans l'échantillon de code A. (voir ci-dessous.) [Peuvent-ils penser logiquement?]

  6. Demandez-leur ce qui ne va pas dans le code de code B. (voir ci-dessous.) [Également sur la pensée logique.]

  7. Demandez-leur d'inverser cette condition: (s != null && s.Length != 0) Sans utiliser !. [Savent-ils la loi de Demorgan?]

  8. Montrez un morceau de code similaire aux anciennes annonces de peluches dans les magazines: demandez-leur de trouver le bogue. Par exemple, surcharger equals au lieu de le remplacer. [Sont-ils des avocats de bonne langue? Ce genre de questions teste principalement pour l'expérience: avez-vous vu celui-ci avant?]

  9. Peuvent-ils décrire comment effectuer une recherche binaire via une matrice triée?

  10. Peuvent-ils décrire comment une méthode de tri pourrait être mise en œuvre?

Celles-ci peuvent sembler "trop ​​courtes", mais je crois pour évaluer les étudiants que vous pourriez trouver les dix minutes est assez serré. 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 également demander à certains classiques, tels que la récursion, l'inverser une liste liée, et peut-être une carte sauvage avancée, comme expliquer une liste XOR, ou quelles intitions ils pourraient avoir pour Pourquoi trier un ensemble de chiffres facilite la compresse que les non traités.

Code exemple A:

if (m != null)
    a = m;
else
    a = null;

Exemple de code B:

if (x != 0 || x != 1) {
    ...
}
4
Macneil

Vous allez sûrement cela dans ce mauvais sens. Identifiez les groupements que vous souhaitez placer chaque élève dans

par exemple.

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

etc. Lorsque vous avez identifié les groupements appropriés qui dépendront du matériel de cours, entraînant quelles questions à poser seront triviales.

3
Michael Shaw

Les étudiants sont déjà embauchés et vous souhaitez mettre en place un programme de formation, une partie de la transaction est de savoir à quelle vitesse ils peuvent apprendre (et/ou ce qu'ils savent: qui se soucie?). Pourquoi ne pas choisir des questions simples, moyennes et difficiles et les donner à l'avance. Pourquoi les embuscinez-vous avec des questions qu'ils pourraient ne pas savoir, s'ils peuvent être facilement appris (par certains)?

Vous verrez, contrairement à ce que la plupart des gens imaginent que beaucoup d'étudiants ne feront pas très bien même avec les questions à la main. De cette façon, vous en apprendrez sur vos étudiants, leurs connaissances et leur capacité à apprendre.

3
Dan Rosenstark

Créez 5 constructions d'organigramme simples et une liste de réponses séparée. Demandez-leur de faire correspondre la photo avec la phrase.

Dessinez ce qui suit:

  1. Si construit
  2. Si sinon construire
  3. Faire en boucle
  4. Faire jusqu'à la boucle
  5. Déclaration de cas construction

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 lorsqu'une déclaration de cas serait applicable.

Comme ils sont déjà embauchés, pour une évaluation rapide, je pense que l'on devrait (avec des questions de programmation), on devrait leur demander

  1. Quelle est la configuration système que vous avez travaillé sur (configuration matérielle PC).
  2. Avez-vous essayé de tester votre code (projet si travaillé au cours de l'université) sur différents OS.
  3. Préférez-vous le codage dans Windows ou Linux (s'ils ont travaillé sur les autres Windows de OS)
  4. le codage est plus rapide/plus lent/dépend des systèmes? (Systèmes plus élevés = Vous sentez un bon facteur de codage que les systèmes lents prennent la compilation et tous)
  5. Également si vous demandez si elles connaissent au moins formater un lecteur ou installer le système d'exploitation au cas où il s'écrase/ne peut pas démarrer InsteasD de compter sur le gars informatique pour obtenir de l'aide (ceci est de savoir s'ils peuvent gérer correctement la situation du système d'exploitation)

Ces questions sont simplement de savoir leur sensibilisation au système qu'ils utilisent lors de la programmation,

1
PresleyDias

Je ne suis pas sûr que cela soit possible de le faire dans 10 questions en 10 minutes. Peut-être leur donner 5 minutes pour vous dire ce qu'ils savent .net. Ensuite, avez une liste préparée de 20 sujets et choisissez 2 ou 3 des choses qu'ils ont mentionnées et 2 ou 3 des choses qu'ils ne l'ont pas fait.

Par exemple, vous pourriez commencer:

Dis-moi brièvement (vous avez 5 minutes) comment vous produiriez un simple projet C # dans Visual Studio de la créer à l'exécuter.

Puis, après cela:

Ok, dis-moi un peu plus sur ce qui suit. Cela va être un feu rapide, 1 minute par réponse, alors n'essayez pas d'être trop détaillé, je veux juste une idée de ce que vous connaissez.

Demandez ensuite 5 questions pour le suivi:

  • Expliquer ce qu'est une classe.
  • Quelle est la différence entre une classe abstraite et une interface?
  • Expliquez brièvement la façon dont la collecte des ordures fonctionne dans .NET

    ....

  • Comment débogez-vous quelque chose si vous avez un problème?

  • Yadda-yadda - Je suis sûr que vous pourrez choisir une longue liste à choisir des autres réponses.
1
FinnNk

Je cherche la résolution de problèmes, une forte habitude d'apprentissage, un développement professionnel et une large connaissance des approches.

  1. Puis-je voir votre portefeuille?
  2. Quels sont les 3 derniers livres techniques que vous avez lus? Pourquoi?
  3. Quel texte de programmation a changé la façon dont vous pensez le plus? Pourquoi?
  4. Comment définiriez-vous un chicken comme objet? Comment se rapporte-t-il à d'autres birds? Que diriez-vous de mammals et animals?
  5. Pouvez-vous expliquer l'un des (repos, polymorphisme, algèbre relationnelle, design d'analyse d'analyse, MVC) dans les termes de layman?
  6. Quel est le logiciel le plus intéressant (ou le meilleur) que vous avez construit vous-même?
  7. Pouvez-vous décrire les langues que vous maîtrisez du favori au moins préféré? Qu'est-ce qui vous frustre sur vos langues les moins préférées?

Je m'attends à ce que les développeurs:

  • Être ingénieux et rapide
  • Saisir correctement les concepts de base
  • Aspirer aux concepts avancés grok
  • Suivre le succès et l'échec (en apprendre de cela)
  • Apprenez constamment, pensivement
  • Communiquer des problèmes complexes simplement
  • Montrer l'équilibre et la logique lorsque vous discutez des problèmes communément dogmatiques
1
Bruce Alderson

La taxonomie de Bloom est utile ici. Vous souhaitez frapper une variété de niveaux de connaissance, allant de la mémoire de la Rote à l'analyse. Cela vous donne une chance de savoir où se trouve leur niveau de compétence. Étant donné que l'OP cherchait des questions à poser aux élèves, la liste ci-dessous ne suppose pas plus de connaissances qu'un étudiant de 3ème ou de 4e année (j'espère) posséderait.

Conceptuel

  1. Qu'est-ce qu'un pile de pile?
  2. Quelle est la différence entre un objet et une classe?
  3. Quelle est la différence entre une fonction et une méthode?
  4. Identifiez certaines des forces et des faiblesses du tri rapide et de l'insertion.
  5. Décrivez comment un programme que vous avez écrit afficherait toutes les valeurs stockées dans un arbre binaire.

Pratique

  1. Avez-vous utilisé un système de contrôle de version? De quelle manière permet-t-il que les membres de l'équipe collaborent de manière plus efficace?
  2. Votre compilateur dit "Symbole non identifié". Qu'est-ce que ça veut dire?
  3. Qu'est-ce qu'une "violation de la segmentation"?
  4. Nommez certaines structures de données fournies par la syntaxe ou la bibliothèque standard).
  5. Comment trouveriez-vous et afficheriez-vous toutes les adresses e-mail dans 10 000 fichiers?
1
Barry Brown
  1. Une chaîne est-elle mutable ou immuable?
  2. Quelle est la différence entre une classe et une classe statique?
  3. Qu'est-ce qu'un pointeur?
  4. Décrire la complexité.
  5. Quelle est la différence entre une matrice et une liste liée.
  6. Quelle est la différence entre le type de fusion et le tri rapide?
  7. Compte tenu d'une feuille de calcul avec le nom de colonnes, l'adresse, le code postal et le numéro de téléphone décrit comment convertir la feuille de calcul en une base de données normalisée.
  8. Décrivez les différences entre les méthodes asynchrones et synchrones et les moyens dont ils ont besoin pour être manipulés.
  9. Comment passeriez-vous des informations d'une application côté serveur à une application Web?
  10. Quelle est votre langue préférée? Quelles sont les raisons pour lesquelles vous utiliseriez cette langue sur x? (c.-à-d. Pourquoi voudriez-vous utiliser Java sur C # et quelles sont certaines des différences fondamentales?)
0
Kavet Kerek

Commencez par les niveaux les plus bas de la pile de logiciels et en hausse.

  1. Qu'est-ce que le bios?
  2. Quel est le rôle du système d'exploitation?
  3. Qu'est-ce qui est multi-tâches? Quel est le lien dynamique?
  4. Décrire comment le code source est transformé en un programme de travail pour la langue de choix de l'étudiant (exemple de réponse pour C: Préprocesseur -> compilateur -> un tas de fichiers d'objets -> Linker -> exécutable)
  5. Qu'est-ce qu'une cache? Estimer les heures d'accès relatifs au cache L1, le cache L2, la RAM, le disque de rotation (I.e., pas SSD).
  6. Énumérer des structures de données que vous pouvez implémenter sans regarder les détails dans la littérature.
  7. Quel est le programme le plus complexe que vous avez écrit? Qu'est-ce qui le rendit complexe?
  8. Expliquer la récursion sur un exemple de choix propre.
  9. Pourquoi les programmes se bloquent-ils?
  10. Expliquez quelle est une section critique et donner un exemple où il serait utilisé.
0
zvrba