Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mise à jour de la formation c++

Accéder à l'ancienne version

Sujet résolu
    28 avril 2022 à 9:59:33

    Bonjour,

    Juste pour préciser : l'équipe bénévole de modération ne peut plus bannir des membres suite à un bug du forum . OpenClassRooms devrait travailler sur le sujet, mais quand ?

    D'ici là, et par respect pour les modérateurs, il va donc falloir que les posteurs frénétiques fasse preuve de retenue pour nous éviter d'avoir à traiter des signalements à répétition ...

    D'avance merci à tous !

    • Partager sur Facebook
    • Partager sur Twitter
    Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
      28 avril 2022 à 12:51:03

      > Cela ne m'a pas empêché de conseiller plusieurs fois ZdS ici, et je continuerai à le faire, mais en complément pour aller plus loin, car je le trouve inabordable pour de vrais débutants surtout les très jeunes comme on peut en croiser ici (14/15 ans, et parfois moins...).

      Ce que tu dis est intéressant. Le ton serait trop sérieux? Pas assez ludique?

      Personnellement, j'aurai trouvé mal venu que le cours de ZdS fasse: "OK, le cours de sdz/oc n'est pas bon, on refait le meme (orienté jeux, bon enfant), mais avec un meilleur angle d'approche sur le plan technique". Même si le cours de du sdz/oc est en licence creative common, bof, AMA. Bon, ceci dit une progression qui amène à un tic-tac-toe ou puissance IV est envisageable. (ou alors c'est trop simple?)

      Personnellement, le jeune de 14/15 ans, je l'enverrai plutôt sur Python à la base. Mais c'est une autre histoire.

      -
      Edité par lmghs 28 avril 2022 à 15:58:42

      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
        28 avril 2022 à 15:40:14

        Le switch case est mieux expliqué sur OC que sur ZDS.
        • Partager sur Facebook
        • Partager sur Twitter
          28 avril 2022 à 15:57:44

          Ca me fait quand meme mal de lire "condition if" ou "condition switch". La condition c'est le "paramètre" du if...

          Après, je vois dans les commentaires du pourquoi ce n'est pas traité sur le cours de ZdS:

          > C’est juste que comme ce n’est pas absolument nécessaire et assez peu utilisé, on a préféré évité d’encombrer le débutant avec ça. Après, rien n’est fixe, on peut toujours changer des choses selon les retours.

          Effectivement, c'est critiquable.

          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            28 avril 2022 à 22:06:02

            @lmghs

            Les défauts de ZdS sont souvent le revers de ses qualités. J'ai parcouru le début des deux cours (jusqu'aux std::vector à peu près) pour comparer. Dans les deux cas, il y a une vraie volonté de prendre les choses à la base et d'employer un ton léger.

            Quelques différences que je relève :

            1) Longueur des chapitres

            Beaucoup plus longs chez ZdS que chez OC : 7 chapitres chez ZdS contre 14 chez OC pour traiter à peu près la même chose (installation des outils, hello world, variables, structures de contrôle, vector, en gros). Ce problème est encore accentué par le point 2. Il peut rapidement causer une indigestion.

            2) Technicité

            Beaucoup plus de détails techniques sur chaque thème chez ZdS.Je dirais que le cours ZdS est plus bavard, on entre plus dans les détails. On a le sentiment que les auteurs veulent vraiment approfondir un thème avant de passer au suivant. On est vite perdu quand on n'y connait rien je pense. Peut-être vaut-il mieux revenir plus tard sur un thème et procéder par couches successives ? Beaucoup plus de termes et tournures de phrase "techniques" aussi chez ZdS, ce qu' OC évite autant que possible.

            3) Richesse du vocabulaire, style

            Le vocabulaire est plus varié et plus riche chez ZdS (bonne chose de mon point de vue, même si ce peut être un obstacle pour les plus jeunes). En revanche le style est moins élégant, moins fluide, les phrases sont plus longues (mauvaise chose). En comparaison, le cours d'OC se lit presque comme un roman de gare.

            4) Fluidité

            OC alterne sans cesse entre de très petits bouts de codes et explications très courtes. Chez ZdS les explications et les codes sont plus longs, rendant l'ensemble bien moins digeste. S'aggrave quand on avance dans le cours il me semble.

            5) Choix des exemples

            OC a fait le choix d'insister sur les jeux. Le gaming est une porte d'entrée majeure chez les jeunes pour la programmation. À ne pas négliger, surtout pour un cours c++ (langage très usité dans le domaine), pour débutant (= un public jeune). Les fractions pour découvrir la POO, ça n'envoie pas vraiment du rêve.

            6) Schémas, petits dessins

            Assez fréquents chez OC, quasiment inexistants chez ZdS. Aide non négligeable pour pas mal de notions (mémoire, variable, tableau, POO...).

            7) Registre de langue

            Globalement, chez ZdS, je trouve qu'il y a souvent un décalage étrange entre le ton un peu familier et décontracté avec lequel on s'adresse au lecteur, et le niveau technique du cours. Il faut juste décider à qui on s'adresse. Au fond je pense qu'il s'agit d'un cours très solide et assez exigent, que ce ton un peu léger cache assez mal. Les personnes qui sont prêtes à s'investir à ce niveau n'ont plus besoin de ce genre de rhétorique qui encombre plus qu'autre chose. Bref, j'ai l'impression que la cible n'est pas bien définie. Il faut faire un choix.

            Pour finir, tout ceci n'est que mon avis personnel, et n'a pas la prétention d'être autre chose. Je ne veux pas cracher dans la soupe non plus. Ces considérations ont surtout une valeur vis à vis d'un public sans aucune expérience de programmation, constitué en grande partie de jeunes lycéens voire collégiens (ce que je ne suis plus depuis... un certain temps :) . Mais c'est un public qui existe et qui est en croissance. Dans le lycée où j'enseigne par exemple, on constate bien que la programmation exerce un attrait réel chez beaucoup d'élèves.
            Pour ma part, je suis bien content que ZdS existe, il m'a beaucoup servi (j'y vais encore parfois pour (re)voir un point ou un autre). Je sais que certains intervenants ici ont contribué à son élaboration.  Je vous remercie sincèrement de cela, et plus généralement de toute l'énergie, du temps et de l'expertise que vous mettez si généreusement au service des autres. 

            Bonne soirée à tous !

            -
            Edité par Umbre37 29 avril 2022 à 16:39:03

            • Partager sur Facebook
            • Partager sur Twitter
              28 avril 2022 à 22:55:57

              Umbre37 a écrit:

              Il faut juste décider à qui on s'adresse.

              A mon sens, c'est le fond du problème et c'est pour ça que je ne critique pas souvent le cours OC : les publics visés ne sont pas les mêmes.

              Certains ne sont pas là pour apprendre sérieusement le C++. Ils vont faire 2-3 programmes juste un peu plus complexes que Hello world, vont valider leur cours au lycée/fac et ne vont plus jamais faire de C++ ensuite. Et pour eux, il est clair que la qualité d'un cours, c'est osef. Et le cours d'OC leur convient très bien. Et moi aussi, ça me convient très bien.

              Le cours C++ de ZdS a été écrit par des devs C++ pour des (futurs) devs C++. Faire un cours C++ qui aurait le même public que le cours C++ d'OC, ca sert strictement à rien. Ni de mettre à jour le cours d'OC.

              On en a parlé récemment dans une discussion, le problème est que lorsque l'on répond à une nouvelle personne sur le forum, on est obligé de lui répondre comme s'il voulait apprendre sérieusement.

              EDIT : et je viens de voir que j'avais déjà expliqué ça en février. On est dans une boucle temporelle !

              Et on a tous une cuisine moderne, les compilateurs majeurs sont gratuits. Et un cours C++ ne peut pas expliquer le C++ classique et le C++ Arduino, il y a trop de différence. Ça serait une erreur pédagogique de faire un cours d'introduction au C++ qui soit correct aussi bien pour le C++ classique que le C++ Arduino. Il faut un cours de C++ classique ET un cours de C++ Arduino.

              -
              Edité par gbdivers 28 avril 2022 à 23:00:14

              • Partager sur Facebook
              • Partager sur Twitter
                28 avril 2022 à 23:12:34

                @gbdivers

                >Faire un cours C++ qui aurait le même public que le cours C++ d'OC, ça sert strictement à rien. Ni de mettre à jour le cours d'OC.

                Pas tout à fait d'accord. Débarrasser OC des plus grosses erreurs, ou améliorer un peu la forme de ZdS serait un vrai plus à mon sens.

                -
                Edité par Umbre37 28 avril 2022 à 23:17:09

                • Partager sur Facebook
                • Partager sur Twitter
                  29 avril 2022 à 0:49:58

                  @Umbre37, tu es élu volontaire pour le faire ...

                  -
                  Edité par PierrotLeFou 29 avril 2022 à 0:51:15

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    29 avril 2022 à 1:30:56

                    PierrotLeFou a écrit:

                    @Umbre37, tu es élu volontaire pour le faire ...

                    :D Je répondais simplement à la question de lmghs sur la "forme" du cours. Sur le fond, je suis loin d'avoir les compétences des pros qui fréquentent le forum.

                    -
                    Edité par Umbre37 29 avril 2022 à 1:38:42

                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 avril 2022 à 8:38:51

                      gbdivers a écrit:

                      Et on a tous une cuisine moderne, les compilateurs majeurs sont gratuits. Et un cours C++ ne peut pas expliquer le C++ classique et le C++ Arduino


                      Ce que tu appelles le C++ Arduino, c'est le C++98 avec les pointeurs nus et les tableaux en C ? Celui que pas mal de profs de fac enseignent encore en 2022 ? :lol: Celui qui a la vie dure et refuse de mourir ? :lol:

                      Pour moi l'Arduino c'est du C ! Je ne savais même pas que l'Arduino supportait le C++ !

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                        29 avril 2022 à 9:19:09

                        Fvirtman a écrit:

                        Pour moi l'Arduino c'est du C ! Je ne savais même pas que l'Arduino supportait le C++ !

                        Pour la petite anecdote, le "langage Arduino" c'est du C++, ni plus ni moins, et pas du C++98, tu peux utiliser la dernière norme du langage supportée par le compilateur (qui est GCC dans le tooling de base, mais tu pourrais en utiliser un autre, on fait bien tourner du Rust sur Arduino).

                        La seule différence entre le C++ classique et le C++ Arduino, c'est le tooling (qui désactive les exceptions par défaut par exemple) et la bibliothèque standard qui est absente (car pas portée) et remplacée par la bibliothèque standard Arduino (c'est elle qui implémente main() et appelle setup() et loop() derrière).

                        On retrouve des classes assez souvent sur Arduino, et même des templates pour améliorer les performances.

                        Un bon cours de C++ n'aura aucun mal à donner des bases solides utilisables sur Arduino, de fait.

                        -
                        Edité par Lynix 29 avril 2022 à 9:23:43

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)

                          29 avril 2022 à 10:13:28

                          Lynix a écrit:

                          la bibliothèque standard qui est absente

                          (...)

                          n'aura aucun mal à donner des bases solides utilisables sur Arduino

                          Bases qui ne devra parler ni de std::string (il faut utiliser String sur Arduino), de std::vector (Vector à la place), pas de std::array, pas de fonction main() (mais des fonctions setup() et loop()), etc.

                          De plus, la façon de penser un code et les besoins sont complètement différents.

                          Il reste quoi à un cours de C++ qui voudrait enseigner aussi bien pour faire du C++ "standard" et du C++ Arduino ? La partie purement syntaxique.

                          Donc non, un cours qui aurait la prétention d'enseigner le C++ aussi bien "standard" que Arduino serait un mauvais cours aussi bien pour le C++ "standard" que Arduino.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 avril 2022 à 10:25:27

                            Attention je n'ai pas dit que le cours en question serait un cours d'Arduino valide, mais que les bases seraient utilisables sur Arduino (pas la même chose). Il resterait ensuite à la personne à lire un cours d'intro à l'Arduino expliquant les différences avec le C++ classique (autrement dit, le tooling et la lib standard), ce qui est nettement plus rapide une fois qu'on a les bases.

                            Je pars du principe que la syntaxe du C++ (et toutes ses particularités) sont de loin plus complexes à apprendre que l'utilisation de la bibliothèque standard, si l'apprenant sait se servir de `std::string` et qu'on lui explique sur Arduino il faut juste utiliser `String` à la place (par exemple), ça sera rapide (les subtilités entre les deux étant mineures).

                            En clair tout ce que je dis c'est que les bases ne sont pas perdues, loin de là, et que le plus gros de l'apprentissage se fait sur la syntaxe/les règles sémantiques du C++ (les mêmes sur Arduino) et pas sur la lib standard.

                            -
                            Edité par Lynix 29 avril 2022 à 10:28:06

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)

                            Mise à jour de la formation c++

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown