IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Livre débutant pour apprendre à utiliser pleinement le language c++


Sujet :

C++

  1. #21
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 068
    Points : 12 111
    Points
    12 111
    Par défaut
    Ma dernière lecture de K&R date d'il y a plus de 25 ans et c'était déjà un très vieux bouquin.
    La traduction française ne m'avait pas choquée, je pense que pour limiter la difficulté, la version française n'est pas un mauvais choix.
    Profitez s'en, le nombre de "bonne" traduction de bouquin d'informatique est très faible.
    Mais bon, un bouquin qui a plus de 45 ans, en informatique, c'est un peu comme le code Hammourabi, c'est plus pour les archéologues que pour les juristes.

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    La seconde édition du K&R (alias "nouveau testament") n'a que 26 ans et ses errata sont probablement plus récents.

    En revanche, même le K&R2 est limité au C90...

    'faut voir le bon côté des choses, ça veut dire qu'il pourra tester ses programmes sous Visual Studio avec
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Invité
    Invité(e)
    Par défaut
    Vu le nombre de révolutions qu'a subi le C ces 25 dernières années, le K&R devrait suffire...

    Il sera toujours possible d'apprendre les dernières normes ensuite.

  4. #24
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    Re,

    je n'ai pas encore acheté le livre, durant ce temps j'apprenais le c sur un site , je suis arrivé jusqu'à la présentation de la bibliothèque SDL, que je n'ai pas su installer mais en ayant vu la suite du cours, j'ai rapidement vu qu'apprendre plus sur ce site c'est simplement apprendre des bibliothèques plutôt que le langage lui même. Savez-vous si le K&R m'apprendra à créer des bibliothèques comme SDL ?

  5. #25
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tout seul, j'en doute, car créer une bibliothèque graphique nécessite une connaissance de l'environnement en dehors du standard (système d'exploitation, etc.).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #26
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,
    Citation Envoyé par Factorisable Voir le message
    Re,

    je n'ai pas encore acheté le livre, durant ce temps j'apprenais le c sur un site, je suis arrivé jusqu'à la présentation de la bibliothèque SDL, que je n'ai pas su installer mais en ayant vu la suite du cours, j'ai rapidement vu qu'apprendre plus sur ce site c'est simplement apprendre des bibliothèques plutôt que le langage lui même. Savez-vous si le K&R m'apprendra à créer des bibliothèques comme SDL ?
    Ou là, là... Reprenons les basiques, si tu veux bien :

    On appelle bibliothèque un ensemble de fonctionnalités qui travaillent ensembles pour nous permettre de répondre à un(e série de) besoin(s) précis.

    Avec cette définition en tête, on se rend compte qu'elle pourrait parfaitement s'appliquer au terme "application" et, de fait, il n'y a vraiment que très peu de différence entre le fait de coder une bibliothèque et celui de coder une application. Du moins, elles sont suffisamment peu nombreuses pour qu'il soit possible de les retenir en quelques heures (j'ai failli écrire minutes ici )

    Par contre, la vrai difficulté vient des derniers mots de cette définition: "pour permettre de répondre à un(e série de) besoin(s) précis".

    Car, pour pouvoir répondre à un(e série de) besoin(s) précis, il faut connaitre le "domaine d'application" de ce(s) besoin(s) ou, à défaut, avoir l'opportunité de discuter avec quelqu'un qui le connaisse suffisamment que pour nous permettre d'analyser correctement ce(s) besoin(s) afin que nous puissions le(s) comprendre, mais aussi (et surtout) en connaitre suffisamment sur la technologie qui sera utilisée pour répondre à ce(s) besoin(s).

    Et c'est à ce niveau que le développement d'une bibliothèque comme la SDL deviendra particulièrement compliqué, car le(s) besoin(s) à remplir n'est (ne sont) déjà pas forcément très facile à comprendre (je cherche en réalité un autre mot, mais, sans doute à cause de mon grand age, ma mémoire me fait parfois défaut ), mais en plus, les technologies utilisées ne vont pas se limiter au seul langage de programmation : pour qu'une telle bibliothèque puisse fonctionner, elle doit s'adresser directement au système d'exploitation, et ca, c'est encore une technologie tout à fait particulière à assimiler.

    Et encore : si, en plus, on souhaite obtenir une portabilité accrue, nous devrons sans doute nous intéresser à plusieurs systèmes d'exploitation, et donc, assimiler autant de technologies différentes de plus.

    Alors, oui, en effet K&R2 devrait (si mes souvenirs sont bons par rapport à ce que j'en ai entendu), te permettre d'en assimiler suffisamment sur la technologie "langage C" que pour te mettre en mesure de développer en C à peu près tout ce que tu veux.

    Mais un livre est forcément limité par l'état de la technologie au moment où il est paru, par l'espace disponible et donc par le nombre de cas présentés, avec comme corolaire le fait qu'il mettra surement plus l'accent sur certains points que sur d'autres. Et cette limitation fait que, de toutes manières, la seule lecture d'un (ou même de plusieurs) livre(s) ne te permettra très certainement pas de connaitre "tout sur tout" concernant le langage.

    Et donc, le seul moyen d'évoluer, c'est, à un moment ou à un autre (et de préférence le plus tôt possible), de commencer à pratiquer le langage, de manière à être confronté à un maximum de problèmes lors de l'utilisation du langage et donc, à être obligé d'explorer certaines pistes qui n'ont jamais été citées dans aucun des livres
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #27
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    Est-il possible également de programmer un os uniquement avec ce livre K&R2 et bien sûr les informations des composants renseignées par leurs fabricants ?

  8. #28
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Non.

    Non, parce que pour programmer un OS, il faut beaucoup plus que la connaissance du langage et les spécifications matérielles.
    Il faut comprendre et spécifier le fonctionnement d'un OS, et de chacune des pièces qui le composent.

    Cela dit, c'est instructif de fouiller le sujet.
    Je t'invite d'ailleurs (à terme ) à regarder du côté de Minix, qui est un très petit OS mais fonctionnel.

    Autre piste, il existe aussi le site nand2tetris.org, qui propose un cours absoluement complet.
    Ce cours commence par la porte logique NAND, et couvre toutes les couches d'abstractions jusqu'à un programme utilisateur tel qu'un jeu Tetris.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  9. #29
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    Donc si je sais comment fonctionne un os, chaque composant, que j'ai leurs informations fournies par leurs fabricants, les informations compris dans le K&R2 et uniquement ceux là avec ce que je viens de nommer me permettront de programmer un os et n'importe quel autre programme imaginable ?

  10. #30
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    En gros, oui.
    Le problème n'est pas vraiment de le programmer en C++.

    Le problème est de le programmer tout court.

    Réaliser un programme, c'est décrire à une machine, dans une forme qu'elle comprend, la méthode de résolution d'un problème.

    Il y a deux parties à cela:
    1. "dans une forme qu'elle comprend", c'est-à-dire le C++
    2. "la méthode de résolution d'un problème", ceci concerne l'algorithmie, en premier lieu, puis la conception logicielle


    Autant le premier point peut s'apprendre très vite si on a une base dans le second, autant ce dernier est un métier, qui s'apprend longuement, et toujours plus.

    Par exemple, j'ai appris l'intégralité de la syntaxe du C++ en trois jours. Cela, n'importe quel bouquin te permettra de le faire, même le "C++ précis et concis" de chez O'Reilly, qui fait une cinquantaine de pages au format poche pour la syntaxe.
    Après tout, il n'y a qu'une dizaine de types de base, une vingtaine d'opérateurs, une petite brouette de mots clés, quelques constructions complexes (fonctions, classes, templates) et c'est tout.

    Pour la bibliothèque standard, il n'y a qu'une solution, utiliser une référence en ligne, pour apprendre le contenu général et savoir où retrouver les détails.

    Par contre, aucun livre (ou presque) ne parviendra à t'expliquer comment combiner ces éléments, et les bibliothèques classiques comme boost, pour créer un programme.
    Comme je le disais plus haut, c'est un art, cela demande de l'esprit d'analyse et de la créativité, ce qui s'apprend certes, mais par la pratique, l'observation.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. [CMMi] livres recommandés pour apprendre CMMI
    Par loicmidy dans le forum Qualité
    Réponses: 4
    Dernier message: 19/10/2015, 08h57
  2. [OpenMP] Introduction to OpenMP : une série de vidéos (en anglais) pour apprendre à utiliser l'API de calcul parallèle
    Par Jerome Briot dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 4
    Dernier message: 03/02/2014, 22h04
  3. Réponses: 6
    Dernier message: 03/04/2010, 20h27
  4. tutoriel pour apprendre à utiliser jquery, ajax. . .
    Par benja507 dans le forum jQuery
    Réponses: 1
    Dernier message: 17/10/2008, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo