web-dev-qa-db-fra.com

Préparation à l'entretien C ++

J'ai une interview téléphonique à venir avec une entreprise qui travaille dans l'industrie des logiciels financiers. L'entretien se déroulera principalement en C++ et en résolution de problèmes et logique. Veuillez me dire la méthode de préparation de cette interview. J'ai commencé à parcourir Thinking in C++ et à brosser les concepts. Existe-t-il un autre moyen de me préparer ?? Veuillez aider.

Éditer:

Merci à tous pour les conseils. Je veux juste ajouter que je suis actuellement fraîchement sorti de l'école et que je n'ai aucune expérience antérieure. Alors, pouvez-vous suggérer un type de questions qui seront posées aux nouveaux diplômés?

39
Light_handle

Assurez-vous de connaître vos structures de données et algorithmes de base. Vous êtes plus susceptible d'être interrogé sur ce genre de choses que sur quelque chose plus haut dans la chaîne alimentaire. Ceux-ci sont généralement conservés pour l'entretien en personne.

Autrement dit: soyez solide avec les principes fondamentaux et solide avec votre syntaxe C++. De plus, la connaissance des bibliothèques courantes comme STL et Boost ne pouvait pas nuire ... mais assurez-vous de savoir ce que ces bibliothèques vous offrent! À la fin, les écrans de téléphone sont là pour éliminer les personnes qui ne peuvent pas faire les bases. Prouvez que vous le pouvez et que vous devez passer à l'étape suivante. Bonne chance!

Voici quelques liens de questions d'entrevue à vérifier:

Maintenant, pour terminer, certains livres:

53
Kyle Walsh

J'ai interviewé plusieurs candidats se concentrant spécifiquement sur leurs connaissances en C++, et s'il y avait une question qui fonctionnait bien pour mettre les connaissances des gens sur C++ sur un gradient, c'était celle-ci:

Corrigez cette fuite de mémoire de la manière la plus robuste possible:

 void doSomething () 
 {
 Foo * pFoo = new Foo (); 
 [faire quelques trucs] 
} 
  • +1 pour la fin de la suppression de pFoo
  • +2 pour mettre pFoo dans un std :: auto_ptr
  • +3 pour savoir ce qu'est RAII - le concept, sinon l'acronyme
  • +4 pour avoir mentionné les garanties de sécurité d'exception de l'auto_ptr
  • +5 pour avoir augmenté pFoo: shared_ptr
  • +6 pour savoir quand un shared_ptr peut ne pas être libéré.
  • +7 pour avoir parlé des techniques de collecte des ordures pour corriger les références circulaires

Cela a toujours fonctionné pour montrer depuis combien de temps quelqu'un travaillait avec C++. Il s'agit d'un point de données que vous pouvez utiliser pour savoir où vous en êtes dans l'échelle des connaissances C++.

Edit: je recommanderais quelqu'un à embaucher au niveau 3 ou supérieur.

46
Matt
  • Essayez quelques problèmes pratiques sur TopCoder .

  • Découvrez FAQ C++ de Marshall Cline . C'est un bon moyen d'apprendre de nouvelles choses et de consolider les choses que vous savez déjà au cas où vous décidez de vous poser des questions de "connaissances" plutôt que des questions de "résolution de problèmes".

8
theycallmemorty

Même s'ils interviewent pour un poste en C++, toutes les questions peuvent ne pas être spécifiques au C++. Par exemple, j'ai été confronté à des questions liées aux éléments suivants dans le même ensemble d'entretiens pour un seul poste C++:

  • Complexité algorithmique d'algorithmes de tri et de recherche bien connus
  • Programmation multithread
  • Programmation multiprocessus
  • Programmation des sockets
  • Philosophie/approche de développement logiciel
  • Philosophie/approche de test et de validation de logiciels
  • Débogage
  • Analyse comparative
  • Analyse dynamique et statique du code (par exemple, détection de fuite de mémoire au moment de l'exécution vs temps de compilation)

Dans mon cas, l'entretien téléphonique faisait partie d'un processus de sélection pour déterminer si je pouvais passer un test de connaissances en ligne C/C++ (par exemple via BrainBench). Les résultats des tests en ligne ont ensuite déterminé si je serais envoyé en avion pour des entrevues sur place, qui comprenaient également davantage de tests de développement de logiciels "pratiques".

YMMV. Cela dépend également beaucoup de ce que vous déclarez sur votre CV.

Les enquêteurs essaient souvent de vous aider en vous donnant des indices afin qu'ils puissent voir si vous pouvez arriver à la réponse qu'ils recherchent. En plus d'évaluer vos connaissances, ils veulent également savoir comment vous pensez. Occasionnellement, vous pourriez obtenir un intervieweur minable qui n'est ni utile ni positif. La clé est d'avoir confiance en vos capacités et d'être honnête.

HTH et bonne chance!

3
Void

Outre les parties évidentes du langage, j'ai trouvé que les employeurs voudront voir si vous comprenez parfaitement les pointeurs, les références, comment les constructeurs de copie entrent dans tout, probablement STL, et bien sûr les bases des classes.

2
Smashery

Quelque chose que je commence à croire, c'est qu'il y a parfois un fossé clair entre les candidats qui aiment la programmation comme passe-temps et ceux qui le considèrent comme "juste un travail de jour".

Même si vous ne connaissez pas la réponse à une question spécifique, il convient de mentionner que normalement, vous devriez rechercher la réponse sur <votre ressource préférée> (par exemple, StackOverflow).

Sur la base de votre expérience, je ne pense pas que l'intervieweur s'attendra à ce que toutes les questions soient correctes. Ils essaient probablement de décider si vous avez du "potentiel".

Alors détendez-vous et essayez d'en profiter!

2
Richard Corden

Attrapez un ami bien informé et demandez-lui de vous poser quelques problèmes de programmation C++ que vous pouvez résoudre sur un tableau blanc. Beaucoup d'entrevues vous permettront de résoudre un problème sur un tableau blanc, et il peut être déconcertant de penser debout et d'écrire des choses devant quelqu'un si vous n'y êtes pas habitué.

2
Pedro Estrada

Lire (ou parcourir, selon le temps qu'il vous reste à préparer) " Large-Scale C++ Software Design " par John Lakos. Il y a de fortes chances que vous en ayez besoin.

1
Max A.