Révisions en C++ - test ?

Salut !

Dans une semaine (moins que ça pour cause de week-end chargé), j’ai un entretien pour un boulot de développeur C++ pour des applications/de la visualisation en 3D. C’est plutôt cool et j’aimerai que ca marche. Il y a quelques mois j’étais un mauvais programmeur en C++ et donc j’ai pas mal de boulot à rattraper.
Ma question est simple (en fait j’en ai deux pour le prix d’une):

  • est-ce que vous connaissez des tests de connaissance en C++ (en prog en général c’est bien aussi) ? J’en ai vu il y a 3 ans mais j’ai perdu le lien. Si vous connaissez pas, est-ce qu’il existe les 10 commandements en C++, les trucs à faire/ ne pas faire, les questions habituelles des recruteurs etc…

  • et puis la même chose en 3D ca serait vraiment la cerise sur le gâteau si vous me trouvez ça. Par exemple un lexique des notions les plus importantes en 3D, un test aussi genre QCM, tout ce qui pourrait m’aider moi, qui ait eu mon diplôme sans vraiment apprendre.

Promis, je vous tiens au courant si ca marche.

Olivier

je te conseille d’aller faire un tour ici => http://c.developpez.com/

Pour ma part, j’essaie de voir si c’est mal de faire des listes chainées en c++ à grands coups de malloc comme en c, ou s’il y a une manière plus propre.

C++ ? Malloc ? Liste chaînée ? :stuck_out_tongue: Oulàlà… Vite, la STL.

gring > Encore plus urgent que la STL si tu fais de l’allocation dynamique en C++ : opérateur new et delete. malloc c’est du C et ça fait pas bon ménage avec le C++, pour tout plein de raisons que tu découvriras surement tout seul

Oui, c’est bien ce que je me disais, mais je me demandais si remplacer les structures par des classes pour faire des listes chainées, c’était propre… Je cherchais aussi à savoir dans quels cas le destructeur est appellé automatiquement, et dans quels cas on doit utiliser delete (hormis les cas évidents)… Enfin, bref, merci. (je ne voudrais pas non plus trop détourner le sujet original du thread :stuck_out_tongue: )

Pour ce qui est de la 3d, la wikipedia est sans doute un bon début:

http://en.wikipedia.org/wiki/Category:3D_computer_graphics

merci pour les réponses, mais je pense que ca fait un peu léger pour l’entretien d’embauche.
Je suis un tout petit au-dessus du niveau malloc, et j’ai à peu près pigé new et delete puisque j’ai déjà eu l’occasion de le bosser dans une boîte.
Sans dec, personne ne connait de test en C++ sur le net ?
Ohhhhhh plus que 3 jours!

Dreamler: pour info on demande assez souvent de reprogrammer une liste chainée (du moins dans ma boite ca tombe à tout les coups), juste pour voir. Ca permet de voir si le candidat connait ses classiques :P.

[pere]cil : c’est exactement ce genre d’infos que je cherche. Tu pourrais m’en dire plus sur les questions que l’on pose dans ta boite ?

Boah c’est des trucs assez basiques et génériques: souvent on prend une classe de la STL et on dit “refaites là”. C’est toujours sur papier, et on fait pas trop gaffe aux erreurs de syntaxe, mais plutôt à la logique. De plus si le sujet est “reprogrammez une stack” le candidat doit déjà maitriser l’interface qu’on demande. Ca prouve qu’il sait ce que c’est, et qu’il sait s’en servir.

On demande pas trop de trucs théoriques, mais plutôt des trucs pratiques; on fera plus attention a du code bien fait (gestion des erreurs, tout ca) qu’à du code complexe avec plein d’astuces.


Et juste pour le plaisir mon prefere:

Et sinon serieusement:

http://www.sellsbrothers.com/fun/msiview/d…estion.htm#algs

Des exemples…

thanks gloP, c’est excellent ce lien !

Oué, très fort… :stuck_out_tongue:

On a des entretiens… interessants on va dire, et certainement pas de tout repos :stuck_out_tongue:

Effectivement j’ai lu les questions… et quand tu te dis que tu comprends parfois pas la question… ya comme un souci.

ca me rassure alors…
et l’entretien n’est pas non plus de tout repos pour les candidats.

Cela mis à part, n’est-il pas étrange que le domaine de l’info en général soit un des seuls pour lesquels les tests soient si poussés ? De même pour les compétences demandées, comme savoir programmer dans 15 langages différents ?
Autre chose rigolote, demander de l’expérience sur 3DSMax par exemple c’est presque une plaisanterie je trouve, puisqu’implicitement on te demande d’avoir donwloadé illégalement le programme (je ne sais pas quelle est la proportion d’entreprises qui peuvent se permettre une license ni la proportion d’informaticiens qui ont pu apprendre légalement mais ca doit pas faire beaucoup).
Pareil dans les choses que je trouve étranges pour ne pas dire plus, pourquoi demande-t-on aux gens autant de compétences dans ce domaine ? C’est demander de façon avouée que les informaticiens continuent d’apprendre chez eux de nouveaux langages pour ne pas être à la ramasse lors de leur prochain entretien… y’a-t-il beaucoup de domaines comme cela ? Tout le monde n’est pas à ce point féru d’info, il y a des gens qui ont une vie à côté de leur ordis ou de leur travail.

Enfin, pour continuer sur cette diatribe (comprennez que j’aime bien, vraiment, bosser dans ce domaine, mais que je suis contre les excès que les entreprises se permettent), à quoi ca sert d’avoir passé des exams si c’est pour repasser des tests de compétences ? Ok pour les tests de personnalités, mais à quoi ca sert de demander à quelqu’un d’inverser une liste chainée alors que ca existe depuis 20 ans ??? Pourquoi devoir réinventer la roue pour ces entretiens ?

Bon, évidemment c’est normal de tester le candidat, mais ca ne serait pas plus intelligent de lui donner un ordi et un problème plutôt que le mettre sur un tableau blanc, ce qui est loin du travail qu’il effectuera plus tard…

(mais non, je n’ai pas peur pour mon entretien jeudi ! hehehe)

[quote=“ezeeckiel, post:16, topic: 29127”][…] à quoi ca sert de demander à quelqu’un d’inverser une liste chainée alors que ca existe depuis 20 ans ??? Pourquoi devoir réinventer la roue pour ces entretiens ? […]

Bon, évidemment c’est normal de tester le candidat, mais ca ne serait pas plus intelligent de lui donner un ordi et un problème plutôt que le mettre sur un tableau blanc, ce qui est loin du travail qu’il effectuera plus tard…
[…][/quote]

M’est avis qu’ils cherchent d’abord à voir si tu sais trouver une solution à un problème plus ou moins quelconque. Ils s’en foutent que tu saches sortir un algo spécifique pour les listes chaînées, par contre, que tu puisses résoudre un problème algorithmique “de base”, ils ne s’en foutent pas ! La façon dont tu vas résoudre ce problème en dira long sur la façon dont tu appréhenderas les futurs problèmes, qui, eux, ne sont pas forcément des “classiques”.

C’est la façon dont tu t’y prendras qui est intéressante, pas le résultat en lui-même.

Et un problème algorithmique comme cela, ca peut se résoudre avec juste une feuille et un papier pour poser la solution ; l’implémentation, on considère souvent que ça ne pose en général pas de problème particulier à partir du moment où on sait ce qu’on veut faire.

Cela dit, elles sont vraiment chouettes les questions d’embauche de chez Microsoft… Y’en a des bien casse-tête !

peut-être simplement pour vérifier que le gars est pas un rigolo, et qu’il maitrise une des bases de l’algorithmie.

EDIT : grilled

bien sur que ce sont tes capacités en algorithmie qui sont testées, cela dit les questions ont tellement été posées par les employeurs que ceux qui n’arrivent pas à y répondre sont considérés comme des idiots purement et simplement (cf les dessins de gloP et sa remarque sur les entretiens « intéressants »). Le premier dessin est tellement vrai ! Les gens qui bossent dans les entreprises sont loin de répondre aux critères qu’on demande aux candidats.
Moi j’ai appris à faire du traitement de l’image en C++, cad à utiliser les outils existants pour développer de nouvelles applications, aller chercher ou imaginer de nouvelles méthodes pour résoudre des nouveaux problèmes, je n’ai pas appris à faire de l’algorithmie de base, ce n’est pas mon travail.

Si ce qui intéresse les gens c’est la manière dont tu résouds un problème, autant qu’ils te présentent un de leur problème actuels… comme ça ils font d’une pierre deux coups et ils te testent sur ton vrai (futur) boulot.

C’est chouette ces questionnaires, c’est vrai, sauf quand ils décident de ton avenir.

J’apporte ma contribution avec les questionnaires que j’ai trouvés. Ne rêvez pas, les gens acceptent de partager les questionnaires qu’ils ont eus, mais gardent leurs réponses pour eux, vive la compet.

guidelines en C++ :
ici

http://www1.cs.columbia.edu/~kns10/interview/

http://www.softwareinterview.com/questions/list

Compte-rendu d’un entretien

je cite :
"I spent lots of mental energy coming up with the solutions to those problems… so, I’m not to just divuldge them (plus, I don’t want someone to ‹ beat › my work :stuck_out_tongue: "

quelle attitude !

Si quelqu’un trouve les soluces aux questionnaires, je suis preneur.
Tiens, d’ailleurs ca serait pas mal comme sujet pour la Zone. Je suis sûr que cela aiderait plein de gens si on mettait à la disposition de tous les réponses aux questionnaires de base.

Je ne vois pas bien en quoi la bonne maitrise de l’algorithmique ou des paradigmes de programmation serait inutile en traitement d’images. Par contre, ca m’intéresserait de savoir un peu ce que tu as fait en TI - à titre personnel.