Compétences C ++ supérieures aux compétences C? [fermé]

28

Je pense que le C / C ++ souvent vu ne décrit pas vraiment mes compétences dans mon CV. Je prévois donc de le séparer en connaissances C ++ avancées et en compétences C médiocres.

Pensez-vous que cela prête à confusion pour le lecteur? Elle pourrait penser: "C est un sous-ensemble de C ++, alors qu'est-ce que ce gars essaie de me téléphoner?" Eh bien, ce que j'essaie de dire, c'est que j'ai fait plusieurs projets C ++ dans le monde réel alors que des projets C purs n'étaient qu'un passe-temps. Êtes-vous d'accord pour dire qu'un programmeur C ++ qualifié n'est pas nécessairement un gars qualifié en C ou pensez-vous que ce changement se fait facilement?

h0b0
la source
1
C'est exactement ce que je fais. Cela ne m'a pas empêché de trouver un emploi.
Martin York,
9
Je n'ai pas écrit de CV depuis longtemps, mais je parle toujours de C et C ++ comme deux langages totalement différents.
Rei Miyasaka
2
@ReiMiyasaka - Bien, car ce sont deux langues totalement différentes. Les deux ont été mis à jour et ont divergé depuis la création de C ++ en tant
qu'addition
je crois que C / C ++ ne sont pas la même chose et ce sont des langages totalement différents, la seule chose courante est le 'C' dans le nom (sans parler de la syntaxe proche)
Qchmqs

Réponses:

31

Vous avez posé tant de questions en une seule; permettez-moi d'essayer de répondre tout en les séparant. J'embauche de nombreuses personnes qui appartiennent à ce type de profil et, souvent, je dois participer à tant d'entretiens et rejeter des personnes, car elles n'ont souvent pas de réponse claire aux questions que vous avez posées.

  1. Avoir une bonne maîtrise en C ou C ++ est-il suffisant pour vous qualifier pour l'autre programme?
    Si vous êtes à un niveau supérieur en fait NON. c'est-à-dire si vous avez fait quelque chose comme 6 ans à faire de la programmation C ++ sur certaines applications d'entreprise de base, et maintenant j'essaie de vous mettre dans des systèmes embarqués qui sont tous en C - probablement que votre syntaxe de programmation et comment déboguer des trucs ne sont pas un problème. Mais si vous avez besoin de réfléchir à un problème, vous êtes certainement très en désordre. Cela est vrai de chaque côté de l'autre langue. Au fil des années, vous n'avez passé qu'un seul type de langue - moins facile à transformer sous une autre forme! Il ne s'agit pas de savoir si vous pouvez apprendre la syntaxe du langage, mais vous pensez réellement différemment lorsque vous êtes en C, C ++, Java, perl et Python. Pour étirer la question - le plus souvent - les gars C ++ et Java peuvent être utilisés de manière interchangeable, tout comme Perl, PHP, Phython. C est une race assez différente!

    Si vous êtes un gars relativement jeune, il est probable que vous puissiez vous rattraper rapidement.

  2. Cela signifie-t-il que j'ai des compétences plus élevées lorsque je connais le C ++ plutôt que le C?
    Non. Le nombre de personnes capables de maîtriser le dépannage des systèmes de mémoire partagée est bien inférieur au nombre de personnes capables d'écrire un programme GUI décent à l'aide de VC ++ ou d'un cadre similaire.

  3. Cela signifie-t-il que la connaissance de C (ou de la programmation de niveau le plus bas) est le plus haut niveau de réussite?
    Pas encore! Ce n'est pas une contradiction. Cette fois, cela dépend du domaine que vous comparez. Si vous regardez la programmation de systèmes à l'intérieur du noyau Linux, ou quelque chose de très proche du matériel, la capacité de programmation en C est plus pertinente.Cependant, si vous écrivez un logiciel bancaire ou certains moteurs de règles métier - C ++ est un choix généralement naturel. Le fait est que votre véritable force n'est pas beaucoup la syntaxe du langage, mais la façon dont vous résolvez une classe de problèmes et vous ne pouvez qu'espérer maîtriser quelques catégories / domaines dans votre vie. Si vous mettez quelque chose dans votre CV, c'est ce qui compte vraiment.

  4. Est-ce à dire que si je n'ai été qu'en C - je ne connais pas la programmation orientée objet?
    Pas du tout. En fait, mon test décisif dans l'interview pour savoir si le gars est de fond C ou C ++ est de poser une question très simple - "Alors, pouvez-vous faire de la programmation orientée objet en C?" - le gars saute et dit - "Certainement NON!" il / elle est membre C ++. Le fait est que, lorsque vous écrivez vraiment du code très complexe comme du code multimédia, un système multi-thread, une pile de couches de protocole, vous pensez toujours comme du code objet - le compilateur C ne vous punit pas si vous êtes mal à encapsuler deux routines ou des objets - mais lorsque le système évolue qui continue de vous tirer - je crois parfois - il y en a beaucoup qui sont nés à l'ère de l'orientation des objets, assez souvent sont assez faibles sur la façon dont l'encapsulation est vraiment violée dans un code qui est à peu près rempli de classes et d'objets. Désolé j'ai fait une digression. Mais le fait est que c'est plus vos compétences en analyse de problèmes et en conception qui importent plus que vos seules compétences en programmation.

Cela signifie-t-il que je devrais mettre les compétences spécifiques au domaine en matière d'exposition et de conception de manière progressive?
Définitivement oui!

Dipan Mehta
la source
9
+1 Pour avoir souligné que vous pouvez avoir une conception orientée objet et toujours l'implémenter en C.
Giorgio
16
@Dipan: Soyez prudent lorsque vous faites des hypothèses basées sur l'âge. Certains gars plus âgés "rattrapent" assez vite aussi. Certains d'entre eux courent probablement plus vite que vous.
kevin cline
15
Je doute fortement que "les gars C ++ et Java puissent être utilisés de manière interchangeable".
fredoverflow
6
Je suis également en désaccord avec # 2. Lorsque vous connaissez C ++, vous pouvez choisir C # ou Java en un temps relativement court. Cependant, récupérer du C ++ lorsque vous connaissez l'un des deux autres, prend beaucoup de temps et d'efforts, et nécessite que vous "désappreniez" d'abord beaucoup de ce que vous avez pris comme indiqué en C # ou Java.
sbi
1
@sbi: Je ne discute pas vraiment de détails très précis sur le C ++, le JAVA ou le C. Je n'ai pas vraiment l'intention de trop généraliser les relations entre les langages; je ne présume pas non plus que les gens ne peuvent pas vraiment s'adapter, apprendre ou désapprendre des choses. Le seul point crucial est que les différentes langues sont également des schémas de pensée différents indépendamment de leur relation syntaxique et c'est ce qui compte dans l'adéquation du rôle à attribuer.
Dipan Mehta
27

Pour les gens qui comptent vraiment, non, cela ne devrait pas les confondre.

Quiconque sait quoi que ce soit sur la programmation C et C ++ du monde réel sait que, malgré leurs similitudes et leur histoire, la programmation de production dans l'un ou l'autre est le plus souvent un animal complètement différent.

Dan McGrath
la source
12

Personnellement, je trouve ça très ennuyeux quand les gens écrivent "C / C ++", car C et C ++ sont des langages très différents. Inversement, si je vois "C, C ++" ou "C ++ et C" sur un CV, cela m'impressionne sans fin. Malheureusement, presque tout le monde écrit "C / C ++", et cela signifie généralement "Je connais C ++, mais je peux faire C si je le dois."

De plus, je ne serais pas aussi précis sur le CV. Énumérez simplement les langages de programmation que vous connaissez, éventuellement dans l'ordre du plus compétent au moins compétent. Cela devrait vous faire passer le filtre des mots à la mode RH, puis vous pourrez expliquer lors d'un entretien technique quelles sont vos forces et vos faiblesses.

Dima
la source
4
D'accord. Je ne mettrais pas plus tôt "C / C ++" sur mon CV que je mettrais "Java / JavaScript" comme si c'était la même chose.
J'écris souvent en C / C ++ même si je sais que ce sont des langages différents, parce que vous avez appris l'un ou l'autre sans prendre la peine de regarder l'autre, votre connaissance des deux est incomplète. Vous ne pouvez pas être un bon programmeur C sans au moins étudier OO, où C ++ est le choix naturel pour apprendre à faire OO en C. Vous ne pouvez pas être un bon programmeur C ++ sans comprendre pourquoi C ++ s'est avéré comme il est, par son héritage de C. Dans un CV cependant, je conviens qu'ils devraient être séparés.
1
@OrbWeaver, une grande différence est que vous pouvez souvent prendre un programme C (tant qu'il n'est pas trop complexe), le nourrir dans un compilateur C ++, et obtenir un exécutable de ce qui fera réellement ce que l'un d'un Le compilateur C ferait l'affaire. Vous ne pouvez pas alimenter un programme Java vers un analyseur JavaScript (ou l'inverse) et obtenir quoi que ce soit, même à distance, utile de l'exercice. Donc, bien que je convienne que C et C ++ doivent être différenciés, à mon avis, l'écriture C/C++et Java/Javascriptcomme s'ils étaient les mêmes est toujours dans deux ligues très différentes.
un CVn
+1 pour les conseils - listez simplement les langages de programmation que vous connaissez, éventuellement dans l'ordre du plus compétent au moins compétent. Cela devrait vous faire passer le filtre des mots à la mode des RH,
naïf
7

Non, cela ne devrait pas prêter à confusion car C et C ++ bien que des racines similaires et partageant des racines similaires soient différentes dans le paradigme et l'utilisation. Ainsi, il devrait être séparé, et l'expertise devrait également être séparée. De plus, je pense que vous pouvez mentionner une expertise plus spécifique (comme GUI / FLTK ou d'autres bibliothèques que vous connaissez) avec les deux séparés.

aggietech
la source
5

J'ai aimé votre phrasé: "J'ai fait plusieurs projets C ++ du monde réel alors que des projets C purs où juste un passe-temps"

Je le mettrais donc dans le jargon du CV:

  • travaillé sur plusieurs produits C ++
  • quelques projets parallèles utilisant C

C'est mieux si vous mettez des nombres à la place de "plusieurs" et "quelques". Pas besoin d'être exact, "plus de vingt" est un chiffre à cet effet.

La description du «niveau de compétence» est correcte , mais la description de «l'expérience» est correcte et claire.

Emilio M Bumachar
la source
3

J'accepte que C et C ++ sont des langages différents et doivent être conservés séparément dans le CV. Même si C est (presque) un sous-ensemble de C ++, j'ai normalement un style de programmation très différent lorsque j'utilise C: je conçois différemment, je code différemment, etc. Je supprimerais même certaines fonctionnalités C comme #includes de C ++, ce qui renonce à la compatibilité descendante: ce sont simplement des langages différents.

Donc, mon conseil est de garder les deux langues séparées dans votre CV.

Giorgio
la source
3

Simplement, si la personne qui vous évalue avait la propension à penser "C est un sous-ensemble de C ++", elle est déjà confuse, et je suis sûr que votre explication de ce qui est écrit dans votre CV suffira à les impressionner.

Mr_Spock
la source