Rédaction tutoriel C

(auto)recrutement

a marqué ce sujet comme résolu.

[…] Alors pour le mec qui apprends le C et qui ne fera jamais d'info dans un contexte pro osef, il fait de la merde dans son coin.

T'y vas un peu fort là :/ j'ai débuté comme ça, j'ai fait de la m**** et j'en fais peut-être encore. Et malgré mon modeste niveau, je peux avoir le courage de dire que certains pourront témoigner et dire que je ne fais pas non plus que de la merde dans mon coin. Du moins je ne pense pas…

Mais pour un mec qui apprends le C a 15 ans et qui fera de la prog plus tard, ca demandera beaucoup de temps et d'efforts pour oublier. Tout ca car il a appris avec un mauvais tutoriel entre 2 séances de jerk-off

J'ai commencé le C à 16 ans. Je n'ai rien "oublié", j'ai juste fait des erreurs et j'ai appris de ces erreurs. Le tutoriel de M@teo21 restait un très bon tremplin cela dit.

Mais sur le sujet qui nous concerne (le C), donner envie en promettant JV et GUI, c'est un mensonge éhonté. Ca sera long et chiant d'arriver à un résultat sûrement inférieur à ce que tu pourrais faire avec du python/rubis/ what ever…

C'est sûr. Il est toujours plus facile de scripter que de programmer. Mais je ne vois pas en quoi c'est un mensonge éhonté. Le tutoriel de M@teo21 a offert un TP sur la création d'un sokoban. C'est tout de même un excellent résultat quand il disait "attention, ça demande quand même beaucoup de travail". Tu ne penses pas ? Encore une fois, je ne vois pas où est le mensonge et je ne l'ai vu nulle part mentir au point que nous prenions l'arbre pour la forêt.

+1 -0

A @Taure : Un JV c'est long et pénible. Faire un JV en C c'est encore plus long et pénible. Ca relève du sadomasochisme. Pour la GUI, seul GTK est sérieusement utilisable et offre une philosophie bien plus proche du C++ que de la philosophie C classique.

Et oui, sûrement inférieur. Ya pas que le visuel qui compte. A résultats identiques, tu auras beaucoup plus de travail en C car la complexité intrinsèque du langage rajoute des problèmes dont on se passerait bien…

S'il faut 40K ligne de code la ou autre langage s'en sort avec 10k, et qu'il y aucune raison pour avoir utilisé le premier langage, alors oui je considère le résultat comme inférieur.

@Geo. J'utilise oublier dans un sens un peu large : apprendre les bonnes pratiques, c'est oublier les mauvaises. L'exemple du sokoban est un projet jouet jetable :que quelques ressources, aucune GUI, colision minimalistes. Essaye de faire un zelda like en C, tu vas déjà beaucoup plus galérer (en supposant que tu as toutes ressources graphiques que tu veux)

+0 -0

Le truc est qu'il faut commencer par parler d'algo dès le début pour faire des trucs simples: moyenne d'un tableau, lecture d'informations sur la console, …

lmghs

D'accord, mais cela reste des algorithmes simples. Je ne pense pas que cela soit vraiment un problème de présenter un algorithme de conversion « suite de caractères -> entier » en même temps qu'une vérification d'un dépassement de capacité.

Taurre

Cela reste des algos simples certes. Mais si on les noie dans des détails histoire de donner du code correct, au final ce sont les élèves que l'on noie (je vous renvoie à l'article de Stroustrup sur le C++ en tant que premier langage où il montre deux codes de tri de lignes dans un fichier)

suite à la ponte de mes billets sur la Programmation par Contrat, […]

lmghs

Ah ! J'ai loupé ces publications, je peux avoir un lien, cela m'intéresse beaucoup ? Sinon, je suis d'accord avec toi pour ce qui est de la répartition des tests à réaliser, quoique l'on pourrait traduire ces obligations par des appels à la macro assert(), ce qui permet de détecter aisément les transgressions.

Taurre

Bien sûr, c'est ici: http://luchermitte.github.io/blog/2014/05/24/programmation-par-contrat-un-peu-de-theorie/ Le 3e article est sur github. Je veux réécrire la partie sur les outils et l'analyse formelle avant de montrer des snippets de code. Et aussi j'ai d'autres liens sympas à rajouter.

[…] Alors pour le mec qui apprends le C et qui ne fera jamais d'info dans un contexte pro osef, il fait de la merde dans son coin.

T'y vas un peu fort là :/ j'ai débuté comme ça, j'ai fait de la m**** et j'en fais peut-être encore. Et malgré mon modeste niveau, je peux avoir le courage de dire que certains pourront témoigner et dire que je ne fais pas non plus que de la merde dans mon coin. Du moins je ne pense pas…

Ge0

La différence est que tu as été suffisamment motivé pour persister, voire pour corriger les mauvaises pratiques que tu as apprises. Tout le monde ne se remet pas en question.

Dire simple est un adjectif de jugement, cela n'appartient qu'à vous, ne généralisez pas…

En outre nous expérimentés, sommes mal placé, pour juger de la simplicité à résoudre un problème, à gérer une syntaxe difficile ou même pire à lire de l'anglais dans une documentation ou une norme.

Vous ne pourrez pas deviner, ce que le lecteur pense, ce que le lecteur comprend ou même si le lecteur souhaitera ou non appliquer vos exercices.

Réaliser un jeu ? Ouais super ! Mais faut-il déjà le modéliser, le préparer… rapport avec le langage ? On parle bien de syntaxe, rassurez moi ? On travaille sur un projet qu'à partir du moment où on a déjà des bases solides et des bonnes habitudes dans un langage, on ne s'y lance pas tête baissée avec motivation, en ne sachant pas un mot clé du langage, et ça quelque soit le langage.

Ayez les pieds sur terre, vous n'avez plus rien à voir avec le débutant, alors s'il vous plaît ne parlez pas à leur place.

Quand j'ai commencé la programmation, j'ai pris python pour sa syntaxe simple, avec des bouquins et des petits exercices de niveau 6ème… Inverser une chaîne, copier une chaîne, faire une fonction somme, … des trucs beubeu, mais qui permettent doucement de s'adapter à la syntaxe.

Pour l'algorithmique, seul le niveau théorique permettra de résoudre un problème, il n'y a pas de magie possible. C'est comme si on demandait à une calculatrice de résoudre votre problème de mathématiques, faut pas rêver !

@Geo. J'utilise oublier dans un sens un peu large : apprendre les bonnes pratiques, c'est oublier les mauvaises. L'exemple du sokoban est un projet jouet jetable :que quelques ressources, aucune GUI, colision minimalistes. Essaye de faire un zelda like en C, tu vas déjà beaucoup plus galérer (en supposant que tu as toutes ressources graphiques que tu veux)

Forcément, mais ça n'est pas lié au C selon moi. C'est d'ordre algorithmique. Et je me suis déjà cassé les dents, en effet…

La différence est que tu as été suffisamment motivé pour persister, voire pour corriger les mauvaises pratiques que tu as apprises. Tout le monde ne se remet pas en question.

On n'est jamais mieux servi que par soi-même, j'ai envie de dire. J'ai sûrement d'autres mauvaises pratiques Quelqu'un me reproche d'indenter avec des tabulations, par exemple, même si c'est un autre débat que d'utiliser scanf() à tort.... Et pour l'histoire de l'indentation, justement, c'est là que la remise de question entre en jeu comme tu dis…

Et oui, sûrement inférieur. Ya pas que le visuel qui compte. A résultats identiques, tu auras beaucoup plus de travail en C car la complexité intrinsèque du langage rajoute des problèmes dont on se passerait bien…

Davidbrcz

L'argument de la complexité intrinsèque du langage est peu pertinent si tu cites le C++ comme exemple face au C…

S'il faut 40K ligne de code la ou autre langage s'en sort avec 10k, et qu'il y aucune raison pour avoir utilisé le premier langage, alors oui je considère le résultat comme inférieur.

Davidbrcz

Pourtant, le nombre de lignes de code n'a absolument rien à voir avec la qualité ou les performances d'un projet. Tout au plus cela joue-t-il un rôle sur la maintenance de celui-ci et encore, cela dépend comment les deux projets ont été agencés et organisés.

Cela reste des algos simples certes. Mais si on les noie dans des détails histoire de donner du code correct, au final ce sont les élèves que l'on noie (je vous renvoie à l'article de Stroustrup sur le C++ en tant que premier langage où il montre deux codes de tri de lignes dans un fichier).

lmghs

Hmm… Effectivement, l'équilibre risque d'être difficile à atteindre d'autant que, comme le souligne fred1599, je perds peut-être de vue le niveau de difficultés de tels exemples maintenant que je connaît bien le C.

Bien sûr, c'est ici: http://luchermitte.github.io/blog/2014/05/24/programmation-par-contrat-un-peu-de-theorie/ Le 3e article est sur github. Je veux réécrire la partie sur les outils et l'analyse formelle avant de montrer des snippets de code. Et aussi j'ai d'autres liens sympas à rajouter.

lmghs

Merci, je vais regarder cela. ;)

+1 -0

Et oui, sûrement inférieur. Ya pas que le visuel qui compte. A résultats identiques, tu auras beaucoup plus de travail en C car la complexité intrinsèque du langage rajoute des problèmes dont on se passerait bien…

Davidbrcz

L'argument de la complexité intrinsèque du langage est peu pertinent si tu cites le C++ comme exemple face au C…

Taurre

C est simpliste. Mais écrire un code robuste et maintenable en C++ est plus simple. Oui c'est un paradoxe à première vue. C'est la différence entre des plaques à gaz et de casseroles d'un côté et une cuisine totalement équipée de l'autre. Va faire une pizza avec juste une poêle. On va y arriver, mais on sent bien qu'il y a moyen de faire plus simple. C'est sûr qu'avant de maitriser tout ce qu'il y a dans la cuisine ça va prendre du temps. Mais avant d'y arriver il y a plein de choses qui seront vite apprises et bien plus simples qu'avec juste les plaques et ce qui va dessus.

J'en parlais: voir le premier lien dans http://www.stroustrup.com/bs_faq.html#prerequisite

Pourtant, le nombre de lignes de code n'a absolument rien à voir avec la qualité ou les performances d'un projet. Tout au plus cela joue-t-il un rôle sur la maintenance de celui-ci et encore, cela dépend comment les deux projets ont été agencés et organisés.

Le nombre de ligne n'est pas une métrique parfaite. Mais c'est un premier point pour aborder la complexité d'un projet (en le supposant relativement bien écrit). Et à ce jeu, en supposant les résultats et la sécurité équivalents entre deux hypothétiques versions , l'absence de tout mécanisme en tant soit peu haut niveau va faire que C va noyer la logique de l'application dans des détails et dans la gestion des erreurs. Ce qui te facto faire gonfler le volume de code.

+1 -1

J'ai une impression, c'est que pas mal d'entre vous programment de manière professionnelle ou en tout cas en amateurs éclairés en C (ou l'on fait). Vous connaissez donc bien les problèmes du C. C'est une bonne chose. Sauf que vous apportez un oeil "expert" sur des tutos destinés à des débutants et qui sont donc approximatifs, car pour moi ils privilégient l'apprentissage d'une notion à son explication détaillée et tous les use cases possibles.

Je rejoins donc Ge0 sur le fait que les tutos sont en général des introductions et qu'ils ne sont pas parfait. C'est à l'élève d'approfondir par lui-même. Car de toutes les manières, sans pratique "professionnelle" (en tout cas avec des pairs de meilleur niveau) je doute que l'on puisse vraiment maitriser un langage.

TL;DR A qui s'adresse ce tutoriel ? Quels sont les nouveautés ? Pourquoi un nouveau tutoriel ?

A un moment dans ce topic, un membre avait commencé à mentionner : Pourquoi apprendre le C aujourd'hui ?

Peut-être que je me trompe, mais je trouve que cette question aujourd'hui est fondamentale si on veut écrire un gros tutoriel sur le C.

C'est là où mon avis diverge avec certains membres. A quoi bon vouloir refaire un tutoriel C ici pour les débutants ? Pourquoi vouloir à tout prix (re)faire un tutoriel pour les débutants sur le C ?

De la part de ceux qui sont pour refaire un tutoriel pour les zéros, je pense à Taurre mais il y en a d'autres, quelles sont vos motivations ? Qu'est-ce qui ne va pas dans le tuto publié sur PdP ?

Le seul argument que j'ai vu c'est : je le trouve un peu trop dur pour un débutant complet. Mais ce à quoi je répond : aujourd'hui, qu'est-ce qu'un néophyte complet irait faire à apprendre le C ? Et s'il veut le faire, je suis sûr qu'il existe de nombreux tutoriels/références que l'on a pas cité ici. Qu'est-ce qui serait nouveau si on devait réécrire un tutoriel sur le C ? Qu'apporterait-il ?

Pour moi, ce n'est vraiment pas clair du tout. Aujourd'hui , je ne vois pas pourquoi on devrait dire aux gens d'apprendre le C comme premier langage. Aujourd'hui, il existe de nombreux langages qui s'abstraient assez bien du fonctionnement interne de la machine. Pourquoi aller faire ch*** les débutants avec ces problèmes ? C'est comme pour beaucoup de matières scientifiques, on y va étape par étape. La diversité des langages informatique permet justement cet apprentissage étape par étape, alors pourquoi s'en priver ?

Je pense que c'est une erreur de vouloir passer des centaines d'heures sur un tutoriel pour débutant qui a déjà été fait des dizaines de fois et qui n'apporterait pas grand chose.

A l'inverse, ce qui préoccupe beaucoup de gens ici, c'est un tutoriel sur comment bien programmer en C . A l'inverse, du contenu pour bien programmer en C il en existe relativement peu. Il est plus facile d'apporter sa pierre à l'édifice avec cette préoccupation derrière. Certains me diront :

Oui mais on peut faire les deux en même temps

On a le même problème qu'avant, pourquoi vouloir tout faire en même temps ? Procédons étape par étape. Je pense que c'est complètement idiot de vouloir apprendre la programmation et apprendre à bien programmer en même temps, surtout en C. C'est d'ailleurs ce qui était bien avec le tutoriel sur le C de Mateo21. Tu apprenais à te servir d'un tableau, tu voyais à peu près comment ça fonctionnait, mais tu te fichais complètement d'avoir utilisation correcte. Faire les deux compliquent la tâche pour le lecteur, et vu les difficultés que j'avais eu à 13 ans à comprendre les tableaux, je crois que j'aurais lâché le morceau si Mateao aurait rajouté une couche sur l'utilisation correcte des tableaux.

Maintenant, si il y a des gens de motivés pour faire un tutoriel C pour les débutants, allez-y on ne va pas vous en empêcher. Mais je ne pense pas que ça soit dans les ambitions de ce topic, ou du moins ce vers quoi il a tourné.

@zeqL

Le truc est que des pros vont passer par ces tutos. J'en vois de plus en plus autour de moi dans les références qu'ils citent sur comment ils ont appris. Tous ne vont ensuite pas prendre du recul. Certes c'est à l'élève d'approfondir. Seulement ma vision n'est pas : il est mauvais il va avoir une mauvaise note chose dont je n'ai que faire. Mais il risque de devenir mon collègue, je préfèrerai ne pas avoir besoin de lui dispenser un cours.

Après, il y a les aspects montrons des trucs sexys aux débutants. Et là … le C n'est pas un langage adapté pour cela. Le C++ l'est plus pour ceux qui veulent des perfs. Et le python règne en maitre aujourd'hui – quoiqu'on pense du langage.

J'avais parlé de la question "cerner le public". Mais il y a aussi la question "cerner les objectifs du public" : Avoir un complément à un cours de prof, bidouiller des trucs sexys dans son garage, survivre en milieu hostile (je voulais rester poli ni débiter des bêtises comme "apprendre comment ça marche"), apprendre ce que mon voisin/père/frère m'a dit qu'il fallait absolument apprendre …

EDIT: je rejoins totalement Saroupille.
Dans la continuité, la réponse aux deux questions permet de définir le contenu du tuto. Reste à voir qui veut partir sur quoi (pour ceux qui veulent travailler la dessus).

EDIT bis: ce qui me titille dans tous ça, c'est que j'ai l'impression qu'il y a encore beaucoup de tradition. Un certain fondateur de site a succès a eu des profs qui lui ont appris le C comme tout premier langage – ou du moins avant d'autres langages si j'ai bien compris. Eux-même sont probablement passés par là, ou ils ont eu des contraintes du style : "Enseignons productif à court terme: Plus de Pascal, Pas d'Ada. Et Enseignons le procédural avant les trucs connotés OO (C++, Java, …)". Bref, par mimétisme, voilà une nouvelle génération de gens qui a commencé par le C ou qui croit que le C en premier (ou presque) est le passage obligé dans l'enseignement de la programmation. Et voilà des idées de "et si on faisait un tuto de C pour débutants" couplées à "le tuto avec lequel j'ai commencé était nul – sources inconnues, mais je l'ai lu/entendu". Je vous soumets une autre hypothèse à méditer : "et si c'était l'approche qui n'était pas bonne ; lire le C ne fait pas un bon premier langage".

Note pour appuyer ce que dit Saroupille.

Dans pas mal de cursus académiques, scolaires, etc. le C n'est pas (ou plus) le premier langage.

(edit : et c'est pas pour rien, je pense que ce n'est pas un bon "premier langage" tout simplement, y'a mieux ailleurs)

Certains commencent par CAML, OCAML, d'autres par le Pascal, j'imagine que le Python doit aujourd'hui bien tenir la corde aussi dans certains cursus.

Ces gens là, si on veut leur adresser un cours, s'en fichent pas mal des boucles, et des trucs qu'on peut lire sur une cheatsheet ou sur learnXinYminutes (j'ai pas lu le truc sur le C). S'ils sont un tant soit peu intéressés et pas idiots, ils ont suivi les cours ou ont lu les 4 premières pages du polycopié.

Par contre eux, ce qui va les intéresser c'est ce qui fait la spécificité du C, les gros gros pièges qu'entraînent une mauvaise utilisation du C pour pas foirer leurs TP ou leurs exams. Et j'irais même plus loin : apprendre à débugger du C (parce que c'est pas évident du tout). Bref, ces mecs là vont être exigeants avec un cours de C.

Autre public : le pro qui a fait du Java, du Ruby, du Python toute sa vie et qui aujourd'hui se tourne vers le C parce qu'il en a besoin (embarqué, maintenance d'une application, ou simple curiosité). Ce mec là c'est la même chose, il sera ravi de faire un TP sur malloc pour mieux saisir la subtilité du C qu'il n'a jamais vue ailleurs.

Et croyez moi, trouver un cours qui s'adresse à des développeurs aguerris dans un autre langage c'est vraiment pas simple. J'ai lu ce genre de trucs et même là-dedans je me passerais volontiers de la partie "Fundamentals". Ce qui va m'intéresser d'emblée pour jouer et me dire "waouh", c'est les tuples et compagnie. Le seul endroit où je l'ai trouvé c'est dans "Groovy In Action" parce que le langage est vraiment conçu pour des développeurs (essentiellement Java d'ailleurs), donc le bouquin passe rapidement sur les trucs pénibles pour se concentrer sur ce qui fait la beauté de Groovy.

Le C comme premier langage c'est une approche parfaitement louable mais comme l'a dit Saroupille y'a des tonnes de cours qui fourmillent sur le sujet. Le C dans ce qui fait sa spécificité ça c'est du neuf, et je ne suis pas du tout d'accord avec la phrase de Ge0

mais si on veut espérer attirer du monde, il va peut-être falloir commencer par attirer les pures néophytes, non ?

Non, y'a clairement un public pour un cours de C et je viens de citer deux exemples de catégories de gens qui ne sont pas néophytes mais seront grandement intéressés par un cours avancé sur le C sans qu'on leur rabatte des oreilles avec les fondements de l'algorithmique, la syntaxe (qu'ils auront vu par ailleurs dans la majeure partie des cas) ou l'emploi d'une bibliothèque en particulier.

Et à mon avis c'est l'éclate pour :

  • les rédacteurs qui vont se lâcher sur des problématiques complexes et intéressantes

  • les animateurs du forum qui vont tomber sur des questions non triviales et sans doute mieux formulées

Le C comme premier langage ça me paraît être une mauvaise approche pour un cours rédigé aujourd'hui (ça existe ailleurs, sans doute en mieux, ça ne fait plus partie de l'approche académique).

+6 -0

De la part de ceux qui sont pour refaire un tutoriel pour les zéros, je pense à Taurre mais il y en a d'autres, quelles sont vos motivations ? Qu'est-ce qui ne va pas dans le tuto publié sur PdP ?

Le seul argument que j'ai vu c'est : je le trouve un peu trop dur pour un débutant complet. Mais ce à quoi je répond : aujourd'hui, qu'est-ce qu'un néophyte complet irait faire à apprendre le C ? Et s'il veut le faire, je suis sûr qu'il existe de nombreux tutoriels/références que l'on a pas cité ici. Qu'est-ce qui serait nouveau si on devait réécrire un tutoriel sur le C ? Qu'apporterait-il ?

Saroupille

Pour ma part, je dirais tenter une approche différentes : tous les cours que j'ai lu jusqu'à présent commencent sans exception par le traditionel « hello, world ! ». Cependant, rien que cela en C implique déjà des tonnes de notions : les flux, les chaînes de caractères, les jeux de caractères, les fonctions, les bibliothèques et le préprocesseur (et peut-être d'autres que j'oublie). Cela fait beaucoup, même si le débutant ne s'en rend pas compte.

Aussi, l'idée serait de se passer de la plupart de ces éléments dans un premier temps et de tenter de les introduire au fur et à mesure en prenant soin d'introduire des habitudes saines. Peut-être est-ce illusoire de ma part, mais j'ai envie d'essayer.

Pour moi, ce n'est vraiment pas clair du tout. Aujourd'hui , je ne vois pas pourquoi on devrait dire aux gens d'apprendre le C comme premier langage. Aujourd'hui, il existe de nombreux langages qui s'abstraient assez bien du fonctionnement interne de la machine. Pourquoi aller faire ch*** les débutants avec ces problèmes ? C'est comme pour beaucoup de matières scientifiques, on y va étape par étape. La diversité des langages informatique permet justement cet apprentissage étape par étape, alors pourquoi s'en priver ?

Saroupille

Parce que certains aiment précisément ces problèmes internes à la machine et son curieux de les découvrir et de tenter de les dompter. Certes cela ne court pas les rues et c'est plutôt un intérêt à contre-courant, mais cela existe.

On a le même problème qu'avant, pourquoi vouloir tout faire en même temps ? Procédons étape par étape. Je pense que c'est complètement idiot de vouloir apprendre la programmation et apprendre à bien programmer en même temps, surtout en C.

Saroupille

Cela me paraît au contraire sensé. Aussi, l'apprentissage de bonnes pratiques ne signifie pas forcément que le cours sera imbuvable. Le tout est de doser l'effort et d'expliquer convenablement le pourquoi de ces pratiques.

+2 -0

Pour ma part, je dirais tenter une approche différentes : tous les cours que j'ai lu jusqu'à présent commencent sans exception par le traditionel « hello, world ! ». Cependant, rien que cela en C implique déjà des tonnes de notions : les flux, les chaînes de caractères, les jeux de caractères, les fonctions, les bibliothèques et le préprocesseur (et peut-être d'autres que j'oublie). Cela fait beaucoup, même si le débutant ne s'en rend pas compte.

Aussi, l'idée serait de se passer de la plupart de ces éléments dans un premier temps et de tenter de les introduire au fur et à mesure en prenant soin d'introduire des habitudes saines. Peut-être est-ce illusoire de ma part, mais j'ai envie d'essayer.

Taurre

Je suis assez d'accord sur ce point mais j'ai bien peur que ce soit effectivement illusoire. Lorsque l'on apprend on cherche à obtenir un résultat pour motiver son apprentissage. Or apprendre le C de cette manière c'est manger de la théorie pendant une semaine. Et on risquerai de perdre beaucoup de lecteurs potentiels.

Apres c'est vrai que je me laisserai bien tenter aussi. Même si pour moi à ce niveau on là, on ne s'adresse plus vraiment à un débutant en programmation. Plus le sujet évolue et plus je commence à me dire qu'il n'y pas de tuto parfait. On pourrait avoir un tuto très complet en enseignant les bonnes pratiques dès le début mais au risque de perdre tous nos lecteurs dès le premier chapitre ou inversement leur vendre du rêve pour les inciter à rester mais dans ce cas on leur céderait quelques notions dès le début qu'ils ne chercheraient pas forcement à comprendre ensuite. C'est ce qu'il s'est passé sur le Sdz et on s'est retrouvé avec des débutants qui ne savaient absolument pas ce qu'ils faisaient ni pourquoi il le faisaient. Ils attendaient juste qu'on leur serve la solution sur un plateau d'argent. Et je ne souhaite pas ça au forum du Zds.

Cela me paraît au contraire sensé. Aussi, l'apprentissage de bonnes pratiques ne signifie pas forcément que le cours sera imbuvable. Le tout est de doser l'effort et d'expliquer convenablement le pourquoi de ces pratiques.

Taurre

C'est justement la plus grosse difficulté peut être que c'est possible après tout. Mais je reste d'avis que la plus part des débutants sont des têtes de mule, la carotte d'abord et ensuite j'avancerait peut être…

Ps: la carotte c'est une promesse de résultat comme : "Vous pourrez créer des jeux vidéos !".


Ensuite je vais juste revenir sur le fait que je pense qu'il ne faut pas intégrer de Libs particulières dans le tuto mais plutôt montrer comment utiliser une lib tierce (pourquoi pas faite maison avec deux trois fonction bateau) et ensuite leur montrer comment faire sa propre lib (ainsi que les différences entre static et dynamic). Ça nous évitera d'avoir un forum C rempli de problèmes sur la SDL et ça incitera à peser le pour et le contre de chaque lib plutôt que de suivre aveuglement le choix d'un autre.

En revanche je ne suis pas contre le fait de donner des pistes sur d’éventuels challenges ou libs en C (CSFML, SDL, GTK+, programmation système, …)

+2 -0

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).

Maëlan

Je pense que ce topic t'interessera.

Pour ma part, je dirais tenter une approche différentes : tous les cours que j'ai lu jusqu'à présent commencent sans exception par le traditionel « hello, world ! ». Cependant, rien que cela en C implique déjà des tonnes de notions : les flux, les chaînes de caractères, les jeux de caractères, les fonctions, les bibliothèques et le préprocesseur (et peut-être d'autres que j'oublie). Cela fait beaucoup, même si le débutant ne s'en rend pas compte.

Aussi, l'idée serait de se passer de la plupart de ces éléments dans un premier temps et de tenter de les introduire au fur et à mesure en prenant soin d'introduire des habitudes saines. Peut-être est-ce illusoire de ma part, mais j'ai envie d'essayer.

Ce tutoriel m'avait bien plu pour cette approche.

+0 -0

+1 Avec David (oui c'est moi). J'ai survolé le contenu de learncpp et … franchement, le tuto C++ du sdz est bien meilleur en termes de bonnes pratiques inculquées. Maintenant, je ne parle pas du point de forme/style évoqué initialement par Vayel, mais je rebondis juste sur le contenu.

Salut à tous, je plop simplement pour prendre des nouvelles et pour savoir où en est le projet car je suis intéressé :) Je ne pourrais pas réellement aider surtout si vous êtes déjà nombreux mais je voudrais bien voir ce que donne un cours C dirigé par Taurre, Syla, uknow, Maëlan et compagnie. Bonne continuation !

+0 -0
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