web-dev-qa-db-fra.com

Le test d'interview de programmation C # redouté - un conseil?

J'ai un éventuel emploi C # dev aligné mais avant de pouvoir interviewer, je dois passer un test avec l'agence pour l'emploi.

Maintenant, même si je suis un développeur senior avec plus de 10 ans d'expérience en programmation et plus de 3 de ces années avec c #, je n'attends vraiment pas ce test avec impatience et je pense qu'il y a de fortes chances que j'échoue.

D'après mon expérience, ces tests sont imprévisibles et vous demandent des choses que vous utilisez rarement dans des situations de travail quotidiennes.

J'ai besoin de vos meilleurs conseils sur ce que je devrais réviser - un bon livre ou un bon site Web par exemple. J'ai moins d'une semaine pour me préparer et il est essentiel que je passe ça.

Merci d'avance.

EDIT: Pour justifier davantage mes préoccupations concernant l'écriture de tels tests - Réfléchissez à la question suivante:

12) Un événement est:

   a) The result of a users action - correct answer
   b) The esult of a party
   c) code to force users action

La réponse correcte selon le test est A, mais depuis que je fais SOA (souvent lorsque les événements peuvent être basés sur des événements système (et non sur des actions utilisateur), je suis sûr à 100%) L'événement n'a pas besoin d'être piloté par une action de l'utilisateur. C'était aussi une question C # (pas une question ASP.net). D'après ma compréhension, je n'ai pas vraiment trouvé de réponse correcte, mais B semble être le meilleur du lot (si la définition de partie est: toute entité qui peut déclencher un événement. Ce genre de questions me fait peur.

21
JL01

Bien que quelque peu ancien, ce billet de blog peut vous être utile: Ce que les développeurs .NET devraient savoir (autres questions d'entrevue .NET)

Tous ceux qui écrivent du code

  • Décrivez la différence entre un thread et un processus?
  • Qu'est-ce qu'un service Windows et en quoi son cycle de vie diffère-t-il d'un EXE "standard"?
  • Quelle est la quantité maximale de mémoire qu'un processus unique sur Windows peut traiter? Est-ce différent de la mémoire virtuelle maximale du système? Comment cela affecterait-il la conception d'un système?
  • Quelle est la différence entre un EXE et une DLL?
  • Qu'est-ce que le typage fort par rapport au typage faible? Quel est préféré? Pourquoi?
  • Le produit de Corillian est un "conteneur de composants". Nommez au moins 3 conteneurs de composants livrés avec la famille Windows Server.
  • Qu'est-ce qu'un PID? En quoi est-il utile lors du dépannage d'un système?
  • Combien de processus peuvent écouter sur un seul port TCP/IP?
  • Qu'est-ce que le GAC? Quel problème résout-il?

Développeur .NET de niveau intermédiaire

  • Décrivez la différence entre la programmation orientée interface, orientée objet et orientée aspect.
  • Décrivez ce qu'est une interface et en quoi elle diffère d'une classe.
  • Qu'est-ce que la réflexion?
  • Quelle est la différence entre XML Web Services utilisant ASMX et .NET Remoting utilisant SOAP?
  • Le système de types est-il représenté par XmlSchema et le CLS est-il isomorphe?
  • Conceptuellement, quelle est la différence entre une liaison anticipée et une liaison tardive?
  • Est-ce que Assembly.Load est une référence statique ou dynamique?
  • Quand l'utilisation de Assembly.LoadFrom ou Assembly.LoadFile serait-elle appropriée?
  • Qu'est-ce qu'un nom qualifié d'assemblage? Est-ce un nom de fichier? En quoi est-ce différent?
  • Est-ce valable? Assembly.Load ("foo.dll");
  • En quoi un assemblage fortement nommé est-il différent d'un assemblage qui ne l'est pas fortement?
  • DateTimes peut-il être nul?
  • Qu'est-ce que le JIT? Qu'est-ce que NGEN? Quels sont les limites et les avantages de chacun?
  • Comment le garbage collector générationnel du .NET CLR gère-t-il la durée de vie des objets? Qu'est-ce que la finalisation non déterministe?
  • Quelle est la différence entre Finalize () et Dispose ()?
  • En quoi le modèle using () est-il utile? Qu'est-ce que IDisposable? Comment prend-il en charge la finalisation déterministe?
  • Que fait cette ligne de commande utile? liste des tâches/m "mscor *"
  • Quelle est la différence entre in-proc et out-of-proc?
  • Quelle technologie permet une communication hors processus dans .NET?
  • Lorsque vous exécutez un composant dans ASP.NET, dans quel processus s’exécute-t-il sous Windows XP? Windows 2000? Windows 2003?

Développeurs/Architectes seniors

  • Quel est le problème avec une ligne comme celle-ci? DateTime.Parse (myString);
  • Que sont les PDB? Où doivent-ils être situés pour que le débogage fonctionne?
  • Qu'est-ce que la complexité cyclomatique et pourquoi est-elle importante?
  • Écrivez un verrou standard () plus une "double vérification" pour créer une section critique autour d'un accès variable.
  • Qu'est-ce que FullTrust? Les assemblages GAC ont-ils FullTrust?
  • Quel avantage votre code reçoit-il si vous le décorez d'attributs nécessitant des autorisations de sécurité spécifiques?
  • Qu'est-ce que cela fait? gacutil/l | trouver/i "Corillian"
  • Qu'est-ce que cela fait? sn -t foo.dll
  • Quels ports doivent être ouverts pour DCOM sur un pare-feu? À quoi sert le port 135?
  • Contraste OOP et SOA. Quels sont les principes de chacun?
  • Comment fonctionne le XmlSerializer? De quelles autorisations ACL un processus l'utilisant requiert-il?
  • Pourquoi catch (Exception) est-il presque toujours une mauvaise idée?
  • Quelle est la différence entre Debug.Write et Trace.Write? Quand faut-il utiliser chacun?
  • Quelle est la différence entre une version Debug et Release? Y a-t-il une différence de vitesse importante? Pourquoi ou pourquoi pas?
  • Le JIT se produit-il par assemblage ou par méthode? Comment cela affecte-t-il l'ensemble de travail?
  • Comparez-vous l'utilisation d'une classe de base abstraite avec une interface?
  • Quelle est la différence entre a.Equals (b) et a == b?
  • Dans le contexte d'une comparaison, qu'est-ce que l'identité d'objet contre l'équivalence d'objet?
  • Comment effectuer une copie complète dans .NET?
  • Expliquez la réflexion actuelle sur IClonable.
  • Qu'est-ce que la boxe?
  • La chaîne est-elle un type de valeur ou un type de référence?
  • Quelle est la signification du modèle "PropertySpecified" utilisé par XmlSerializer? Quel problème tente-t-il de résoudre?
  • Pourquoi les paramètres sont-ils une mauvaise idée dans .NET? Sont-ils?
  • Les attributs peuvent-ils être placés sur des paramètres spécifiques d'une méthode? Pourquoi est-ce utile?

Développeurs de composants C #

  • Juxtaposez l'utilisation du remplacement avec new. Qu'est-ce que l'observation?
  • Expliquez l'utilisation de virtuel, scellé, prioritaire et abstrait.
  • Expliquez l'importance et l'utilisation de chaque composant de cette chaîne: Foo.Bar, Version = 2.0.205.0, Culture = neutral, PublicKeyToken = 593777ae2d274679d
  • Expliquez les différences entre public, protégé, privé et interne.
  • Quels avantages tirez-vous de l'utilisation d'un assemblage d'interopérabilité primaire (PIA)?
  • Par quel mécanisme NUnit sait-il quelles méthodes tester?
  • Quelle est la différence entre: catch (Exception e) {throw e;} et catch (Exception e) {throw;}
  • Quelle est la différence entre typeof (foo) et myFoo.GetType ()?
  • Expliquez ce qui se passe dans le premier constructeur: public class c {public c (string a): this () {;}; public c() {;}} Comment cette construction est-elle utile?
  • Qu'est-ce que cela ? Peut-il être utilisé dans une méthode statique?

Développeurs ASP.NET (UI)

  • Décrire comment un formulaire basé sur un navigateur POST devient un événement côté serveur comme Button1_OnClick ...
24
Konamiman

Éloigne-toi, Renée

J'ai passé des tests comme celui-ci plusieurs fois. Maintenant je m'éloigne. Les tests mesurent les bits les plus triviaux de connaissances en programmation. Voulez-vous travailler pour quelqu'un qui pense que ces tests sont un bon moyen d'évaluer les programmeurs? Je ne.

10
kevin cline

J'étais dans une situation comme la vôtre l'année dernière. Cela faisait si longtemps que je participais à une interview que je la redoutais. J'ai fait une recherche de questions d'entrevue C # et trouvé plusieurs sites (beaucoup d'entre eux répertoriés par les autres affiches) et je les ai étudiés. À ma grande surprise, 90% des entrevues provenaient de ces mêmes sites, textuellement. Je suppose que les intervieweurs utilisent également Google pour trouver des questions :)

8
System Down

Je suis totalement d'accord avec vous sur:

les tests sont imprévisibles et vous demandent des choses que vous utilisez rarement dans des situations de travail quotidiennes.

..mais ils font partie du processus, donc nous ne pouvons rien y faire. Je suis quelque chose comme vous avec environ 10 ans d'expérience dont environ 5 en .NET C #. J'ai trouvé ceux-ci que ces deux très bons livres:

C # en profondeur

C # en bref

devrait couvrir tout ce que vous devez savoir sur C #. Le reste est vos propres compétences et compétences que vous acquérez sur des technologies spécifiques basées sur C # comme ASP.NET, etc.

6
TheBoyan

Ces tests font de plus en plus partie de la présélection des candidats par les cabinets de recrutement professionnels et certaines entreprises. Ils sont conçus pour donner aux intervieweurs non techniques un moyen d'évaluer les capacités techniques d'une personne. Cependant, ce ne sont essentiellement que des tests triviaux qui ne diront rien de significatif sur les capacités d'un programmeur autre que d'éliminer ceux qui ne savent vraiment rien. Malheureusement, certaines entreprises/recruteurs accordent beaucoup trop d'importance à ces résultats.

La façon d'étudier pour eux est de trouver des sites de questions d'entrevue, des sites légitimes et non ceux qui essaient de vous vendre les réponses, plâtrés avec des publicités contextuelles ou d'autres bêtises, et fourrez les réponses. De cette façon, vous obtiendrez un score décent et franchirez l'obstacle. Si l'entreprise accorde trop d'importance à ces résultats, elle n'est probablement pas la meilleure entreprise pour laquelle travailler.

3
jfrankcarr

Avec les tests d'entretien, beaucoup dépend de la culture d'entreprise et du créateur du test. S'ils ont l'intention de poser des questions obscures et d'essayer de vous faire trébucher, je passerais à une autre entreprise ou agence qui est plus intéressée par des personnes de haute qualité qui sont intelligentes et peuvent faire le travail.

Cela dit, comme vous utilisez c # dans votre travail de jour, je concentrerais vos efforts de résolution de problèmes et de logique et moins sur le côté apprentissage des livres.

Le projet Euler est un excellent endroit pour pratiquer et perfectionner des compétences qui sont probablement devenues un peu rouillées.

2
SetiSeeker

Si c'est un test de l'agence pour l'emploi, ça ne devrait pas être si difficile. Ce n'est pas comme s'ils avaient des spécialistes linguistiques pour développer le test. Ils ne feront probablement que copier/coller des questions à partir d'un site Web.

Tant que vous savez comment fonctionne le framework en général, et les espaces de noms/bibliothèques les plus courants pour les tâches, les éléments que vous devez utiliser pour certaines tâches, vous devriez être bon.

2
silverCORE