Je ne crois pas qu'une première expérience en C soit indispensable pour apprendre le C++...
Au contraire, l'apprentissage du C, surtout si tu l'apprends en prenant de mauvaises habitudes, risque de te compliquer énormément la tache pour l'apprentissage de bonnes habitudes en C++...
Un simple exemple: en C, les chaines de caractères sont d'office des tableaux de caractères... que tu peux, bien sur, utiliser en C++, mais qui sont très avantageusement remplacés par la classe std::string...
On rencontre couremment des gens qui ont une expérience en C qui s'obstinent à utiliser un tableau de caractère "à la mode C" au lieu d'utiliser la classe string...Et ce, même quand on leur a expliqué en long et en large qu'il vallait mieux utiliser la classe string...
De la meme manière, l'utilisation de références apporte énormément d'avantages par rapport à l'utilisation de pointeurs... Or, en C, il n'y a pas de référence, et on travaille avec des pointeurs... Là encore, certains s'obstinent à utiliser les pointeurs au lieu d'utiliser plutot des références...
On peut tres bien etre un "gourou" en C++ et ne rien toucher au C, tout comme l'inverse est égalemet vrai.
Bien plus que la connaissance d'un langage particulier, ce qui est tres utile, c'est la connaissance des concepts propres à la programmation séquentielle qui facilite les choses.
Je suis d'ailleurs personnellement persuadé, meme si je n'oblige personne à etre de mon avis, qu'il est bien plus utile de connaitre certains principes "universels" de programmation, de connaitre différentes manières de créer une logique stricte et correcte (ce que l'on appelle "les méthode d'algorithmie") que n'importe quoi d'autre avant d'attaquer l'apprentissage de n'importe quel langage de programmation, qu'il soit séquentiel ou orienté objet...
En effet, les langages orientés objets utilisent tous les concepts de la programmation séquentielle (boucles, tests, fonctions, utilisation éventuelle de pointeurs) et en rajoutent d'autre qui leur sont propres (classes, constructeurs/destructeurs, visibilité des membres et méthodes, héritage, utilisation de référence...)
En cela, le fait de s'être déjà familiarisé avec les concepts de la programamtion séquentielle permettra tout simplement... de ne plus avoir à s'y familiariser lors de l'étude d'un langage orienté objet, et donc de pouvoir directement s'attaquer aux concepts supplémentaires qui font qu'un langage est "orienté objet"...
L'idée qu'il faut connaitre le C avant de passer au C++ est tout aussi fausse que celle qui voudrait qu'il faille connaitre l'anglais avant d'étudier le flamand ou l'allemand...
Ca peut aider, certes, parce que comme les langues sont fort proches, on retrouve dans l'une des concepts utilisés par l'autre, et donc, l'apprentissage de la deuxieme n'en devient que "plus facile", mais ce n'est surement pas une obligation
Partager