Bon après il ne faut pas oublié que c'est un site pour débutant à la base (il me semble)
En effet. Mais il y a une différence entre expliquer comment ca fonctionne d'un point de vue utilisateur (donc abordable pour un débutant) et comment ça fonctionne en interne. Le fait que ce tuto soit lu par des débutants m'encourage a penser qu'une partie de ce genre serait hautement importante (Ne serait-ce que pour éviter la foule de sujet parlant "d'undefined references").
Si on veut éviter les undefined references, on peut aussi écrire les cours pour éviter, pour les débuts, d'avoir à recourir à la compilation séparée. C'est pas qu'il ne faut pas en parler un jour, c'est que c'est pas forcément le moment, et qu'il y a des choses plus urgentes.
Souvent elle n'est abordée que "pour le principe", le découpage en plusieurs modules étant assez foireux, faute de ligne directrice pour guider ce découpage. L'argument de réutilisabilité tombe à plat, parce qu'on n'a pas envie, à ce niveau là, d'expliquer comme réutiliser dans un projet une bibliothèque définie dans un autre.
Sinon, le problème c'est que
1) on veut utiliser du graphisme pour avoir des exemples "marrants" (pas faire des produits de polynomes dans le corps des quaternions).
2) qu'évidemment, ça ne fait pas partie du langage.
Donc, il faut installer/utiliser une bibliothèque.
Le "comment on fait une bibliothèque", c'est intéressant, mais bon, il y a un principe pédagogique simple : avoir déjà utilisé avant de réaliser soi-même. Ca fait déjà assez de problèmes. C'est pour ça qu'on donne pour commencer des programmes "hello world" à regarder, et pas la liste des instructions avec la question "comment on fait un programme" ?
TL;DR. Je suis tout à fait d'accord pour faire évoluer le tuto (après maintes années à faire forcing, ça a enfin payé !). Je veux bien faire la partie sur la SDL2 et aider pour la rédaction du reste.
Je viens donner mon feedback car je viens de terminer le livre de M. Nebra, il y a une petite semaine.
Je pense qu'il faudrait plus approfondir le chapitre sur les pointeurs, et je le vois sur le forum, c'est un sujet qui suscite beaucoup de questions. Par exemple, passer des pointeurs en paramètre dans des fonctions, ou bien y créer des structures et les retourner.
J'ai lu un peu le fil de la discussion, et mettre à jour le chapitre sur la SDL est tout à fait logique, vu que c'est une màj du cours... Mais pas forcément parce que le livre de M. Nebra se base sur la SDL 1.2. J'ai moi-même rencontré ce problème, et j'ai envie de dire "qui cherche, trouve". Quand on programme, il faut chercher, lire de la documentation, etc. Il ne faut pas oublire que le chapitre sur la SDL se situe vers la fin du livre, l'apprenti programmeur n'est plus vraiment un zéro, et il va devoir voler de ses propres ailes... Pour info, il suffit de taper les messages d'erreur sur google, et on a une piste... qui m'a d'ailleurs amenée à installer SDL 1.2, pour bien suivre le cours.
Concernant les différentes normes du langage C, je pense également qu'il faudrait y consacrer un bref chapitre, notamment pour les histoires de compilations, les for(int i; ; ), etc. Mais juste un petit clin d’œil, histoire d'informer le lecteur que d'autres normes existent, qu'elles évoluent et que les exemples trouvés sur la toile peuvent ne pas fonctionner selon la configuration.
Dans l'ensemble je pense que le livre de M. Nebra est très bien, il s’adresse aux débutants sur un ton ludique, pas la peine d'y intégrer trop de notions, ce n'est que le début du parcourt, et ce serait bête de décourager certains. Les personnes qui ont pour vocation de devenir informaticien se rabattront sur d'autres ouvrages .
Un dernier point, l'utilisation du debugger ! Je ne pense pas que ça a été abordé dans le cours, alors que ça devrait être obligatoire, surtout quand on écrit tout le code dans un fichier (ou dans la fonction main par exemple), et que le code fait facilement 150+ lignes.
J'ai lu un peu le fil de la discussion, et mettre à jour le chapitre sur la SDL est tout à fait logique, vu que c'est une màj du cours... Mais pas forcément parce que le livre de M. Nebra se base sur la SDL 1.2. J'ai moi-même rencontré ce problème, et j'ai envie de dire "qui cherche, trouve". Quand on programme, il faut chercher, lire de la documentation, etc. Il ne faut pas oublire que le chapitre sur la SDL se situe vers la fin du livre, l'apprenti programmeur n'est plus vraiment un zéro, et il va devoir voler de ses propres ailes...
Oui, mais non, le cours est censé être à jour, donc apprendre à utiliser une bibliothèque à jour (la SDL 2 est sortie depuis plus de trois ans). Oui, le lecteur devrait chercher, lire la documentation, etc. Mais dans ce cas, autant supprimer la partie SDL du tutoriel si elle ne doit pas être mise à jour (or c’est généralement elle qui attire le lecteur).
Je n'ai pas dit qu'il ne doit pas rester à jour, j'ai même dit que c'était logique .
J'ai juste fait la différence entre un problème d'édition (date, donc à mettre à jour; quand est-ce que le cours de M. Nebra a été écrit ?), et le manque de travail de recherche de certains, qui viennent poser les mêmes questions sur le forum. (comme dans tous les forums d'ailleurs)
Alors que c'est une qualité nécessaire pour être bon programmeur (je pense).
Je n'ai pas dit qu'il ne doit pas rester à jour, j'ai même dit que c'était logique .
Je dois avoir mal compris ce que signifie « J'ai lu un peu le fil de la discussion, et mettre à jour le chapitre sur la SDL est tout à fait logique, vu que c'est une màj du cours... Mais pas forcément parce que le livre de M. Nebra se base sur la SDL 1.2. ». Ton « Mais pas forcément » signifie quoi alors.
et le manque de travail de recherche de certains, qui viennent poser les mêmes questions sur le forum. (comme dans tous les forums d'ailleurs)
Alors que c'est une qualité nécessaire pour être bon programmeur (je pense).
Je dois avoir mal compris ce que signifie « J'ai lu un peu le fil de la discussion, et mettre à jour le chapitre sur la SDL est tout à fait logique, vu que c'est une màj du cours... Mais pas forcément parce que le livre de M. Nebra se base sur la SDL 1.2. ». Ton « Mais pas forcément » signifie quoi alors.
Ça veut dire que la SDL 1.2 fonctionne toujours et qu'elle est téléchargeable sur le site. On peut toujours apprendre avec de vieux outils, dès fois ils fonctionnent même très bien .
Même si dans ce cas-ci, ça me semble logique de mettre à jour ce chapitre à la SDL 2, car elle est sortie en 2013 et est surement stable, d'autant plus que ça pose problème à certains lors de l'installation.
[HS] Tout comme, je vais surement attendre quelques mois avant d'acheter le nouveau CPU Ryzen de chez AMD , même s'il est déjà très performant et a un bon rapport qualité/prix, il présente encore des problèmes de compatibilité; encore quelques problèmes de jeunesse à régler. [/HS]
First solve the problem : Cours plus à jour. Il faut le refaire. Then, write the code : Go ahead PicoDev, c'est pas ma citation
bah, si c'était un problème que je devais résoudre
J'ai bien essayé de lancer un peu la discussion … ma petite brique ; mais le ciment doit venir «d'en haut». Sans volonté supérieure de changer la priorité et de mettre des ressources personne ne pourra rien y faire à moins de rediriger les pauvres apprenants vers des cours plus à jour.
Mais il faut se rendre à l'évidence, le C c'est pas une priorité pour openclassrooms, ce qui n'est pas grave en soi ; d'ailleurs Mat Nebra l'a bien annoncé il y a 2 bons mois :
Mateo21 a écrit:
Fvirtman a écrit:
A mon avis, Mathieu Nebra a fait son tuto de C il y a plus de 10 ans, et comme il a depuis monté sa boite, il fait davantage de la gestion ou autre, et je pense même qu'il na pas retouché au langage C depuis des années.
Donc a mon avis, s'il y a une évolution du tuto en C, ça ne viendra pas de lui.
Mathieu Nebra ne fait effectivement plus de C depuis un moment, et manque un peu de temps pour mettre à jour son cours (mais ça ne l'empêche pas d'en écrire de nouveaux, tiens, en voici un sur Bitcoin ;o).
En fait, on va avoir quelqu'un qui va travailler sur la mise à jour des cours de C et de C++ très bientôt (on l'a identifié). Donc la mise à jour va avoir lieu dans les mois qui viennent normalement.
Depuis .... plus de nouvelles ...
First solve the problem. Then, write the code. ~ John Johnson
Le plus flippant est que cela semble annoncer non seulement un cours qui non seulement sera fait par un pro en C et en C++ pédagogue de surcroît, avec évidemment une priorité C++, mais aussi une élaboration sans jamais demander un avis quelconque aux bénévoles qui font vivre le site …
First solve the problem. Then, write the code. ~ John Johnson
Le plus drôle c'est que leur partenariat avec Eyrolles ait entraîné que la personne qui refond le cours de C++ soit Delannoy. La boucle serait salement bouclée .
Je ne voit pas pourquoi tu a peur PicoDev, le procédurale et l'orienté objet on à peu prêt la même logique de fonctionnement et en plus il y a beaucoup de fonction qui s'écrivent pareil, et bon les problèmes des tutoriels se sera pas le rédacteur qui en subiras les séquelles mais les bénévole du forum, donc pourquoi demander leur avis ?
Au pire on peut demander des nouvelles au modérateur du forum C !
J'espère, vu que C++ n'est pas OO mais multi-paradigme (même si à la lumière de la définition d'OO, c'est à se demander s'il existe vraiment des langages OO).
J'espère, vu que C++ n'est pas OO mais multi-paradigme (même si à la lumière de la définition d'OO, c'est à se demander s'il existe vraiment des langages OO).
Yep, mais pour moi faire du procédurale avec du C++, c'est comme faire toute un programme java avec uniquement du static, c'est pour ça que j'ai tendance à parler de langage OO, on va dire que c'est une erreur de langage de ma part (pas taper, s'il vous plais)
Yep, mais pour moi faire du procédurale avec du C++, c'est comme faire toute un programme java avec uniquement du static, ...
Oui mais justement non . En C++, si tu te bornes au procédural, tu as encore :
la possibilité de créer des types abstraits (sans passer à l'OO : class != OO),
tout le loisir d'utiliser du code SL-like (voir le header <algorithm>) qui n'est pas OO pour deux ronds,
tout le meta-programming template.
Et si tu ne te bornes pas au procédural, mais sans utiliser l'OO, tu peux bosser dans un style proche du fonctionnel également (qui bien utilisé peut décrocher de sacré gains de performances). L'OO n'est vraiment pas central en C++.
Je pense que le vrai problème c'est qu'il ne faut plus laisser (oui je suis volontairement assez catégorique) le droit aux débutant d'apprendre le C comme premier langage.
La plupart du temps on fonce vers le C parsque tout le monde en parle avec nostalgie ou que les écoles apprennent encore ça en premier, mais quand on voit des questions du genre "J'ai 15 ans je maîtrise parfaitement le C parsque j'ai lu le cours du site, et je voulais savoir comment faire un jeu Android" ce fait peur / de la peine.
Autant partir directement sur un langage plus haut niveau et partir sur de bonne bases, sans se prendre la tête avec des problématiques bas niveau qui ne sont intéressantes que pour les professionnels concernés (cf. Ksass qui va vouloir se prendre la tête sur de l'optimisation aux oignons - attention ce n'est pas une critique c'est grâce à des gens comme toi que l'informatique avance!).
En tant que débutant on a pas assez de recul pour vraiment penser à ça, et en tant que pro, on a pas le temps alors on utilise un langage plus haut niveau en espérant que des gens plus pointu ont bien fait le boulot. Chacun son domaine.
Tout ça pour dire que plutôt que de mettre à jour le cours de C, autant mettre un gros message rouge qui dit qu'il n'est plus à jour et qu'il est préférable de passer sur des technos de notre millénaire (encore une fois, ce message n'est valide que pour le publique d'OC, à savoir les débutants).
PS : Oui j'en veut à mon école d'avoir fait C -> C++ (enfin si on peut appeler ça C++) -> Java. Attendez de voir la tête d'un code de "C++" fait par un mec qui a appris le C deux mois avant... Et ça n'apporte rien à part embrouiller l'esprit de l'étudiant.
- Edité par arno21 19 avril 2017 à 16:06:08
Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !
Je ne voit pas pourquoi tu a peur PicoDev, le procédurale et l'orienté objet on à peu prêt la même logique de fonctionnement et en plus il y a beaucoup de fonction qui s'écrivent pareil, et bon les problèmes des tutoriels se sera pas le rédacteur qui en subiras les séquelles mais les bénévole du forum, donc pourquoi demander leur avis ?
Au pire on peut demander des nouvelles au modérateur du forum C !
(Oui mon message est ironique)
- Edité par florent m il y a environ 1 heure
C et C++ sont deux langages différents mais extrêmement proche ; la consanguinité ne fait jamais de bien …
Il faut avoir un sacré bagage à la fois en C et en C++ pour bien repérer ce qui les différencie profondément, il faut en plus être sacrément pédagogue pour faire un bon cours C et un bon cours C++, et il faut vraiment être sûr de soi (ou fou? ou vouloir bacler?) pour ne pas demander de l'aide aux bénévoles qui traînent par ici ; de l'aide, on s'entend bien, dans le sens quelles seraient les erreurs à ne pas commettre par rapport à l'existant, quelles sont les questions les plus récurrentes, etc … C'était un peu le but de ce fil, qui, avouons-le, a finit par s'éteindre.
En espérant lourdement me tromper, j'ai un mauvais présentiment. Enfin, en même temps il y a certainement d'autres ressources vers lesquelles nous pourrons diriger les âmes perdues, même si elles ne sont pas estampillées OCR.
First solve the problem. Then, write the code. ~ John Johnson
Je pense que le vrai problème c'est qu'il ne faut plus laisser (oui je suis volontairement assez catégorique) le droit aux débutant d'apprendre le C comme premier langage.
La plupart du temps on fonce vers le C parsque tout le monde en parle avec nostalgie ou que les écoles apprennent encore ça en premier, mais quand on voit des questions du genre "J'ai 15 ans je maîtrise parfaitement le C parsque j'ai lu le cours du site, et je voulais savoir comment faire un jeu Android" ce fait peur / de la peine.
J'aurais préféré ne pas répondre à la bêtise humaine mais bon,je suis un peu poussé. Il s'agit là d'une caricature,si je peux me le permettre, donc pour résumer vite fais tes pensées, tu voudrais interdire aux personnes qui veulent apprendre le langage C âgée de moins de 15 comme premier langage ?? Tu trouves beaucoup plus intelligent de les orienter vers d'autres langages (qui certains à mon humble avis ne sont pas de grandes utilités) qui sont de "moins bas niveau"... Lol... Déjà j'en connais pas beaucoup qui sont comme cette exemple absolument pas du tout fondée puisque (Oui oui !) pour tous les jeunes programmeurs que je connais,il y a beaucoup de recherche avant de se laisser tête baissé vers un langage. Pour la majorité de ceux que je connais, ils s'orientent selon ce qu'ils veulent faire, ils utilisent tous simplement le langage le plus conseillé et dans la plupart des cas, le langage C est conseillé (étant le langage le plus utilisé du monde) par les personnes qui le pratiquent donc logiquement parlant c'est pas les jeunes qu'on doit blâmer mais plutôt les personnes qui leur conseille de l'apprendre. D'après moi ton avis est une insanité, étant moi même jeune et moi même ayant commencé le langage C comme tous premier langage et je trouve personnellement que ce langage est assez simple (tant que sa reste sur console,puisque je rappel je parle du langage et non des bibliothèques) avec tous les tutoriels que j'ai vu sur différents sites plus ou moins complets me permettant au moins d'avoir les bases voir un peu plus. Bref, je trouve bien meilleur d'orienter ces jeunes vers d'autres langages quand ils vous demandent de développer sur mobile que de leurs interdire d'apprendre.
Je cite: Tout ça pour dire que plutôt que de mettre à jour le cours de C, autant mettre un gros message rouge qui dit qu'il n'est plus à jour et qu'il est préférable de passer sur des technos de notre millénaire (encore une fois, ce message n'est valide que pour le publique d'OC, à savoir les débutants).
Sur ce point je suis plus ou moins d'accord sachant qu'effectivement,il y a beaucoup de beau langage récent qui son pas trop connu, je peux prendre l'exemple du Node.js puisque j'ai eus des retour assez positif de ces utilisateur.
Et en passant par la je trouve que commencer avec le langage C c'est super, comme on dit, qui peut le plus peut le moins.
Je pense que le vrai problème c'est qu'il ne faut plus laisser (oui je suis volontairement assez catégorique) le droit aux débutant d'apprendre le C comme premier langage.
La plupart du temps on fonce vers le C parsque tout le monde en parle avec nostalgie ou que les écoles apprennent encore ça en premier, mais quand on voit des questions du genre "J'ai 15 ans je maîtrise parfaitement le C parsque j'ai lu le cours du site, et je voulais savoir comment faire un jeu Android" ce fait peur / de la peine.
J'aurais préféré ne pas répondre à la bêtise humaine mais bon,je suis un peu poussé. Il s'agit là d'une caricature,si je peux me le permettre, donc pour résumer vite fais tes pensées, tu voudrais interdire aux personnes qui veulent apprendre le langage C âgée de moins de 15 comme premier langage ?? Tu trouves beaucoup plus intelligent de les orienter vers d'autres langages (qui certains à mon humble avis ne sont pas de grandes utilités) qui sont de "moins bas niveau"... Lol...
je sens une pointe de susceptibilité
Il est clair que tout le monde (jeune ou moins jeune) ne peut pas apprendre le C et être productif. Et je pense tout comme Arno21 que c'est plus une question de background que d'autre chose. C'est comme si tu tais en train de dire : «comme un élève entrant en sixième sait lire alors on va commencer par lui faire découvrir la littérature avec un bon Sartre ou un bon Balzac bien corsé.». Il n'y a rien de mieux pour dégoûter ...
Donc oui, il y a des djeuns de 15 ans pour qui apprendre le C se fera simplement et naturellement, et oui il y en aura d'autres qui même sans avoir 15 ans ne pourront jamais y arriver. Le problème est l'image que C se traîne ... et oui pour certains il sera plus facile de faire du Python.
XxEric a écrit:
Pour la majorité de ceux que je connais, ils s'orientent selon ce qu'ils veulent faire, ils utilisent tous simplement le langage le plus conseillé et dans la plupart des cas, le langage C est conseillé (étant le langage le plus utilisé du monde) par les personnes qui le pratiquent donc logiquement parlant c'est pas les jeunes qu'on doit blâmer mais plutôt les personnes qui leur conseille de l'apprendre.
Pour certaines des personnes qui viennent poser leurs questions ce n'est pas le cas ...
Quant au «langage le plus utilisé du monde» c'est difficile à vérifier, et certainement faux.
XxEric a écrit:
D'après moi ton avis est une insanité, étant moi même jeune et moi même ayant commencé le langage C comme tous premier langage et je trouve personnellement que ce langage est assez simple (tant que sa reste sur console,puisque je rappel je parle du langage et non des bibliothèques) avec tous les tutoriels que j'ai vu sur différents sites plus ou moins complets me permettant au moins d'avoir les bases voir un peu plus.
Ah ... je comprends la susceptibilité tu es un de ces jeunes ^_^ (sans offense, juste une pointe d'humour). En passant, le C c'est à la fois le langage et la bibliothèque standard … enfin quand cela a du sens, car le C est indissociable de la plateforme quand on en parle.
XxEric a écrit:
. Bref, je trouve bien meilleur d'orienter ces jeunes vers d'autres langages quand ils vous demandent de développer sur mobile que de leurs interdire d'apprendre.
Disons que je n'ai pas compris Arno dans un sens d'interdiction mais de réalisme. Et je ne le comprends que trop bien lorsqu'il dit :
arno21 a écrit:
La plupart du temps on fonce vers le C parsque tout le monde en parle avec nostalgie ou que les écoles apprennent encore ça en premier, mais quand on voit des questions du genre "J'ai 15 ans je maîtrise parfaitement le C parsque j'ai lu le cours du site, et je voulais savoir comment faire un jeu Android" ce fait peur / de la peine.
Je le rejoins sur la peine, mais bon c'est vrai également dans d'autres domaines et c'est souvent un comportement normal que l'on constate avant la vingtaine Toujours sans offense ...
First solve the problem. Then, write the code. ~ John Johnson
Je pense que le vrai problème c'est qu'il ne faut plus laisser (oui je suis volontairement assez catégorique) le droit aux débutant d'apprendre le C comme premier langage.
La plupart du temps on fonce vers le C parsque tout le monde en parle avec nostalgie ou que les écoles apprennent encore ça en premier, mais quand on voit des questions du genre "J'ai 15 ans je maîtrise parfaitement le C parsque j'ai lu le cours du site, et je voulais savoir comment faire un jeu Android" ce fait peur / de la peine.
J'aurais préféré ne pas répondre à la bêtise humaine mais bon,je suis un peu poussé. Il s'agit là d'une caricature,si je peux me le permettre, donc pour résumer vite fais tes pensées, tu voudrais interdire aux personnes qui veulent apprendre le langage C âgée de moins de 15 comme premier langage ?? Tu trouves beaucoup plus intelligent de les orienter vers d'autres langages (qui certains à mon humble avis ne sont pas de grandes utilités) qui sont de "moins bas niveau"... Lol...
je sens une pointe de susceptibilité Il est clair que tout le monde (jeune ou moins jeune) ne peut pas apprendre le C et être productif. Et je pense tout comme Arno21 que c'est plus une question de background que d'autre chose. C'est comme si tu tais en train de dire : «comme un élève entrant en sixième sait lire alors on va commencer par lui faire découvrir la littérature avec un bon Sartre ou un bon Balzac bien corsé.». Il n'y a rien de mieux pour dégoûter ...
Donc oui, il y a des djeuns de 15 ans pour qui apprendre le C se fera simplement et naturellement, et oui il y en aura d'autres qui même sans avoir 15 ans ne pourront jamais y arriver. Le problème est l'image que C se traîne ... et oui pour certains il sera plus facile de faire du Python.
Mauvaise exemple, la c'est lui qui a décidé et si c'est trop dur il partira tous seul sans continuer si vraiment sa lui déplaît, a moins qu'il soit sadomasochiste, la on ouvre un nouveau volet que je préfère fermer. Et d'après les nombreux site qui vérifie en gros tous ce que concerne les langages( Les jeux,les forums qui en parlent et tous) il serait premier,bon Après je sais pas trop s'il fait ce fier.
Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !