Forum Programmation.c++ Quel bouquin (accessible) pour un débutant ?

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
mar.
2007
Bonjour,

Cela 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.
  • # Thinking in C++

    Posté par  (site web personnel) . Évalué à 4.

    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

    Posté par  (site web personnel) . Évalué à 3.

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

    Posté par  . Évalué à 2.

    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  (site web personnel) . É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  . É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  (site web personnel) . É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  (site web personnel) . É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  . É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...

    Posté par  (site web personnel) . Évalué à 1.

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

    Posté par  . Évalué à 2.

    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

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.