IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Questionnaire connaissances en C++


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut Questionnaire connaissances en C++
    Bonjour,

    Savez-vous ce qui existe comme questionnaire rapide (du genre une dizaine de questions) pour tester les compétences de base d'une personne en C++?

    Ou sinon qu'est-ce que vous pouvez me conseiller comme questions essentielles?

    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Par défaut
    Parmis les questions essentiels :
    - tu peux demander d'écrire un exemple qui met en oeuvre le polymorphisme.
    - Des questions sur les templates sont toujours un bonne exercice de reflexion.
    - Un exemple qui met en oeuvre l'utiliation des pointeurs. (plutôt du C, mais faut connaitre.)
    - Demandes une gestion de list pour mettre en oeuvre des conteneurs STL type vector, map...
    - fait manipuler des flux. Des stringstream, des filestream...
    - Renseignes-toi sur la conaissance des smartpointers.

    Ensuite suivant les besoins, tu peux poser des questions d'archi distribué CORBA... Tu peux parler d'héritage multiples (bien que l'utilisation soit discutable)

    Il y a déjà de quoi plancher...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Ouh là, ça paraît déjà bien pointu parce que moi j'y connais rien en "STL type vector, map" ou en "smartpointers".

    je note quand-même; si d'autre ont d'autres suggestions...

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ha alors on peut dire que tu as de sérieuses lacunes en C++

    Mais qui se comblent assez rapidement celà dit...

    Je rajouterai les itérateurs et certains design pattern peut-être...
    L'essentiel étant déjà là!

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    En Gros,

    Verifier les connaissances en programmation objet, programmation générique et connaissances de la STL sont les 3 points clé.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Citation Envoyé par ZaaN
    En Gros,

    Verifier les connaissances en programmation objet, programmation générique et connaissances de la STL sont les 3 points clé.
    Comment gérer les exceptions aussi , si tu comprend comment ca marche ca serai pa mal aussi

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Bon, j'avance un peu : j'ai fait les héritage et polymorphisme, les templates.

    Là j'en suis aux pointeurs et j'ai du mal ç créer une question intelligente et rapide...

    Quelque chose comme ça?

    Créer une fonction incrémenter qui incrémente d’une unité une variable passée en paramètre sous forme de pointeur et appeler cette fonction avec une valeur.
    Cette fonction sera aussi appelée par l’intermédiaire d’un pointeur de fonction.

    void incrementer (int* val)
    {
    *val++ ;
    }

    void (*pincrementer) (int*) ;


    int main(void)
    {
    int valeur = 5;
    pincrementer = & incrementer ;
    (*pincrementer)(&valeur) ;

    return 0;
    }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Citation Envoyé par stof
    Bon, j'avance un peu : j'ai fait les héritage et polymorphisme, les templates.

    Là j'en suis aux pointeurs et j'ai du mal ç créer une question intelligente et rapide...

    Quelque chose comme ça?
    si tu fai un std::cout de ta valeur , tu t'appercevera que ta fonction n'icremente pas
    la valeur !
    *pointeur++ a pour effet d'incrementer l'adresse de ton pointeur.
    remplace le code de ta fonction par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void incrementer (int* val)
    {
      *val = *val +1;
      std::cout <<" nouvelle valeur " << *val << std::endl; 
    }
    Je trouve que ton questionnaire est un peu bizare mais bon

  9. #9
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Je savais que je m'étais déjà exprimé sur le sujet, mais je ne retrouvais plus où.
    Finalement, c'est par là, en anglais: http://discuss.techinterview.org/def...el.3.400499.68 (tu trouveras d'autres idées sur ce fil)

    Résumé tardif et succinct de ma prose, et de ma vision sur la chose.

    a- Il faut savoir ce que vous cherchez comme profil. Un gars qui connait les mêmes choses que vous, et qui saura coder dans votre sous-ensemble du C++, un expert, un débutant capable de mettre en oeuvre vos algos, ...


    b- Je n'aime pas les questionnaires qui posent des questions précises de syntaxe ou de terminologie. Non seulement ils ne prouvent rien, mais en plus souvent cela va être des points obscurs sans le moindre intérêt pratique (distinguer les signatures de ++T et T++, comment définir son propre gestionnare de mémoire, le jeu des 7 points-virgules fantômes, comment écrire un tableau de pointeurs de fonctions, ...) Intérêt strictement nul!
    Les réponses sont dans les bouquins, sur google, ici, ...

    En revanche, je trouve bien plus important la connaissance et la compréhension des principes clés du C++ (sémantiques, LSP, RAII, les principaux DP, durées de vie, ...) (même pas besoin que le candidat connaisse le nom). Vous savez ces petites choses que l'on apprend avec l'expérience.


    c- J'aurais tendance à poser un problème vicieux.
    Des classes au design bancal (ça, je le garderai pour moi) qu'il faut faire évoluer.
    Un débutant tout juste sorti d'école sera capable d'apporter le genre d'évolutions qu'on leur apprend en cours et que je leur demande -- et sans avoir à connaitre le jargon plus que précis du C++. Quelqu'un avec plus d'expérience et de recul devrait tilter rapidement sur les points qui ne vont pas (sémantiques, LSP, RAII, dangling pointer, ...).

    Les premiers ne seront pas noyés/intimidés/bloqués de trucs qu'ils ne sont pas sensés pouvoir faire. Les seconds si trop "timides"/"renfermés" risqueront de nous prendre pour des charlots. C'est un risque. (s'ils commencent à émettre des doutes sur notre niveau/santé mentale, il est toujours possible de les accueillir avec un sourire d'encouragement à aller au fond de leur pensé)

    Bref, partir d'un truc qui semble simple et qui permette de tester tous les niveaux. Ceux de la deuxième catégorie ne courrent pas les rues, mais au moins quand ils passent dans le coin, on a une chance de les reconnaitre au premier coup d'oeil.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Effectivement créer des exemples avec structure à améliorer est pas mal mais il faut avoir un niveau déjà très bon pour créer la question (je vais avoir à soumettre le questionnaire à des gens meilleurs que moi sans doute).

    Le STL, c'est vraiment essentiel comme question : j'ai appris hier soir ce que c'était, c'est une classe toute faite de gestion de tableaux dynamiques en gros, non?


    PS: je ne cherche vraiment pas à faire des questions piégeuses de "points-virgules fantômes" mais juste à balayer les points importants du C++ pour voir si le candidat connaît ou pas.

  11. #11
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Dans ce cas, cf réponse de Luc : RAII, etc... (voir !!)

    La STL est la bibliothèque du standard C++, qui remplace avantageusement:
    • les tableaux par des vector
    • les char * par des strings
    • etc...

    Elle est très pratique, d'un point de vue gain de temps, efficacité, et robustesse de ton programme (fini les débordements de mémoire)...
    Leur utilisation est très pratique grâce aux nombreuses fonctions proposées ( algos de tris, itérateurs...)

    Bonne continuation,

  12. #12
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    De toute maniere, à mon avis... le recrutement de quelqu'un ne doit pas être baser sur ses connaissances au moment de l'interview, mais plutot sur sa capacité à apprendre, intégrer la culture d'entreprise, sa passion du travail à effectuer, etc...

    Quelqu'un qui sait tout du C++, mais est incapable de s'adapter (par exemple en lui disant justement de ne pas utiliser la STL ! ) ne passera certainement pas mes entretiens d'embauche.

    Et puis, un bon programmeur "Java" peut faire aussi bien du C++ ou du Smalltalk ! C'est juste un question de sémantique et de syntaxe. Rien qu'on ne puisse apprendre en une semaine avec un bouquin et des examples.

    Mais encore une fois, c'est un avis, et je le partage !

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    D'accord avec tout ça bien-sûr, mais quand on cherche quelqu'un en C++, il faut au moins balayer les points importants pour valider qu'effectivement il a les connaissances théoriques de base (ça va pas durer 2h00).

    Parler de certains points, expliquer le fonctionnement de certains principes et puis voilà.

    Pour l'instant, j'ai fait un truc à base de:
    1.Héritage et polymorphisme
    2.Template
    3.Pointeurs
    4.Gestion mémoire
    5.Fonctions virtuelles
    6.Conteneurs STL

  14. #14
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par stof
    6.Conteneurs STL
    Je suis un peu également de l'avis de Luc. Il vaut mieux porter son attention sur les principes clefs du C++ que sur des bibliothèques particulière (même si la STL reste standard). Personnellement, j'utilise assez rarement la STL (sauf pour les classes de base comme std::string, std::vector, std::exception) et je connais presque pas les autres. Est-ce grave ? Pas tellement, je sais qu'il existe plein de conteneurs, le jour où j'ai besoin d'un conteneur avec des accès particulier, il suffit d'aller voir dans la documentation ce qu'il me faut, et c'est tout, je pourrais l'oublier après.

    Les principes clefs du C++ sont pour moi plus important car c'est quelque chose qu'on oublie pas trop (RAII, dangling pointer, les manières classiques d'implémentation des fonctions, méthodes virtuelles, exceptions)
    Apprendre une bibliothèque complète n'aide pas forcement à mieux comprendre les principes du C++. Il faut savoir que la STL existe, l'avoir un peu manipuler, savoir où chercher la documentation et c'est bon.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    OK; je ne connaissais pas cette librairie et c'est seulement parce qu'un forumeur ci-dessus avait mis ça dans les choses essentielles.

    Ca :"RAII, dangling pointer", c'est carrément du chinois par contre

  16. #16
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par stof
    Parler de certains points, expliquer le fonctionnement de certains principes et puis voilà.

    Pour l'instant, j'ai fait un truc à base de:
    1.Héritage et polymorphisme
    2.Template
    3.Pointeurs
    4.Gestion mémoire
    5.Fonctions virtuelles
    6.Conteneurs STL
    Ca me parrait trop long.

    Il me semble plus judicieux d'amener la personne a exprimer elle meme ce qui lui semble important.

    Tu peux rapidement juger son niveau a ses réponses. "Qu'est-ce que bien/mal programmer en C++ signifie pour vous ?". "Si vous deviez former un débutant au C++, comment feriez-vous ?".
    Pour etre capable de répondre a ce genre de questions, il faut avoir programmé un minimum.

    Ce sont des questions ouvertes qui amenent plus facilement a une discution constructive et permettent de juger sa "culture générale" en C++, et donc sa curiosité / son intéret pour le domaine.

    Un sujet tres intéressant sur le recrutement:
    http://www.joelonsoftware.com/articl...rviewing3.html

    dans son précédent article (http://www.joelonsoftware.com/articl...00000073.html), il détaille plus la "question impossible", dont la finalité est assez intéressante ("combien y a-t-il de feux de circulations a Paris ?"). Je crois qu'il s'est inspiré de techniques utilisées chez MS entre autre (http://www.amazon.com/How-Would-Move...dp/0316778494).

  17. #17
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Luc Hermitte
    Bref, partir d'un truc qui semble simple et qui permette de tester tous les niveaux. Ceux de la deuxième catégorie ne courrent pas les rues, mais au moins quand ils passent dans le coin, on a une chance de les reconnaitre au premier coup d'oeil.
    C'est ce que je fais.

    Pour le moment, je pose un probleme -- tres simple -- et apres j'improvise a partir des reponses du gars et de ce qui se trouve sur le CV. On cerne en fait assez vite.

    Une autre technique que j'ai employee avec des personnes plus experimentees, c'est de commencer par demander que le candidat parle d'un projet auquel il a participe. Ensuite on trouve facilement des questions.

    Note, le contraste entre les connaissances reelles et affichees est souvent etonnant.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Merci à tous.

    Aurelien.Regat-Barrel : si c'est trop long, je supprime la partie pointeurs (c'est quand-même basique après tout) et la partie STL (c'est pas discriminant de la connaître ou non).

    C'est vrai que les questions ouvertes peuvent être intéressantes (mais moi j'aimerais pas qu'on me les pose, c'est pas évident; à voir en fin de questionnaire).

    En tous cas le questionnaire ça permet d'avoir une base standard pour tous, effectivement Jean-Marc.Bourguet c'est pas du tout la totalité de l'entretien, après évidemment le candidat parle de ses projets perso.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2004, 17h44
  2. Quiz : testez vos connaissances sur le cryptage des données
    Par SheikYerbouti dans le forum Oracle
    Réponses: 0
    Dernier message: 08/10/2004, 10h06
  3. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46
  4. Questionnaire à réaliser avec XSL et XML
    Par olive.m dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 19/11/2003, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo