Faut-il apprendre le C avant le C++ ? - C++ - Programmation
Marsh Posté le 08-04-2010 à 16:51:28
Voila. Deux langages à la philosophie différente, et tous les deux avec ses pièges spécifiques.
Question débattue en long, en large et en travers, environ tous les 6 mois.
Marsh Posté le 08-04-2010 à 17:48:56
Heu oui effectivement, j'ai des avis différents.
Je crois que je vais commencer par le C puis enchaîner avec le C++, en essayant de ne pas me mélanger les pinceaux.
Merci à vous en tous cas.
Marsh Posté le 08-04-2010 à 17:56:33
Ne fais surtout pas ça : apprendre le C dans le seul but d'apprendre ensuite le C++, c'est le meilleur moyen de s'y perdre, d'apprendre de mauvais automatisme concernant le C++, etc.
Marsh Posté le 08-04-2010 à 19:00:34
C'est vraiment pas une bonne idée de passer par le C pour apprendre le C++, d'autant moins si tu dois apprendre la programmation en plus (si tu veux un bouquin ou deux, Accelerated C++, et ceux de Francis Glassborow ont généralement les faveurs même de ceux qui critiquent facilement; et je sais que leurs auteurs connaissent bien le sujet).
Marsh Posté le 08-04-2010 à 19:10:12
Je suis tout a fait d'accord avec les intervenants précédents. N'apprends pas la C avant le C++. Apprends d'abord le C++ avec Accelerated C++ de Koenig et Moo, puis quand tu maitriseras le C++, apprends alors le C si tu en as besoin.
Ou bien, apprends le C pour le C, mais surtout pas comme langage préparatoire au C++, ce serait une bien mauvaise idée.
[Pour prendre un parallèle, apprendre a abattre un arbre avec une hache n'est pas quelque chose qui aide a apprendre le maniement d'une tronçonneuse].
A+,
Marsh Posté le 08-04-2010 à 19:19:36
gilou a écrit : |
Non, mais ça peut quand même éviter de se prendre l'arbre sur la gueule
Marsh Posté le 08-04-2010 à 19:41:40
Je vais vous écouter !
Ça m'arrange, j'avais surtout envie d'apprendre le C++
Marsh Posté le 08-04-2010 à 22:56:02
Connaissant les 2 langages, je conseille également de ne pas apprendre le C comme introduction au C++, mais de tout de même l'apprendre par la suite, car :
Marsh Posté le 09-04-2010 à 03:01:55
Un Programmeur a écrit : C'est vraiment pas une bonne idée de passer par le C pour apprendre le C++, d'autant moins si tu dois apprendre la programmation en plus (si tu veux un bouquin ou deux, Accelerated C++, et ceux de Francis Glassborow ont généralement les faveurs même de ceux qui critiquent facilement; et je sais que leurs auteurs connaissent bien le sujet). |
gilou a écrit : Je suis tout a fait d'accord avec les intervenants précédents. N'apprends pas la C avant le C++. Apprends d'abord le C++ avec Accelerated C++ de Koenig et Moo, puis quand tu maitriseras le C++, apprends alors le C si tu en as besoin. |
Ce sont des bouquins en anglais non ?
Accelerated C++ cité deux fois ...
Je vais voir sur Amazon !
Marsh Posté le 09-04-2010 à 03:03:46
Je me suis rendu sur amazon.com et je suis tombé sur des ouvrages intéressants comme "accelerated c++" et le dernier DEITEL qui en est à sa 7ème édition.
Comme je dois parfaire mon anglais, je vais sûrement passer commande, dès que je serai en fonds.
Marsh Posté le 09-04-2010 à 19:29:13
Y'a que le Site du zero qui conseille (pire, qui requiert) d'apprendre le C avant le C++ ..
Marsh Posté le 09-04-2010 à 21:07:59
Mouais, enfin bon aussi de lire le site du zéro, ça requiert quand même d'être un tant soi peu larguer hein
Marsh Posté le 09-04-2010 à 21:14:39
Sinon t'as "Thinking in C++" de Eckel, qui est dispo en ligne http://www.planetpdf.com/developer [...] entID=6634 et qui est pas mal (anglais only par contre).
Marsh Posté le 09-04-2010 à 21:32:10
Heu j'avais déjà utiliser mes deux livres en français !
Sinon Mathieu Nebra ou Claude Delannoy ?
Marsh Posté le 09-04-2010 à 21:39:03
J'aime aucun des deux bouquins. A la limite, je trouve celui du SdZ plus en accord avec son public ..
Pour le C++, j'ai beaucoup aimé le Deitel et le Savitch.
Marsh Posté le 09-04-2010 à 21:47:06
+1
j'utilise actuellement le C et le C++ en parallèle sur des projets différents, et pour moi ce sont deux langages distincts, avec une syntaxe qui se ressemble
à la limite, python m'a plus aidé dans l'apprentissage du C++ que le C
Marsh Posté le 09-04-2010 à 21:47:32
Penser en C++, tu trouves le premier tome en français ici: http://bruce-eckel.developpez.com/ [...] icpp2vol1/ (et le tome 2 en anglais aussi)
A+,
Marsh Posté le 10-04-2010 à 13:58:36
B. Eckel ou B. Garcia sont trés bien.
on evitera le site du zero et les bouquins de casteyde.
Marsh Posté le 21-04-2010 à 15:07:21
C'est décidé soit je commande sur Amazon.com le DEITEL 7ème édition ou l'ouvrage encensé par 72 commentaires élogieux : "C++ PRIMER PLUS". Ou je me contente de la 3ème édition du DEITEL. En français.
Qu'en pensez-vous ?
Marsh Posté le 21-04-2010 à 15:17:19
Key Phrases : loan rate, rating book, lottery winner, Share Price, Total Worth
Marsh Posté le 29-07-2011 à 10:56:05
Jypill pa besoin de c pour apprendre c++, mais si tu veux tamuser un peu tu peux l'aprrendre mais c'est pas necessaire.....
by....
Marsh Posté le 29-07-2011 à 14:11:35
karena00 a écrit : Jypill pa besoin de c pour apprendre c++, mais si tu veux tamuser un peu tu peux l'aprrendre mais c'est pas necessaire..... |
Deux messages sur le forum, deux déterrages de sujets vieux d'un an ou davantage, deux réponses complètement dénuées d'intérêt, et usage d'une grammaire pour le moins douteuse...
Encore 3 ou 4 messages comme ça et je sens poindre l'amendement cracotte78.
Marsh Posté le 29-07-2011 à 20:27:30
Quelqu'un m'explique pourquoi ne faut-il pas apprendre le C avant C++ ?
Pour moi qui ai appris le C puis le C++, je me vois mal manipuler des structures et des objets sans savoir comment ca fonctionne derriere...
Le C++ ca reste du C avec des classes et un peu de sucre syntaxique...
Marsh Posté le 29-07-2011 à 20:59:00
C'était le cas dans les années 80 mais au fil des normes les langages divergent : le typages est (un peu) plus fort en C++, le type naturel n'est pas le meme, ni l'allocation de mémoire, les inclusions ont une syntaxe différente, etc.
Sans compter l'essentiel : ce n'est pas du tout le meme paradigme entre les deux langages.
Le C++ est assez loin aujourd'hui du "C with classes" du début.
Alors oui les deux syntaxes se ressemblent fortement sur pas mal de points encore, mais apprendre le C dans le seul but d'aborder le C++ ensuite, il n'y a pas grand intéret, voire c'est contre-productif parce que ça force à désapprendre pas mal de choses.
Marsh Posté le 29-07-2011 à 22:54:58
Pascal le nain a écrit : |
1982 a appelé, il faudrait que tu rentres ...
C++ a reelement diverger depuis un bon moment. Se limiter a du C with classes c'est manquer 80% des reelles fonctionalites du langage.
Marsh Posté le 30-07-2011 à 09:38:57
Les pseudos à numéro ça raconte n'importe quoi
memset, memcpy, strcmp et après on passe au c++
Marsh Posté le 30-07-2011 à 10:52:14
Pascal le nain a écrit : Le C++ ca reste du C avec des classes et un peu de sucre syntaxique... |
Sortir ce genre de phrase montre exactement ce qu'il arrive quand on apprend le C avant le C++: On ne voit plus le C++ qu'à travers le formatage du C, et on fait du C avec des classes et non pas du C++.
A+,
Marsh Posté le 30-07-2011 à 13:59:36
Tu le caserais où l'apprentissage de l'alignement des données dans la classe, la mise à jour des champs de la classe un peu efficace etc?
je demande juste, j'ai appris sur le tas. C'est peut être un cours qui a un autre nom
Marsh Posté le 30-07-2011 à 15:08:29
Belle illustration de ce que je disais d'ailleurs, penser a memcpy avant de penser a copy ou uninitialized_copy, i.e. penser à copier une zone mémoire plutôt que penser à copier des objets.
> Tu le caserais où l'apprentissage de l'alignement des données dans la classe
Dans ce qu'on apprends quand on maitrise toutes les bases du langage. Parce que ce genre de chose est complètement OS dépendant, et que si on n'est pas dans un contexte très particulier (par exemple le codage d'un driver), avoir à s'en préoccuper est souvent l'indice d'une mauvaise structuration des données.
A+,
Marsh Posté le 30-07-2011 à 15:37:20
Merci pour vos reponses.
Pourriez-vous me fournir un exemple ou une situation ou je serai pris a défaut si je pense le C++ comme du C très sucré ?
Marsh Posté le 30-07-2011 à 15:42:53
Passage par pointeur d'un objet non modifié pour les performances au lieu d'une référence constante ?
Y'a des millions d'exemples ..
Marsh Posté le 30-07-2011 à 16:50:05
Pascal le nain a écrit : Merci pour vos reponses. |
Ecrire des algorithme génériques utilisant des itérateurs sans se préoccuper de savoir si les données sont implémentées avec tel ou tel type de conteneur, ça ne me semble pas être du C sucré, et ce même avec du glycogène.
A+,
Marsh Posté le 31-07-2011 à 08:36:55
toute la programamtion generique en fait, toute la metaprogrammation, tout le vrai object a base de RAII etc ... les exceptions, ...
Marsh Posté le 31-07-2011 à 09:16:11
boblenain200 a écrit : Y'a que le Site du zero qui conseille (pire, qui requiert) d'apprendre le C avant le C++ .. |
snafu8 a écrit : Sinon t'as "Thinking in C++" de Eckel, qui est dispo en ligne http://www.planetpdf.com/developer [...] entID=6634 et qui est pas mal (anglais only par contre). |
Il existe une traduction française:
http://bruce-eckel.developpez.com/ [...] icpp2vol1/
L'introduction montre bien les efforts à faire pour passer du C au C++ sans ne faire que du C avec des classes.
Marsh Posté le 01-08-2011 à 13:57:37
Joel F a écrit : B. Eckel ou B. Garcia sont trés bien. |
Petite question car je n'ai pas lu son cour C++, que reproche-t-on aux bouquins de Casteyde ?
J'avais eu au contraire d'excellents commentaires dessus.
Marsh Posté le 01-08-2011 à 17:07:10
Au moins les problèmes de fonds de toute approche "C/C++":
- apprendre un langage c'est plus qu'apprendre la syntaxe et la sémantique de celui-ci, c'est apprendre comment les utiliser en pratique, et donc en respectant les idiomes. Pour la même chose, on va utiliser des idiomes différents en C et en C++. Les cours C/C++ que j'ai vu au mieux enseignent les idiomes du C et ne voient le C++ qu'à travers un filtre C, au pire n'enseigne même pas à programmer en C mais se contente d'en donner la syntaxe et la sémantique.
- si en plus d'apprendre les langages, on veut apprendre la programmation, on a des problèmes supplémentaires à apprendre le C avant le C++. Le C est un langage mal foutu du point de vue ordre de progression: il faut comprendre une série de concepts (en particulier les pointeurs) avant de pouvoir faire quoi que ce soit d’intéressant. Le C++ permet d'avoir un ordre plus simple à aborder (on finit par tout voir, mais pas dans le même ordre).
Un passant, le dernier bouquin de Stroustrup -- Programming: Principles and Practice using C++ -- me semble recommandable pour faire que ce le titre dit, apprendre à programmer en utilisant le C++ comme langage (c'est pas nécessairement le meilleur choix si on sait déjà programmer -- The C++ Programming Language est mieux dans ce cas -- encore qu'il dit clairement des choses trop souvent passées sous silence ailleurs).
Marsh Posté le 01-08-2011 à 18:53:15
Tangrim a écrit : |
Il fait du C--
Marsh Posté le 01-08-2011 à 19:29:53
Joel F a écrit : |
Marsh Posté le 08-04-2010 à 15:25:31
Bonjour, j'ai pour projet sérieux d'apprendre le C++ qui est un langage qui m'attire.
J'ai acheté un bouquin sur le C et deux bouquins sur le C++
sur le C :
Mathieu Nebra "Apprenez à programmer en C" - Éditions "Le livre du zéro"
sur le C++ :
Le langage C++ - Initiez-vous à la programmation en C++ de Jesse Liberty et Bradley Jones - Éditions Pearson
C++ comment programmer (3ème edition) de DEITEL et DEITEL aux éditions Reynald Goulet
Alors, j'aimerais savoir si je dois passer par le C avant d'aborder le C++
J'ai deux sons de cloches différents dans les deux premiers bouquins.
J'aimerais avoir votre avis.
Merci !
---------------
http://www.apprenti-informaticien.com