Rédaction tutoriel C

(auto)recrutement

a marqué ce sujet comme résolu.

@lapin03: Tu as le droit de lire la conversation avant d’intervenir. De plus dans ce topic on parle de tuto C, si tu veux faire un tuto sur autre chose et créer un sujet pour en parler je t’en prie !

+3 -1

Je crois pas que pour le moment ce soit le C le language le plus apprécier par les débutants. Pour ma part je crois que l'on devrait commencé par C# ou Java.

lapin03

Rassure toi, avoir un tuto C n'est un préalable pour en rédiger d'autres :) , tu peux démarrer une discussion sur les cours C# et Java qui sont surement aussi intéressants.

+1 -0

Bonjour,

Je ne veux empêcher personne de rédiger de cours, mais ne sera-ce pas un gâchis d'effort ? J'ai cru comprendre que la politique de ZdS pour le moment est de rapatrier le contenu existant sur OC, et il y existe déjà deux cours de C. J'ai lu dans la discussion que le tutoriel de Mathieu Nebra ne vous intéressait pas en l'état ; soit, vous avez dit pourquoi et je vois moi-même des critiques qu'on pourrait lui faire. En revanche, je n'ai pas vu vos raisons de ne pas reprendre le second, celui dont dont la version la plus récente se trouve actuellement sur PdP (comme simbilou et Davidbrcz l'ont fait remarquer). Ce second tuto a justement été créé par des membres du SdZ d'alors insatisfaits du cours officiel, afin d'en proposer une alternative. Il n'est d'ailleurs pas terminé, et toute aide serait la bienvenue. Est-ce que vous pourriez préciser ce qui ne vous convient pas dans ce cours ? Ce que le nouveau tuto que vous envisagez pourrait apporter par rapport aux écrits existants, quelle serait sa spécificité (une approche différente, etc.) qui le rendrait intéressant ?

Pour éviter les malentendus, je ne viens pas en rival, ce sont juste les questions qui me sont venues et que j'estime importantes pour la bonne route du projet. Ceci dit, en lisant les derniers messages, je commence à avoir une réponse à ma seconde question.

D'ailleurs, je suis indiciblement d'accord avec simbilou en ce qui concerne le domaine d'application d'un cours de C. Il serait grand-temps qu'on arrête d'enseigner le C aux débutants comme un langage généraliste.

+1 -0

Point de vue "staff", pas de soucis pour importer l'autre, même si il faut le faire à la main, à condition que :

  • On demande l'autorisation aux auteurs de ce cours
  • qu'à la validation l'url vers pdp soit indiqué pour pouvoir mettre le ref-canonical
  • que les auteurs d'origines soient cités à defaut de le mettre a jour eux même.

Par contre ce n'est pas la politique que d'importer, on préférerai du contenu neuf, mais on autorise de le faire quand la licence le permet.

Après, Maëlan, je pense que le problème restera le même. Si j'ai bien compris ils ne souhaitent pas faire un tuto orienté débutant ce qui semble être tout de même le cas du tuto en question.

Est-ce que vous pourriez préciser ce qui ne vous convient pas dans ce cours ?

On parlait bien du cours de Mathieu Nebra ! Moi en tout cas :) .

Je pense que tu parles du second projet de reprise qui a été entrepris par des membres (que je connais aussi), et là oui, on peut très bien contacter les auteurs et importer du contenu.

Si le plan que j'ai proposé plus haut fait l'unanimité, on peut partir là dessus, et cela ne voudra pas dire qu'il est à rédiger forcément, les parties peuvent être importées d'ailleurs et actualisées s'il le faut.

Pour être plus constructifs, qui est partant ? Si le plan vous parait améliorable proposez en un nouveau et on en discute ;) .

+0 -0

Je ne suis suis pas convaincu par la position de Loptr, enfin ça m’emballe pas quoi. Si ce genre de projet vois le jour tant mieux, c’est du contenu tout à fait valable, mais ce n’est pas quelque chose que je trouve intéressant ni d’un point de vu informatique, ni d’un point de vu pédagogique.

Je m’explique : faire des applications pour PC de bureau en C est anachronique. Je respecte énormément le travail des gens de GTK+, et j’encourage volontiers les gens à utiliser ce framework, mais pas en C. Je ne vois pas grand intérêt à faire du C pour une application généraliste, il y a des langages tellement mieux pour ça. Enseigner à un débutant des choses en opposition par rapport à l’utilisation du langage me semble contre-productif.

simbilou

C'est vrai que je ne choisirais pas non plus le C pour ce genre de tache, je partirai au moins vers un langage objet. L’idée c’était plutôt de trouver des libs utilisables et intéressantes en C.

Personnellement je l'utilise pour du très spécifique, là ou il n'y pas d'autre possibilité. Je pense plus particulièrement à l'embarquer ou à X11/Wayland (Linux) pour la programmation d'un Window Manager.

Mais bon je vois mal un débutant faire ce genre de chose. A vrai dire je ne vois vraiment pas ce qu'il pourrait faire de justifié avec du C qui ne soit pas faisable avec un autre langage. C'est pour ça que je pensais plus à des libs "Fun".

Pour écrire un tuto juste pour expliquer comment utiliser une lib c'est un peu dommage effectivement, je le vois plutôt comme un cas d'application intéressant pour le cours mais pas pour apprendre aux gens à utiliser les libs.

uknow

C'est vrai qu’après réflexion ce serait plus sage. Je me rappelle que sur le Sdz certains pensaient que la SDL faisait partie du C. Ils ne comprenaient pas souvent la notions de Lib. Autant leur apprendre la notions et les laisser s'en servir par eux même.

D'ailleurs, je suis indiciblement d'accord avec simbilou en ce qui concerne le domaine d'application d'un cours de C. Il serait grand-temps qu'on arrête d'enseigner le C aux débutants comme un langage généraliste.

Maëlan

Totalement d'accord !


Donc oui j'abandonne l’idée, si il y a des tutos sur des libs C, il faut bien les séparer du tuto "Langage C".

+1 -0

Est-ce que vous pourriez préciser ce qui ne vous convient pas dans ce cours ?

On parlait bien du cours de Mathieu Nebra ! Moi en tout cas :) .

uknow

Je l'avais compris, je m'étonnais simplement que vous n'ayez pas discuté davantage du cours d'informaticienzero, paraze & cie pour expliquer ce qui ne vous plaisait pas.

Je pense que tu parles du second projet de reprise qui a été entrepris par des membres (que je connais aussi) […].

C'est bien ça (je me doutais que tu connaissais le projet vu que ça s'est passé sur le forum C ; d'ailleurs, tu n'y avais pas contribué ?). :)

Pour être plus constructifs, qui est partant ? Si le plan vous parait améliorable proposez en un nouveau et on en discute ;) .

Je suivrai probablement ce projet, même si je n'y participerai pas directement. Pour le reste, je comprend un peu mieux vos intentions.

Par contre ce n'est pas la politique que d'importer, on préférerai du contenu neuf, mais on autorise de le faire quand la licence le permet.

Kje

Au temps pour moi. Petite digression : il m'avait semblé à un moment que vous prévoyiez d'importer tous les cours du SdZ (ou la majorité). J'avais mal compris, ou bien ça a évolué depuis ?

+0 -0

Au temps pour moi. Petite digression : il m'avait semblé à un moment que vous prévoyiez d'importer tous les cours du SdZ (ou la majorité). J'avais mal compris, ou bien ça a évolué depuis ?

En fait on veut pas faire du systématique : tout le contenu du Sdz n'est pas bon a importé. Il y en a qui ne sont plus à jour, d'autres qui relevent plus du truc et astuces, d'autres dont malgré la validation le contenu est contestable… Donc il y a déjà un premier tri là dedans pour décider ce qui est récupérable et ce qui ne l'est pas.

Ensuite même si les licence sont en CC, on est pas des sauvages. On essai donc de contacter les auteurs pour leur en parler. Dans l'idéal ils viennent ici et récupèrent leurs tutos. C'est le plus avantageux pour nous, ça nous évite de devoir le maintenir et l'auteur est directement crédité. Il peut aussi le mettre a jour. Mais ce n'est pas toujours le cas. Certains auteurs (en fait que Mathieu Nebra pour le moment) nous ont demandé de ne pas importer leurs cours, on respecte. D'autres sont ok pour l'import mais ne veulent pas s'en occuper. Faut donc l'attaché au compte dédié, modifié l'intro pour créditer l'auteur et la source du tuto et faire une passe dessus pour checker que tout le contenu est bien passé.

Bref on a prévu de pouvoir récupérer une partie du contenu mais rien de 100% automatique. Et tout ceci prend du temps (sans compter que loi de Murphy oblige, la validation a péter le jour de la sortie public).

simbilou, en réponse à ton message - et surtout à ton TLDR - tu ne te dis pas des fois que la ligne pédagogique dont tu parles aurait permis au site du zéro d'avoir une audience et une notoriété qui font ce qu'il est aujourd'hui, à savoir un site de référence ? …

Je comprends ton point de vue en tant que puriste (ne serait-ce qu'un petit peu) mais tu connais les objectifs du site : proposer la connaissance au plus grand nombre, sans trop de conservateurs ajoutés. :P

Je te sors un argument complètement au pif : imagine un jeunôt veut apprendre à créer un jeu-vidéo, il préférera quel tutoriel entre celui que vous vous mettez en tête d'écrire et celui de M@teo21 ? … C'est comme ça que je vois les choses.

J'ai appris le C grâce à M@teo21 et je ne l'ai jamais nié. L'idéal, selon moi, c'est de montrer la voie, rien que ça, et soit le lecteur est suffisamment passionné pour se documenter derrière, soit il a fait ce qu'il avait à faire et il passe à autre chose. Après tout, on n'est jamais aussi mieux servi que par soi-même ! ^^

C'est bien ça (je me doutais que tu connaissais le projet vu que ça s'est passé sur le forum C ; d'ailleurs, tu n'y avais pas contribué ?). :)

Non pas directement en tout cas, j'avais une discussion privée avec les rédacteurs à qui je faisais des remontées.

J'ambitionne de voir un jour un cours qui couvre des sujets connexes au langage, y compris la conception, l'architecture, la méthodologie, les principe de compilation… appliqués au C bien entendu. tu vois ce que je veux dire ?

+1 -0

Je pense, mais je ne connais pas grand-chose à ces choses-là.

D'accord Kje, merci pour les éclaircissements. Encore une chose : j'ai vu qu'il y a un outil intégré pour l'import du format .tuto, et c'est très bien, mais ne peut-on pas importer du Markdown brut (pour reprendre du contenu de PdP par exemple) ou un format utilisé par ZdS pour décrire un tutoriel (pour la rédaction hors-ligne) ? Désolé d'avance si la réponse a déjà été donnée ailleurs (et j'arrête le HS après, promis).

+0 -0

En fait l'import actuel est foireux, ça permet d'importer un .tuto avec du markdown dedans.

Mais c'est connu et des que la v1 sort officiellement et que l'on est plus en freeze de feature, c'est probablement un truc qui va arriver très vite. Le format sera sûrement le même que celui exporté (un tar.gz avec les fichiers en markdown de chaque section + un manifest en JSON)

Je crois pas que pour le moment ce soit le C le language le plus apprécier par les débutants. Pour ma part je crois que l'on devrait commencé par C# ou Java.

lapin03

Rassure toi, avoir un tuto C n'est un préalable pour en rédiger d'autres :) , tu peux démarrer une discussion sur les cours C# et Java qui sont surement aussi intéressants.

uknow

Héhé, on dit la même chose mais tu es tellement plus diplomate.


Est-ce que vous pourriez préciser ce qui ne vous convient pas dans ce cours ?

Il me va très bien ce cours, pour moi il est évident qu’il sera importé. Je connais suffisamment les auteurs pour savoir qu’il vont traîner dans les environs de toute façon. C’est pour ça qu’un cours C second langage ou premier langage mais avec déjà un peu de bouteille est intéressant.


simbilou, en réponse à ton message - et surtout à ton TLDR - tu ne te dis pas des fois que la ligne pédagogique dont tu parles aurait permis au site du zéro d'avoir une audience et une notoriété qui font ce qu'il est aujourd'hui, à savoir un site de référence ? …

Oui, et je n’est pas changé d’avis. Je dit juste que je ne pense pas que réécrire un cours grand débutant sur le C soit d’un grand intérêt, c’est un langage qu’il faut de toute façon connaître mais l’apprendre en premier langage est de moins en moins pertinent. On peut profiter de cet état de fait pour proposer un cours plus ardus sur C, tout en proposant des cours grand débutants pour d’autres langages (e.g. Python, Java).

+0 -0

Bonsoir.

Permettez-moi de m'intéresser à votre discussion passionnante sur le C & ses tutoriels.
Le problème que vous semblez avoir à l'heure actuelle (sauf erreur de ma part) concerne la qualité du tutoriel recherché.

De ce que je lis, vous hésitez entre importer des tutoriels sur le C déjà existants, ou bien en réécrire un. Dans les deux cas, le problème du niveau et de l'intérêt sur les tutoriels semble être de taille. Certains voudraient qu'il soit accessible à tous, d'autres qu'il explore plus d'aspects du langage et de la programmation.

Je vous propose une idée toute simple : pourquoi ne pas faire un tutoriel sur la programmation en général ?
Faire un cours sur les notions de procédures, branchements, fonctions, structures de données, algorithmes ; bonnes pratiques, outils, point de vue à adopter ; différents paradigmes, histoire de la programmation, philosophie… le tout de manière générale et adaptée pour un véritable débutant, avec du pseudo-code et tout.

Ainsi, un débutant se familiarise dans un premier temps avec les aspects de la programmation en général, et de notre côté, nous n'avons plus besoin de présenter niaisement les choses en pensant obstinément que le lecteur ne comprend pas encore la notion introduite.
Il est déjà familier avec les notions fondamentales, et nous pouvons ainsi lui présenter simplement comment cette notion se représente dans tel langage (dans notre cas, le C), en faisant des rappels sur la notion si nécessaire.

Pour la gestion de la mémoire à la charge du développeur en C, les différentes bibliothèques, du bon usage du compilateur… Cela devient de la matière que l'on peut aborder plus en détails dans le tutoriel, si le cours sur la programmation en général est suffisamment bien conçu et prépare à peu près pas trop mal le débutant à toutes sortes de bizarreries sauvages surgissant du monde de l'informatique.

Enfin, un dernier avantage est que cela ne s'appliquera pas qu'au tutoriel sur le C.
Dans la majeure partie des tutoriels sur les langages de programmation, on pourra retirer la partie débutant total.


Je ne sais pas ce que vous en pensez.
Si cela devait être concrétisé, sachez que vous avez tout mon soutien (aussi bien pour un cours sur la programmation en général que sur la rédaction d'un tutoriel C), et ma participation aussi si nécessaire.

Je ne saurai pas trop, par contre, quel pourrait être le plan d'un cours sur la programmation en général.
Comment, de la manière la plus abstraite possible, présenter la programmation à une personne débutante ?

Je vous propose une idée toute simple : pourquoi ne pas faire un tutoriel sur la programmation en général ?
Faire un cours sur les notions de procédures, branchements, fonctions, structures de données, algorithmes ; bonnes pratiques, outils, point de vue à adopter ; différents paradigmes, histoire de la programmation, philosophie… le tout de manière générale et adaptée pour un véritable débutant, avec du pseudo-code et tout.

Cela ne me parait pas réaliste. As-tu déjà essayé d’expliquer quoique ce soit à quelqu’un d’autre ? Ce que tu propose n’est pas viable, personne n’est capable d’absorber autant de chose sans application directe.

Ainsi, un débutant se familiarise dans un premier temps avec les aspects de la programmation en général, et de notre côté, nous n'avons plus besoin de présenter niaisement les choses en pensant obstinément que le lecteur ne comprend pas encore la notion introduite.

Même remarque, tu cherche à factoriser les choses pour gagner en élégance. Malheureusement ça ne marche pas comme ça, ce n’est pas en présentant les choses de manière la plus concise possible que l’on gagne en efficacité pédagogiquement parlant. Il y a décidément du vrai dans l’adage : « la répétition est la base de l’enseignement ».

+0 -0

Cela ne me parait pas réaliste. As-tu déjà essayé d’expliquer quoique ce soit à quelqu’un d’autre ? Ce que tu propose n’est pas viable, personne n’est capable d’absorber autant de chose sans application directe.

simbilou

C'est vrai.
Uniquement du théorique, ça a ses mauvais côtés.

Mais on peut très bien référencer les tutoriels entre eux.
Laisser la partie théorique dans un seul cours, et dans un tutoriel comme pour le C, référencer la partie théorique, et y aborder la partie pratique.
C'est de toute manière inévitable : pour s'habituer à une chose, il faut s'y confronter encore et encore… ;)

C'est comme les manuels d'exercices du lycée : des pages de cours, et des exercices d'application.

Enfin, sur ce que tu sembles souligner.

+0 -0

Le C est en 2014 un langage de niche (embarque, logiciel bas niveau, glue universelle). Il ne devrait être enseigne qu'a de gens qui savent ce qu'ils en feront. Personne ne devrait plus s’initier a la programmation avec le C.

Donc refaire un N-ieme tutoriel sur le C pour débutant, je ne pense pas que ca ait une réelle plus-value par rapport à la masse d’écrits qui existe déjà. Je suis plus de l'avis de simbilou de faire quelque chose dans l'optique dans cours Deep C

+1 -1

Je vous propose une idée toute simple : pourquoi ne pas faire un tutoriel sur la programmation en général ?
Faire un cours sur les notions de procédures, branchements, fonctions, structures de données, algorithmes ; bonnes pratiques, outils, point de vue à adopter ; différents paradigmes, histoire de la programmation, philosophie… le tout de manière générale et adaptée pour un véritable débutant, avec du pseudo-code et tout.

Cela ne me parait pas réaliste. As-tu déjà essayé d’expliquer quoique ce soit à quelqu’un d’autre ? Ce que tu propose n’est pas viable, personne n’est capable d’absorber autant de chose sans application directe.

Ainsi, un débutant se familiarise dans un premier temps avec les aspects de la programmation en général, et de notre côté, nous n'avons plus besoin de présenter niaisement les choses en pensant obstinément que le lecteur ne comprend pas encore la notion introduite.

Même remarque, tu cherche à factoriser les choses pour gagner en élégance. Malheureusement ça ne marche pas comme ça, ce n’est pas en présentant les choses de manière la plus concise possible que l’on gagne en efficacité pédagogiquement parlant. Il y a décidément du vrai dans l’adage : « la répétition est la base de l’enseignement ».

simbilou

Je ne suis pas du tout d'accord avec toi sur ce point de vue. Ce dont parlait lesmon était de faire un tutoriel sur le langage algorithmique plutôt que sur un langage en particulier. L'idée je trouve est pas mauvaise mais il faut voir comment l'appliquer.

Déjà, s'abstraire d'un langage permet d'éviter de nombreux écueils pour un débutant : - On s'affranchit des problèmes physiques liés à un ordinateur - On peut contrôler facilement son niveau d'abstraction - La compréhension d'un algorithme dans un langage en particulier sera généralement plus difficile à comprendre car il utilisera des fonctions/particularités propre au langage

D'ailleurs, un tel enseignement est fait en faculté. Pour ma part, j'ai eu le droit aux cours/TD en langage algorithmique puis le TP dans un langage informatique en particulier.

Ensuite, l'intérêt d'un tel tutoriel s'il existe, c'est de faire une référence commune pour d'autres tutoriels algorithmique.

Si par exemple je veux faire un tutoriel sur l'algorithme de Dijkstra, je n'ai plus besoin de fournir un code C mais un code algorithmique. Et l'utilisateur qui voudra l'appliquer pourra utiliser le langage de son choix.

Donc de ce point de vue là, on a probablement à gagner car cela permettrait de factoriser un certains nombres de tutoriels. Tu ne fais plus trois chapitres sur les structures de contrôles, mais un seul qui permet d'apprendre la syntaxe et peut-être de voir des particularités liées au langage.

D'un point de vue pédagogique, encore une fois, ça permet de s'abstraire des contraintes physiques de la machine. Tu ne dis plus qu'un int est un entier compris dans un intervalle, mais que c'est juste un entier. Tu te soucis pas de la gestion mémoire de tes données etc… Donc pour moi c'est un gros + 1

Donc finalement le problème qui reste c'est comment le lecteur peut pratiquer ces nouvelles connaissances lorsqu'il se retrouve face, pour la première fois, à apprendre un langage informatique ? Je pense, que là, il faut revenir à un langage informatique, ce qui me parait logique puisqu'il va devoir appliquer ses connaissances sur une machine réelle et non plus "abstraite".

Enfin, je conclurais que non, je ne pense pas que ce niveau d'abstraction soit trop élevé pour un lecteur lambda. On commence à voir l'informatique se développer au lycée et ce qu'ils apprennent, si j'ai bien suivi c'est un peu d'algorithmique justement. Enfin cela permettrait à chose de mon point de vue, c'est de faire comprendre qu'il n'y a pas un langage meilleur qu'un autre, mais que chaque langage à ses propres avantages/inconvénients , notamment car je pense qu'un tutoriel pourra se concentrer d'avantage sur les fonctionnalités propres au langage. Sur le feu Sdz, ce n'était pas un message qui était envoyé directement au lecteur vu qu'on retrouvait assez souvent des messages du genre Non mais le C c'est mieux que le Java trololol.


  1. Oui je sais que python n'a pas ces problèmes non plus, mais il en à d'autres, comme la récursivité.] 

Je ne suis pas du tout d'accord avec toi sur ce point de vue. Ce dont parlait lesmon était de faire un tutoriel sur le langage algorithmique plutôt que sur un langage en particulier. L'idée je trouve est pas mauvaise mais il faut voir comment l'appliquer.

Il y a déjà Guiloooo qui travail là dessus il me semble

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte