Faut-il apprendre le C avant le C++ ?

Faut-il apprendre le C avant le C++ ? - C++ - Programmation

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
Reply

Marsh Posté le 08-04-2010 à 15:25:31   

Reply

Marsh Posté le 08-04-2010 à 15:28:58    

pour apprendre le C++, pas besoin d'apprendre le C. Ca risque plutôt de te faire prendre de mauvaises habitudes.


---------------
last.fm
Reply

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. :o

Reply

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.


---------------
http://www.apprenti-informaticien.com
Reply

Marsh Posté le 08-04-2010 à 17:56:33    

[:pingouino]
 
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.

Reply

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).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

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+,

Message cité 2 fois
Message édité par gilou le 08-04-2010 à 19:13:46

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-04-2010 à 19:19:36    

gilou a écrit :


[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+,


 
Non, mais ça peut quand même éviter de se prendre l'arbre sur la gueule  :D

Reply

Marsh Posté le 08-04-2010 à 19:41:40    

Je vais vous écouter !
Ça m'arrange, j'avais surtout envie d'apprendre le C++


---------------
http://www.apprenti-informaticien.com
Reply

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 :
 

  • Un codeur C++ qui connait pas le C ça fait bizarre, généralement l'un implique l'autre
  • Connaître le C permet de mieux comprend les mécanismes internes du C++, qui même s'ils ne sont pas dans la norme, sont des normes "de facto" (comment marche une v-table...)
  • Toute fonction C est aussi une fonction C++, donc si tu ne connais pas le C, en vrai il te manque qlq chose du C++. std::sort c'est du C++, std::qsort aussi :p

Reply

Marsh Posté le 08-04-2010 à 22:56:02   

Reply

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.
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+,


 
Ce sont des bouquins en anglais non ?
Accelerated C++ cité deux fois ...
Je vais voir sur Amazon !


---------------
http://www.apprenti-informaticien.com
Reply

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.


Message édité par jypill77 le 10-04-2010 à 23:22:00

---------------
http://www.apprenti-informaticien.com
Reply

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++ ..

Reply

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 [:pingouino]


Message édité par esox_ch le 09-04-2010 à 21:08:15

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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).

Reply

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 ?

Reply

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.

Reply

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


---------------
Counting all the assh*les in the room, well I'm definitely not alone...
Reply

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+,


Message édité par gilou le 09-04-2010 à 21:48:07

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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.

Reply

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 ?


---------------
http://www.apprenti-informaticien.com
Reply

Marsh Posté le 21-04-2010 à 15:17:19    

Key Phrases : loan rate, rating book, lottery winner, Share Price, Total Worth
 
[:implosion du tibia]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

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....

Reply

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.....
 
by....


 
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.

Reply

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...

Reply

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.


Message édité par Elmoricq le 29-07-2011 à 21:00:26
Reply

Marsh Posté le 29-07-2011 à 22:54:58    

Pascal le nain a écrit :


Le C++ ca reste du C avec des classes et un peu de sucre syntaxique...


 
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.

Reply

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++

Reply

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+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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


Message édité par GrosBocdel le 30-07-2011 à 14:02:01
Reply

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+,


Message édité par gilou le 30-07-2011 à 15:09:54

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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é ?

Message cité 1 fois
Message édité par Pascal le nain le 30-07-2011 à 15:37:37
Reply

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 ..

Reply

Marsh Posté le 30-07-2011 à 16:50:05    

Pascal le nain a écrit :

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é ?

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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, ...

Reply

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.


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

Marsh Posté le 01-08-2011 à 13:57:37    

Joel F a écrit :

B. Eckel ou B. Garcia sont trés bien.
on evitera le site du zero et les bouquins de casteyde.


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.


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

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).


Message édité par Un Programmeur le 01-08-2011 à 17:07:41

---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 01-08-2011 à 18:53:15    

Tangrim a écrit :


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.


 
Il fait du C--

Reply

Marsh Posté le 01-08-2011 à 19:29:53    

Joel F a écrit :


 
Il fait du C--


 
http://www.cminusminus.org ?


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed