L'entretien technique de 10 minutes [fermé]


37

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 progressiveafin 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?


6
Plus de contexte au travail? S'agit-il d'un poste d'administrateur système ou d'un poste de programmateur et si vous programmez un niveau bas ou élevé? Des langues ou des technologies spécifiques dans votre magasin? Celles-ci dicteraient toutes ma liste de questions.
Chris

4
Quel genre de formation? Programmation? Informatique générale?
Adam Lear

3
J'inverserais cela et passerais 10 minutes sur des choses personnelles et 20 minutes sur des choses techniques.
Kyralessa

1
Je sais, c'est ce que la plupart des gens feraient. Mais je crois en différentes approches.

3
10 minutes pour le candidat, c'est trop peu
Zzz

Réponses:


55

Trois questions, développant la fin de la réponse d'Eric Lippert ici :

Question 1:

Sur une échelle de 1 à 10, où vous situez-vous (nommez la compétence ici)? Ils répondent [n], un nombre compris entre 1 et 10.

Question 2:

Que pourriez-vous apprendre de quelqu'un de niveau [n + 1]?

Question 3:

Qu'est-ce que quelqu'un au niveau [n-1] pourrait apprendre de vous?

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.


5
Hou la la! Métrique assez inhabituelle. Je n'ai jamais pensé à moi de cette façon. Merci!
Andrew Андрей Листочкин

Évidemment, le candidat répond 10 pour éviter la deuxième question.
droitier

4
@WTP Le dix est un mensonge.
Tim Post

1
C'est superbe. Si un employeur me le demandait, je pourrais expliquer davantage de choses sur moi-même en quelques minutes que je n’en ai normalement la chance lors d’une entrevue d’une heure.
fearofawhackplanet

28
  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. Qu'est ce que le polymorphisme?
  5. Qu'est-ce qu'une clé primaire?
  6. Qu'est-ce qu'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 des structures de données.
  10. Quel est le but d'un mappeur objet / relationnel?

N'hésitez pas à suggérer des remplaçants, cette liste peut encore être améliorée.


1
Les méthodes statiques existent dans de nombreux langages autres que C ++, même si elles sont pertinentes ici. En fait, je trouve que beaucoup d’élèves ont du mal à comprendre les concepts; leur demander s’ils le comprennent ou demander une définition est un mauvais moyen de savoir s’ils le font ou non.
Kate Gregory

3
Gardez à l'esprit la question spécifiée dix questions en dix minutes. Si cela avait été dix questions en trente minutes, je voudrais augmenter le niveau de difficulté et poser des questions ouvertes plus significatives.
Eric Wilson

3
J'aime beaucoup les questions 1 à 8 de votre liste, bien que je puisse remplacer les questions 9 ou 10 par "Pourquoi les interfaces sont-elles importantes" et / ou "Pourquoi une classe abstraite est-elle importante?" (dans cet ordre)
Nicole

7
C'est quoi toutes les questions OO?
Récursion

3
Eh, ce sont toutes des questions de langue. Je ne suis pas tellement convaincu qu'ils sont importants, contre des choses plus liées à la théorie.
Andres Jaan Tack

20
  1. Expliquez les pointeurs!
  2. Que 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 au niveau de la mémoire lorsque vous faites de la récursion (et ce qui est différent lorsque vous avez un TCO)
  8. Quels sont les concepts importants de la programmation OO (et pourquoi sont-ils importants)?
  9. Quelles nouvelles choses étudiez-vous chez vous et pourquoi est-ce intéressant?
  10. Expliquez la différence entre un processus et un thread.

20
Je ne pense pas que la plupart de ces questions sont bonnes pour les personnes complètement nouvelles en .net (ou en programmation) - et même si elles connaissent les réponses, cela prend une minute par question ...
FinnNk

9
Je conviens que ces questions ressemblent davantage à des questions de type "Comment êtes-vous geek" plutôt qu'à des questions "Que savez-vous / avez-vous apprises?" Pour les étudiants.
Hyprsleepy

5
J'échouerais terriblement à ce test, en grande partie parce que je n'ai jamais étudié CS ni utilisé C. Cela pourrait donc aider à déterminer qui a été attentif en classe et qui programme pour le plaisir, mais je ne sais pas si cela nous aidera. le contexte du PO.
Eric Wilson

3
La plupart des gens se tromperaient.
Récursion

4
Bonnes questions, mais on ne peut pas répondre à certaines en une minute.
Zvrba

16

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.


6
J'aime cette liste, j'ajouterais une autre question: Qu'avez-vous appris à l'université et que vous ne voyez pas d'utilisation pratique dans le monde réel? Cela pourrait donner des indications utiles sur leur façon de penser.
glenatron

2
S'ils sont bons, les 10 minutes sont écoulées après la question 2 :-)
Sean Patrick Floyd

Quand vous posez des questions sur les "principes" de la POO, voulez-vous dire que cette POO est une religion?
Compman

@compman - Clairement pas. Un principe peut s’appliquer à une religion mais n’est pas exclusif à ce contexte et peut également s’appliquer à toute organisation, mouvement ou profession.
Jon Hopkins

8

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

  1. Quelles sont quelques commandes de base de contrôle de flux de programme?
  2. Quelles sont les opérations logiques de base?
  3. Quelle est la difference entre while et for loops?

Coeur

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

Avancée

  1. Que pouvez-vous me dire sur les génériques C # ou les modèles C ++?
  2. Que pouvez-vous me dire sur la surcharge des opérateurs?
  3. Quelle est la différence entre une classe et une structure?
  4. Que pouvez-vous me dire sur la réflexion dans .NET?

6

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.

  • Quel type de contrôle de version avez-vous utilisé?
  • Êtes-vous familier avec les méthodologies de développement logiciel telles que agile, waterfall, tdd?
  • Quel est le but de la documentation dans les logiciels?
  • Différence entre les langages typés statiquement et dynamiquement?

5
"Pourquoi le style de codage des spaghettis est-il utile?" - le nec plus ultra
mlvljr

Haha est-ce pour essayer de les duper?
billy.bob

@ m.edmondson Maintenant, donnez un exemple de cas où il est inévitable de rompre l'abstraction;)
mlvljr

Hmm, je ne crois pas qu'il y ait un cas où c'est inévitable ;-)
billy.bob

4

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 '


+1 - C'est ce que je voulais dire. Il suffit de leur demander ce dont ils ont besoin pour participer à une formation conçue pour eux.
mouviciel

4

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.


1
Oh oui, j'ai promis à un membre de la communauté que je poserais cette question. Sera la dernière question, et je partagerai les résultats avec tout le monde.

1
@Pierre 303: J'avais l'habitude de demander aux gens d'écrire une fonction qui validerait un code postal. Je vous assure que c'était aussi instructif que FizzBuzz.
Scott Whitlock

1
Vous me donnez l'occasion de donner quelques résultats obtenus en posant cette question. Sur 6 ou 7 entretiens, personne n’a pu y répondre. La plupart d'entre eux étaient de nouveaux étudiants, mais l'un d'entre eux a 8 ans d'expérience! Donc, je suis un peu confus ...

4

Dix questions:

  1. 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?]

  2. 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.]

  3. Afficher un morceau de code avec deux références aet bpointant vers deux objets différents avec un champ entier xdéfini sur, par exemple, 7et 5. Puis réattribuer: a = b;, b.z = 9;puis demander la valeur a.z. [Comprennent-ils les références?]

  4. Affiche deux boucles for imbriquées (à l'aide d'index iet j), accumulant les valeurs d'une expression. Dans la boucle la plus interne, faites deux calculs: double x = Math.pow(2.0, i)et double y = x * j. Demandez-leur de rendre le code plus efficace. [Connaissent-ils la dépendance à la boucle simple?]

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

  6. Demandez-leur ce qui ne va pas dans l'exemple de code B. (Voir ci-dessous.) [Aussi sur la pensée logique.]

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

  8. Montrez un morceau de code similaire aux anciennes publicités de Lint dans les magazines: demandez-leur de trouver le bogue. Par exemple, surcharger equalsau 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?]

  9. Peuvent-ils décrire comment effectuer une recherche binaire dans un tableau trié?

  10. 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:

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

Exemple de code B:

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

3

Vous faites sûrement cela dans le mauvais sens. Identifiez les groupes dans lesquels vous souhaitez placer chaque élève

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. 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.


3

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.


2

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:

  1. Si construit
  2. Si autrement construit
  3. Faire en boucle
  4. Boucle Do Until
  5. Affirmation de cas

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.


1

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:

Dites-moi brièvement (vous avez 5 minutes) comment produire un simple projet C # dans Visual Studio, de sa création à son exécution.

Puis après ça:

OK, dites m'en un peu plus sur ce qui suit. Le temps de réponse sera court, 1 minute par réponse, alors n'essayez pas d'être trop détaillé, je veux juste avoir une idée de ce que vous connaissez.

Puis posez 5 questions au so suivant:

  • Explique ce qu'est une classe.
  • Quelle est la différence entre une classe abstraite et une interface?
  • 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?

  • Yadda-yadda - Je suis sûr que vous pourrez choisir une longue liste parmi d'autres réponses

1

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:

  1. Qu'attendez-vous de cette formation?
  2. Quel est votre niveau (cela devrait être spécifique à un domaine)?
  3. Que voulez-vous voir / apprendre pendant cette formation (indiquez les 3 points les plus importants)?
  4. Si nous faisons des exercices, que verriez-vous plus utiles pour vous? (atelier, choix multiples)?
  5. Qu'attendez-vous de l'enseignant?

Alors vous pouvez aller avec quelques questions techniques comme (cela devrait être en fonction du sujet). pour OOP par exemple:

  1. Qu'est-ce que l'encapsulation?
  2. Qu'est-ce que l'interface?
  3. Polymorphisme?
  4. Sous-typage?
  5. Reliure dynamique?

1

Je recherche une solution aux problèmes, une forte habitude d’apprentissage, un développement professionnel et une connaissance approfondie 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 chickenun objet? Quel est le rapport avec les autres birds? mammalsEt à propos de animals?
  5. Pouvez-vous expliquer l'un de (REST, Polymorphisme, Algèbre relationnelle, conception d'analyseur syntaxique, MVC) en termes simples?
  6. Quel est le logiciel le plus intéressant (ou le meilleur) que vous avez créé vous-même?
  7. Pouvez-vous décrire les langues dans lesquelles vous maîtrisez les langues préférées? Qu'est-ce qui vous frustre au sujet de vos langues les moins préférées?

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

  • Soyez débrouillard et rapide
  • Saisir correctement les concepts de base
  • Envie de maîtriser les concepts avancés
  • Suivre les succès et les échecs (en tirer les leçons)
  • Apprendre constamment, pensivement
  • Communiquez simplement des problèmes complexes
  • Faites preuve d'équilibre et de logique lorsque vous discutez de questions communément dogmatiques

1
Je lis rarement des livres de programmation de bout en bout. Ils font un meilleur matériel de référence et de clarification.
Andres Jaan Tack

Vous avez raison: il y a des textes que vous ne pouvez pas lire page par page (matériel de référence), mais il existe un nombre incroyable de volumes qui vont changer votre façon de penser. Par exemple: Explications visuelles de Tufte, ou Le paradoxe du choix, ou Pragmatique en langage de programmation (ou quoi que ce soit de Hofstadter).
Bruce Alderson

"Il existe un nombre incroyable de volumes qui changeront votre façon de penser" qui ne se limite pas aux livres techniques / de programmation. De plus, je n'ai pas de portefeuille, tous mes emplois étaient des systèmes sécurisés, je serais foutu.
NimChimpsky

Contribuez quelque temps à un projet ouvert ou à but non lucratif. Il est important de voir le vrai travail avant d'engager quelqu'un (vous finirez par montrer votre vrai travail par la suite). Un portfolio est aussi important qu'un CV bien soigné.
Bruce Alderson

1

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

  1. Qu'est-ce qu'un underflow 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 du tri par insertion.
  5. Décrivez comment un programme que vous avez écrit afficherait toutes les valeurs stockées dans une arborescence binaire.

Pratique

  1. Avez-vous utilisé un système de contrôle de version? De quelle manière cela permet-il aux membres de l'équipe de collaborer plus efficacement?
  2. Votre compilateur dit "symbole non identifié". Qu'est-ce que ça veut dire?
  3. Qu'est-ce qu'une "violation de segmentation"?
  4. Nommez des structures de données fournies par la syntaxe ou la bibliothèque standard (insérer le langage ici).
  5. Comment trouver et afficher toutes les adresses e-mail dans 10 000 fichiers?

1

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:

  1. Quelle est la configuration du système sur laquelle vous avez travaillé (configuration matérielle du PC).
  2. Avez-vous essayé de tester votre code (projet si travaillé pendant l'université) sur différents systèmes d'exploitation.
  3. Préférez-vous le codage sous Windows ou Linux (s’ils ont fonctionné sur des systèmes d’exploitation autres que Windows)
  4. le codage est plus rapide / plus lent / mieux dépend des systèmes? (systèmes supérieurs = facteur de codage satisfaisant car les systèmes lents prennent du temps à compiler et à tous)
  5. Aussi, demandez-leur s'ils savent au moins comment formater un lecteur ou installer le système d'exploitation au cas où il tomberait en panne / ne peut pas démarrer sans l'aide du service informatique (c'est pour savoir s'ils peuvent gérer correctement une situation de système d'exploitation)

Ces questions sont juste pour connaître leur connaissance du système qu’ils utilisent lors de la programmation,


0

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

  1. Qu'est ce que le BIOS?
  2. Quel est le rôle du système d'exploitation?
  3. Qu'est-ce que le multitâche? Qu'est-ce qu'un lien dynamique?
  4. Décrire comment le code source est transformé en programme de travail pour la langue de choix de l'étudiant (exemple de réponse pour C: préprocesseur -> compilateur -> un groupe de fichiers objets -> éditeur de liens -> exécutable)
  5. Qu'est-ce qu'une cache? Estimer les temps d’accès relatifs au cache L1, au cache L2, à la RAM et au disque rotatif (c’est-à-dire non SSD)
  6. Énumérez les structures de données que vous pouvez implémenter sans rechercher les détails dans la littérature.
  7. Quel est le programme le plus complexe que vous avez écrit? Qu'est-ce qui l'a rendu complexe?
  8. Expliquez la récursion sur un exemple de votre choix.
  9. Pourquoi les programmes plantent-ils?
  10. Expliquez ce qu'est une section critique et donnez un exemple d'utilisation.

4
La plupart de ces questions semblent provenir d'un livre sur le système d'exploitation et n'ont honnêtement rien à voir avec la programmation. Très honnêtement, vous n'avez pas besoin de savoir tout cela pour les tâches de programmation MOST, le cas échéant.
Bryan Harrington

1
Un peu exagéré, mais: si vous ne connaissez pas le rôle du système d'exploitation, il est inutile de parler de sécurité et de droits d'accès, que ce soit au niveau du système d'exploitation ou de la base de données. Si vous ne connaissez pas le processus de compilation, vous ne pourrez pas déboguer votre processus de construction de A à Z. Si vous ne connaissez pas les latences de cache, vous obtiendrez un code qui insère tout dans un SGBD où fichier aurait suffi. Si vous ne connaissez pas les mutex, vous ne savez rien de la programmation parallèle. Le reste devrait avoir un lien évident avec la programmation.
Zvrba

1
(Et si vous ne savez pas ce qu'est le BIOS, vous ne savez probablement pas comment programmer du matériel sur un PC.)
zvrba

4
Commencez avec une compréhension de base de l'électricité. Grattez ça: commençons par la physique atomique. PUIS vous frayez un chemin jusqu'au BIOS.
Dan Rosenstark

Bien que ces questions soient très importantes et fondamentales, et que chaque programmeur connaisse les réponses, j’estime que la première moitié de la liste sera une perte de temps, car c’est une chose que les techniciens en informatique doivent également savoir. Ils ne vous donneront pas une bonne idée quant à savoir si la personne que vous embauchez sait quelque chose sur la programmation .
Ken Bloom

0
  1. Une chaîne est-elle modifiable ou immuable?
  2. Quelle est la différence entre une classe et une classe statique?
  3. Qu'est-ce qu'un pointeur?
  4. Décrivez la complexité.
  5. Quelle est la différence entre un tableau et une liste chaînée.
  6. Quelle est la différence entre le tri par fusion et le tri rapide?
  7. Une feuille de calcul avec des colonnes Nom, Adresse, Code postal et Numéro de téléphone décrivent comment vous convertiriez la feuille de calcul en base de données normalisée.
  8. Décrivez les différences entre les méthodes asynchrones et synchrones et la manière dont elles doivent être traitées.
  9. Comment transmettriez-vous les 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?)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.