Retourner aux forums || Retourner au forum Programmation.c++
Programmation.c++ : Quel bouquin (accessible) pour un débutant ?
Posté par GCN (Jabber id, page perso, ) le 12 mars 2007Cela fait quelques-temps que j'aimerais m'essayer à la programmation en C++ (afin de développer des petites applis en Qt) mais je n'ai jamais touché à ce langage pour le moment.
J'ai déjà utilisé des langages tels que: bash (peut-on appeler cela un langage ? :), PHP, Python, etc... Je sais donc ce que sont des variables, des boucles et compagnie mais je n'ai jamais rien développé en utilisant des langages compilés pour le moment.
Sur le site de Trolltech, ils font référence à ce livre http://www.amazon.com/gp/product/0131872494/ref=ase_trolltec(...) qui semble visiblement être traduit en français http://www.amazon.fr/Qt4-C%2B%2B-Programmation-dinterfaces-1(...) mais je ne suis pas sûr que ce livre aborde les bases du C++ en plus de Qt4 (qui doit être un sujet assez vaste pour ne pas en rajouter une couche j'imagine).
On m'a parlé de ce pavé de 1100 pages http://www.amazon.fr/langage-C%2B%2B-%C3%A9dition-revue-corr(...) mais je ne sais pas si un tel ouvrage est adapté aux débutants (en lisant les 2 commentaires d'acheteurs sur Amazon on dirait bien que non).
Bref...
Sachant que j'ai déjà tripoté d'autres langages de programmation (ceux cités plus haut entre autres) que me conseilleriez-vous comme bouquin pour apprendre les bases du C++ avant de pouvoir embrayer sur un bouquin comme celui sur Qt4 ?
Merci d'avance pour vos avis.
> Lire le message (10 commentaires, moyenne: 2,3).
Thinking in C++
Je te conseille Thinking in C++ de Bruce Eckel qui m'a beaucoup appris.
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
(par contre je ne sais pas si ca existe en français)
La référence
Le bouquin d'apprentissage du C++ qui a la meilleure presse (méritée) est Accelerated C++ de Koenig et Moe, publié chez Addisson-Wesley, non traduit.
La 4e édition du bouquin de de Lippman et Lajoie (C++ Primer) est très bien parail-t-il aussi (je ne l'ai pa lu pour juger celui là par contre). Moo a collaboré à la 4e édition qui n'a pas encore été traduite à ma connaissance.
Le Thinking in C++ est très bien, mais un tout petit peu vieillot par endroits. Il reste 100 fois meilleur à beaucoup d'autres bouquins qui trainent sur le marché.
Le bouquin de Stroustrup est très bien. Mais il s'agit d'un bouquin de référence. Il convient plus difficilement à l'apprentissage -- enfin, cela dépend des personnes.
The méga-cours de C++
La référence ultime pour moi et un certain nombre d'autres personnes, ça a toujours été le cours de Christian Casteyde.
http://casteyde.christian.free.fr/cpp/cours/index.html
http://casteyde.christian.free.fr/cpp/cours/online/book1.htm(...)
C'est la version 1.40.6, c'est en GFDL et en français, en plus.
La version 2 est disponible sur son site moyennant une participation dérisoire (entre 1 et 3 euros).
Par contre :
J'ai déjà utilisé des langages tels que: bash (peut-on appeler cela un langage ? :) ...
Oui.
... PHP, Python, etc... Je sais donc ce que sont des variables, des boucles et compagnie mais je n'ai jamais rien développé en utilisant des langages compilés pour le moment.
Il y a des gens qui affirment qu'une personne complètement ab initio peut démarrer directement par le C++. Il y en a beaucoup d'autres qui pensent que si c'est vrai techniquement, c'est très loin d'être une bonne idée. Je fais partie de ceux-là.
Si ton but est de te famillariser avec les langages compilés et générer des binaires (enfin, des exécutables en langage machine), commence plutôt par le C. Tu pourras plus facilement, plus rapidement en faire le tour et maîtriser ses notions. Ensuite, tu pourras t'étendre vers le C++ qui en reprend toutes les fonctionnalités.
Par contre, il faudra te passer du paradigme objet, et apprendre à concevoir tes projets de telle manière qu'il ne soient pas dépendants (au moins dans les concepts généraux) des facilités du langage.
-
[^]Re: The méga-cours de C++
Posté par Luc Hermitte (page perso, ) le 12/03/2007 à 14:07. (lien). Évalué à 1.Bouaif pour la v1.xx du cours de Christian Casteyde -- je n'ai jamais lu la v2
Sinon, je fais parti de ceux qui considère que le C est trop bas niveau dans un premier temps. Le C++ permet de mettre l'accent sur des notions plus importantes que les formats de printf et les pointeurs au second chapitre. Le tout est de retarder ces choses du C jusqu'au moment opportun.
(je conseille le C++ avant le C pour les mêmes raisons que je conseillerai d'autres langages comme le Pascal ou l'Ada avant)
Sujet débatu et archi-débatu
http://developpez.net/forums/showthread.php?t=327
http://developpez.net/forums/showthread.php?t=1489
(entre autres)-
[^]Re: The méga-cours de C++
Posté par Obsidian () le 12/03/2007 à 22:04. (lien). Évalué à 2.Sinon, je fais parti de ceux qui considère que le C est trop bas niveau dans un premier temps. Le C++ permet de mettre l'accent sur des notions plus importantes que les formats de printf et les pointeurs au second chapitre.
L'idée est précisément de voir les langages dans l'ordre de leur apparition car chaque génération s'appuie sur la précédente et les modifications apportées servent justement à lever ses limitations. Commencer par du haut niveau, c'est valable quand on débute complètement. Ce n'est plus tout-à-fait le cas ici.
Le tout est de retarder ces choses du C jusqu'au moment opportun.
Le langage C n'est pas « un mauvais moment qu'il faudra passer », encore heureux. Si un programmeur a ce genre de considération, c'est qu'il ne maîtrise pas ce qu'il fait, ni la manière dont sa machine fonctionne.
Le C++ est la voie royale en ce sens, parce que le langage privilégie l'exhaustivité à la simplicité et c'est pour ça que je l'apprécie, outre le fait qu'il soit conçu pour écrire des binaires. Par contre, faire du C++ light, je trouve que pour le coup, c'est vraiment idiot. C'est un coup à perdre le débutant pour de bon sans lui faire profiter des bases.-
[^]Re: The méga-cours de C++
Posté par Luc Hermitte (page perso, ) le 13/03/2007 à 16:20. (lien). Évalué à 1.L'idée est précisément de voir les langages dans l'ordre de leur apparition car chaque génération s'appuie sur la précédente et les modifications apportées servent justement à lever ses limitations
Et pourquoi on ne voit pas le B avant alors ? Et quantité d'autres choses d'ailleurs ? http://lambda-the-ultimate.org/node/7
Passer au C comme premier langage compilé peut rebuter plus d'une personne.
Le langage C n'est pas « un mauvais moment qu'il faudra passer »
Je n'ai pas dit ça (ni ici, ni dans les liens que j'avais donnés!). J'ai dit que des aspects primordiaux du C se tapaient l'inscruste trop tôt dans l'apprentissage et le parasitaient. L'apprentissage (non historique) du C++ permet de voir ces aspects une fois que les bases sont consolidées.
Nul besoin de montrer trop de choses d'un coup, dont des mauvaises habitudes qu'il est toujours dur de perdre.
NB: je n'ai jamais dit qu'il fallait commencer par l'OO. Je n'ai jamais dit qu'il ne faut pas voir les pointeurs. Je dit juste qu'il faut voir les choses dans l'ordre qui permet leur meilleure assimilation.
Je renvois au passage à l'article de Stroustrup dans sa FAQ (sur le pourquoi le C++ doit être enseigné comme un langage à part entière). A méditer.
-
-
-
[^]Re: The méga-cours de C++
Posté par GCN (Jabber id, page perso, ) le 12/03/2007 à 14:14. (lien). Évalué à 5.On m'avait déjà parlé du cours C/C++ de Christian Casteyde. Vu le prix très faible de la v2, je viens de me fendre d'un SMS pour en faire son acquisition.
L'imprimante est actuellement en train de tourner (parce que rien ne vaudra jamais un support papier pour ce genre de choses :).
Je vais déjà voir si ça me convient et, si tel n'est pas le cas, je n'aurais pas beaucoup de regrets vu le prix payé.
Je garde les autres messages sous le coude, ça peut m'être utile pour la suite.
Merci à tous pour avoir pris de votre temps pour me répondre.-
[^]Re: The méga-cours de C++
Posté par Obsidian () le 12/03/2007 à 16:34. (lien). Évalué à 2.Je te conseille d'examiner à la fois la version 1.40.6 et la version 2, au moins dans un premier temps, car à en croire l'introduction, les deux approches ne sont pas les mêmes, et il se peut que l'une d'entre elles te convienne plus que l'autre.
-
Bosser le modèle php en premier...
Si tu veux vraiment te lancer dans le c++, je te conseille vivement de bosser le modèle objet de php qui est pas mal fait.
Au moins pour maîtriser les principes suivant :
- interface
- factory
- singleton
- visibilité (private, public, protected)
- héritage (il n'existe que le simple en php)
- conception objet
- faire un peu de gtk/qt avec pour comprendre comment marche la conception d'ui avec.
un peu HS...
Si le but est de développer des applis QT et que tu as déjà fait du python... il y a pyqt !
un petit tutoriel qui m'a bien aidé pour commencer : http://dosimple.ch/articles/Python-PyQt/
Guilhelm
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c++



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.