Comment réussir son entretien technique ?

publicitemcppreparation

 

Tout au long de mon expérience professionnelle, j’ai passé plusieurs entretiens techniques afin d’occuper des postes différents (développeur, leader technique, scrum master et chef de projet technique). Que ce soit pour un recrutement en entreprise ou intégrer un projet chez un client.

Avec du recul, je constate que le profil de la personne chargée d’évaluer vos compétences techniques est soit un : développeur confirmé, leader / expert technique, architecte, ou chef de projet technique.

Bien que les profils soient différents, la manière de passer les entretiens techniques reste très similaire.

Un entretien technique est souvent composé de trois phases :

  • Votre présentation générale : permet de vous présenter et de mettre en avant votre expérience professionnelle. Il est conseillé de faire ressortir l’expérience qui corresponde le mieux au poste auquel vous avez été sélectionné.
  • Série de questions théoriques ou QCM : permet au recruteur de tester vos connaissances théoriques sur vos compétences techniques.
  • Test pratique : Il s’agit souvent d’un petit projet à développer devant le recruteur. Cette phase est facultative.

Sur cet article, j’explique comment faire pour bien préparer votre entretien technique.

En « bonus », pour mieux préparer la phase « Série de questions théoriques ou QCM », vous trouverez une liste de vingt questions théoriques en C#.

La présentation générale

La présentation générale, est l’un des premiers contact que vous avez avec votre interlocuteur.

Elle vous permet de :

  • Prouver que vous êtes « l’homme de la situation ».
  • Dévoiler vos capacités de communication.

Votre présentation doit être simple, claire et concise. N’hésitez surtout pas à faire ressortir les mots-clés qui correspondent au profil recherché.

La base de votre présentation contient les informations suivantes :

  • Vos nom et prénom.
  • Votre poste.
  • Nombre d’années d’expériences (Si vous en avez).
  • Les différents postes occupés (Si c’est le cas).
  • La mission (la plus significative) dans laquelle vous avez occupé le même poste ou effectuer les tâches similaires au poste proposé.

Il est important de bien travailler le discours de votre présentation avant l’entretien d’embauche.

Attention !! : Mettez vous en valeur tout en restant humble !!!

Durant votre présentation, le recruteur vous posera certainement des questions concernant les tâches que vous avez effectuées.

Il peut également vous demander de résoudre des problématiques que vous pourrez rencontrer une fois que vous aurez occupé le poste.

C’est un moyen pour lui d’évaluer vos compétences sur d’autres domaines (résolution de conflits, de cas complexes, management,…).

Les questions théoriques ou QCM

Je vous conseil vivement  de télécharger ma nouvelle application GRATUITE pour tester vos compétences techniques (C# et applications UWP). Il s’agit de l’application MCP Preparation disponible dans le Windows 10 Store

Malheureusement en France, la majorité des recruteurs jugent votre niveau technique en fonction de vos connaissances théoriques.

Même si vous êtes un dieu du code ou que vous avez un CV qui contient les plus beaux palmarès du monde, tant que vous n’avez pas une connaissance théorique sur les compétences techniques demandées, vous ne serez pas embauché !!!

Le seul moyen de cartonner sur les questions théoriques ou QCM en entretien est de REVISER !!!!

Eh oui !!!…Go back to school !!

Me concernant, avant de passer un entretien, MSDN devient mon livre de chevet et je parcours toutes les définitions de bases du C#.

Les questions théoriques ou QCM permettent en générale au recruteur d’avoir une idée sur votre niveau technique.

Les recruteurs se basent de vos réponses pour poser des questions transverses afin d’obtenir un échange orienté technique.

Tout au long des échanges, il se demandera si techniquement vous êtes « l’homme de la situation » ou pas.

C’est pour cela, que pour mieux vous aider à préparer votre entretien technique, j’ai mis à votre disposition ci-dessous, un ensemble de questions que les recruteurs m’ont déjà posés.

Il s’agit bien sûr de celles dont je me souviens J et qui ont été répétitives.

  1. Qu’est-ce que le Garbage Collector (GC) ?
    • Le GC gère l’allocation et la libération de mémoire dans l’application. A chaque fois qu’un objet est créé le Common Language Runtime (CLR) alloue de la mémoire à l’objet. Une fois que la mémoire est saturée le GC effectue un garbage collection afin de libérer de la mémoire.
  1. Qu’est-ce qu’un délégué ?
    • C’est un type qui définit une signature de méthode avec une liste de paramètre et un type de retour particulier. C’est l’équivalent d’un pointeur de fonction en C++ mais il est orienté objet, de type sécurisé.
  1. Quels sont les différents types en C# ?
    • Types valeurs : Ce sont des variables qui contiennent directement des valeurs. Ils héritent implicitement de System.ValueType. Ils sont répartis en en deux catégories :
      • Les structures (types numériques, bool…)
      • Les énumérations
    • Types références : Ils font références à leurs données (objets) : classes, interfaces…
  1. Quels sont les avantages des génériques ?
    • Optimise la réutilisation et la maintenabilité du code.
    • Sécurise le code.
    • Améliore les performances.
  1. Qu’est-ce qu’une méthode d’extension ?
    • Les méthodes d’extensions permettent d’ajouter des méthodes à des types existants sans créer un type dérivé, ni recompiler ou modifier le type d’origine. Elles sont définies comme des méthodes statiques.
  1. Qu’est-ce que LINQ ?
    • LINQ est un ensemble de fonctionnalités qui permettent de manipuler les données à l’aide de requêtes extrêmement puissantes.
  1. Qu’est-ce qu’une interface ?
    • Une interface est un ensemble de signatures des méthodes, des propriétés, des évènements ou indexeurs.
  1. Quels sont les modificateurs d’accès d’un type ou membre en C# ?
    • Public: aucune restriction, les types ou membres sont accessibles publiquement.
    • Internal : Les types ou membres internes ne sont accessibles que dans le fichier figurant dans le même assembly
    • Protected: Un membre protégé est accessible dans sa classe et depuis les instances de classe dérivée.
    • Private: Les membres sont accessibles uniquement dans le corps de la classe ou de la structure où ils sont déclarés.
  1. Qu’est-ce que l’encapsulation?
    • L’encapsulation est le fait de protéger l’information contenue dans un objet et de ne proposer que des méthodes de manipulation de cet objet.
  2. Quelle est la différence entre Parse() et TryParse()?
    • La méthode TryParse() ne lève pas d’exception (contrairement à la méthode Parse()) si la conversion échoue mais renvoie une valeur booléenne false à la place.
  1. Qu’est-ce qu’une architecture 3 tiers (3 couches)?
    • L’architecture 3 tiers est un modèle logique d’architecture applicative divisée en 3 couches :
      • Couche présentation.
      • Couche métier.
      • Couche accès aux données.
  1. A quoi sert le mot clé lock?
    • Le mot clé lock permet de garantir qu’un thread n’entre pas dans une section critique de code pendant qu’un autre thread est dans la section critique.  Si un autre thread tente d’entrer dans un code verrouillé, il attendra, bloquera, jusqu’à ce que l’objet soit libéré.
  1. A quoi sert le mot clé override?
    • Le modificateur override permet d’étendre ou modifier l’implémentation abstraite ou virtuelle d’une méthode, d’une propriété, d’un indexeur ou d’un événement hérité.
  1. Quelle est la différence entre une interface et une classe abstraite?
    • Une classe abstraite est une classe dont l’implémentation n’est pas complète et qui n’est pas instanciable, tandis que les interfaces servent à définir des contrats de services (des signatures de méthodes par exemple). Une classe ne peut hériter que d’une seule classe parente (abstraite ou non), mais elle peut implémenter plusieurs interfaces.
  1. Qu’est-ce que le polymorphisme?
    • Le polymorphisme est le concept consistant à fournir une interface unique à des entités pouvant avoir différents types.
  1. Qu’est-ce que la sérialisation?
    • La sérialisation est un processus de conversion d’un objet en un flux d’octets pour stocker l’objet ou le transmettre à la mémoire.
  1. A quoi sert la méthode JsonConvert.DeserializeObject<T>?
    • Elle permet de désérialiser le JSON en un type .NET spécifique.
  1. Qu’est-ce que l’héritage ?
    • L’héritage est une forme de réutilisation du code qui permet de développer de nouvelles classes à partir de classes existantes. La classe existante est appelée classe de base ou classe mère, la nouvelle classe est appelée classe dérivée ou classe fille.
  1. Qu’est-ce que le pattern Singleton ?
    • Il permet de n’avoir qu’une seule instance d’une classe dans la mémoire.
  1. Qu’elle est la particularité d’une classe statique?
    • Une classe statique ne peut pas être instanciée. Le mot clé new ne peut pas être utilisé pour créer une variable du type classe.

Le test pratique

Le test pratique ne fait pas parti de tous les processus de recrutement.

Il peut être sous plusieurs formes à savoir :

  • Coder une ou deux fonctionnalités.
  • Rédiger des algorithmes.
  • Corriger un bug.