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 :

Apprendre le C avant le C++ ou inversement


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2022
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Apprendre le C avant le C++ ou inversement
    Bonjour,

    m’apprêtant a remonter en fac d'info et apprenant actuellement le c++ je me pose la question de si je ne devrais pas plutot apprendre le C en premier sachant que la fac enseigne le c et non pas le c++.

    Cependant bien evidemment il est stupide de juste vouloir faire une chose pareille sans justification et je me demandais si apprendre le c en premier avait un avantage ou si apprendre le c++ et passer en c durant les cours a la fac n'aurais pas de grande difference ?

    Je cherche surtout a optimiser ma facon d'apprendre pour avoir du temps pour pratiquer.

    Merci bonne journee !

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 10 406
    Points : 28 290
    Points
    28 290
    Billets dans le blog
    1
    Par défaut
    Bonjour

    C'est une question intéressante mais qui dépend de beaucoup de facteurs
    • ton goût pour ces deux langages
    • l'utilité du C ou du C++ dans tes projets
    • le temps que tu auras


    Au début, le C++ a été créé comme se voulant le successeur du C. Il partait du C et le complétait en y rajoutant de l'objet. Mais depuis il a bien évolué et n'a désormais que de très faibles ressemblances avec le C. Toutefois le C++ connait quand-même le C. Autrement dit, tu peux très bien écrire un programme en C pur, le compilateur C++ saura le lire et le compiler. En C++ le C est maintenant vu comme un sous-ensemble de ce langage.

    Mon avis, c'est que faire du C++ te donnera des réflexes POO (modélisation, héritage). Et faire du C te montrera comment ça marche en bas de tout ça (les pointeurs; la gestion de la mémoire). Mais apprendre le C++ ne t'apprendra pas le C (il est désormais trop haut niveau par rapport au C et tout ce qui fait la force du C (les pointeurs) est désormais masqué en C++. Donc si tu veux apprendre le C, te faudra vraiment l'apprendre parce qu'il y a des choses en C qu'on n'apprend pas en C++. Simplement la syntaxe étant similaire, tu ne seras pas dépaysé.

    Il n'y a pas de meilleur langage. Il n'y a même pas de langage supérieur à un autre. Il n'y a que des langages en adéquations (ou pas) avec des buts particuliers (Herbert Mayer)

    PS: si tu aimes le C++ je te conseillerais alors d'aller jeter un œil à Python, m'est avis que tu pourrais aimer plus encore.
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    4 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 4 428
    Points : 13 463
    Points
    13 463
    Billets dans le blog
    1
    Par défaut
    Pour moi, ça n'a aucun intérêt.

    S'il y a bien un socle commun de syntaxe et de fonctionnement, ces langages s'utilisent de manière très différentes. Si les premières heures de C et de C++ peuvent ressembler, les heures suivantes vont vite être différentes.

    Si tu veux apprendre le C++, apprend-le, prend de bonnes habitudes, ne t'enterre pas dans des embrouilles du C que tu ne verras (presque) jamais en C++.

    PS :

    Citation Envoyé par Sve@r Voir le message
    Toutefois le C++ connait quand-même le C. Autrement dit, tu peux très bien écrire un programme en C pur, le compilateur C++ saura le lire et le compiler. En C++ le C est maintenant vu comme un sous-ensemble de ce langage.
    Notons toutefois qu'avec le temps, ceci n'est plus vrai. Il y a maintenant des incompatibilités entre C et C++, et que ce sous-ensemble n'est pas un sous-ensemble strict.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2020
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : juillet 2020
    Messages : 309
    Points : 1 150
    Points
    1 150
    Par défaut
    Citation Envoyé par lepetitdev Voir le message
    [...]
    je me pose la question de si je ne devrais pas plutot apprendre le C en premier sachant que la fac enseigne le c et non pas le c++.
    [...]
    Bonjour,
    C et C++ sont deux langages différents. Si tu veux t'avancer sachant que tu auras des cours de C alors fait du C, il n'y a pas de questions existentielles à se poser.
    Mais plus important que le langage … regarde si tu vas aussi avoir des cours d'algo (par exemple) ou de modélisation ; il te sera plus utile de savoir programmer que de savoir programmer en C (ou C++).

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 961
    Points : 32 075
    Points
    32 075
    Billets dans le blog
    4
    Par défaut
    Imo, si c'est juste pour la fac, tu peux très bien apprendre le C++ si c'est ce que tu préfères et traiter le C de la fac comme un sous-ensemble sans grand souci.
    Le niveau de C demandé ne devrait pas être grandiose.
    Tu vas mettre des malloc et pointeurs au lieu de new/unique_ptr et références, et basta.
    Et tu vas vite te rendre compte qu'en fait le C++ et les containers (vector, list, ...) et capsules RAII (unique_ptr, ...) sont vraiment sympas.
    C'est en tous cas ce que j'avais fait en prépa où ils enseignaient le C alors que je jouais plutôt en C++ chez moi (mais pré-C++11), et c'est passé sans aucun souci.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2022
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci pour vos réponses, j'ai commandé le livre "the C programming language 2nd edition" et je le reçois normalement demain donc je pense que je vais commencer par du C et je passerais ensuite au c++ puis j'avancerai sur du java/C# pour la fac

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 227
    Points
    41 227
    Par défaut
    Le gros problème de "C puis C++", c'est que pour apprendre C++ tu dois désapprendre beaucoup de "bonnes pratiques" du C.
    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.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2022
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    C'est problématique à ce point là ? Après je ne cherche pas a me rendre la vie facile, si ça me permet de justement apprendre à faire la différences entre les languages ça peut aider ?

  9. #9
    Membre éprouvé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2020
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : juillet 2020
    Messages : 309
    Points : 1 150
    Points
    1 150
    Par défaut
    Je ne conseillerais pas le K&R pour apprendre le C … c'est un ouvrage ancien qui couvre C89.
    Mais bon ptêt qu'en fac en France on a toujours 10 ans d'avance sur nos 40 ans de retard.

    Il y a d'autres références comme :



    Mais plus important, il est souvent préférable d'apprendre à programmer que d'apprendre à coder … mais cela est une autre discussion.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2022
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par WhiteCrow Voir le message
    Mais plus important, il est souvent préférable d'apprendre à programmer que d'apprendre à coder … mais cela est une autre discussion.
    Y'a t-il un sous forum sur lequel ce sujet est discute, je suis curieux de connaitre la difference ? Si ca peut m'aider dans mon apprentissage

  11. #11
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    5 158
    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 158
    Points : 16 997
    Points
    16 997
    Par défaut
    Je ne sais pas, mais pour ne pas laisser ce point en suspens, voici une piste de réflexion.

    En général, on a un besoin, une chose à faire, et on écrit un programme pour que l'ordinateur la fasse
    On sait ce qu'on a, ce qu'on veut: ce sont des états. Par exemple, tel fichier est écrit dans tel format, contient telles données, etc
    L'ordinateur, lui, doit savoir ce qu'il doit faire. Ce sont des actions.

    Tout l'enjeu, c'est de trouver une méthode pour passer de la situation initiale à l'objectif. Ca, c'est programmer.
    Expliquer cette méthode dans un langage, c'est coder.
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faut il apprendre le C avant le C++ ?
    Par Yukiho dans le forum Débuter
    Réponses: 51
    Dernier message: 13/10/2014, 21h13
  2. Réponses: 124
    Dernier message: 30/08/2010, 20h16
  3. Avant d'apprendre un langage
    Par Kapha dans le forum Débuter
    Réponses: 2
    Dernier message: 03/11/2009, 13h24
  4. Apprendre Java avant C++ ?
    Par _LVEB_ dans le forum Langage
    Réponses: 15
    Dernier message: 23/01/2007, 23h07

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