gratifiant > comp.lang.* > comp.lang.c

Migrec (08/08/2008, 15h18)
Bonjour,

Je cherche un tutoriel imprimable sur le web pour apprendre le C avant
d'acheter un bouquin "de référence".
Je suis débutant en programmation mais je connais les scripts shell
(linux), le HTML ou encore un peu de PHP.

Quel tutoriel imprimable me conseillez-vous pour débuter ? Les 560 pages
de celui du site du zéro
()
découragent un peu mon imprimante, même avec le recto-verso
automatique... Mais le style me plaît ! Existe-t-il quelque chose dans
le même esprit mais en plus condensé ?
candide (08/08/2008, 18h38)
Migrec a écrit :

> Quel tutoriel imprimable me conseillez-vous pour débuter ? Les 560 pages
> de celui du site du zéro
> ()


Oui, je n'ai rien d'autre à te conseiller malgré ce problème de pages à
imprimer. Je ne sais pas si les 560 pages dont tu parles contiennent ou
pas le tutoriel sur la programmation graphique avec la SDL. Mais il est
indispensable d'avoir pratiqué le C avec une bibliothèque autre que la
bibliothèque standard et je trouve que la SDL est un assez bon choix car
le background théorique pour l'aborder est limité et que tu peux arriver
sans trop d'efforts à des résultats spectaculaires.

Le tuto n'est pas parfait, il a été sévèrement critiqué ici mais ces
critiques, non totalement infondées, m'ont paru très excessives. Selon
moi, il n'y a rien de rédhibitoire, faut juste lire le tuto avec un peu
de recul, sans tout prendre au pied de la lettre. Il sera bien temps
plus tard si tu continues le C de remettre les choses au point
localement. Vu le style et la construction de ton message, tu me
semblerais avoir la maturité, l'esprit (je ne sais pas quel terme
employer) pour aborder le tuto avec la distance nécessaire.

Je ne connais aucun tuto en français ou en anglais sur le web qui égale
même de loin le tuto de m@téo21. Tu peux essayer le cours de
programmation en C sur le site
(site de concours pour les olympiades d'informatique) mais ce cours
reste très très limité.

Question livres _sobres_, il y a très peu de choses, il reste à peu près
que le K&R2 (la deuxième édition du livre de Kernighan et Richie, ce
dernier étant le créateur du langage) qui est lisible si on est déjà
bien initié au C.

Bon choix !
Bernard (08/08/2008, 23h11)
Migrec wrote:
> Bonjour,
> Je cherche un tutoriel imprimable sur le web pour apprendre le C avant
> d'acheter un bouquin "de référence".
> Quel tutoriel imprimable me conseillez-vous pour débuter ?


Aucun.
La seule façon valable est avec les bouquins (K&R et autres références,
versions US uniquement)
Ceux du siteduzero, comme tous les autres, sont une catastrophe.
Ils sont écrits par des gosses de 20 piges ou même moins (!) qui n'ont
aucune légitimité pour donner des cours à qui que ce soit.
(ils mélangent le C ou C++ avec les libs genre SDL ou QT, aucune
normalisation, des âneries à la pelle, etc...)
C'est pathétique pour les pauvres débutants qui prennent cela pour
argent comptant.
Quand on est formateur référencé depuis 18 ans et que l'on tombe sur ça,
on hallucine...
Même ma femme de ménage peut écrire un tutoriel et se prendre pour une
formatrice C.
candide (09/08/2008, 00h21)
Bernard a écrit :
> Aucun.
> La seule façon valable est avec les bouquins (K&R et autres références,
> versions US uniquement)
> Ceux du siteduzero, comme tous les autres, sont une catastrophe.
> Ils sont écrits par des gosses de 20 piges ou même moins (!) qui n'ont
> aucune légitimité pour donner des cours à qui que ce soit.
> (ils mélangent le C ou C++ avec les libs genre SDL ou QT, aucune
> normalisation, des âneries à la pelle, etc...)
> C'est pathétique pour les pauvres débutants qui prennent cela pour
> argent comptant.


Je suis mdr quand je lis ton message, vraiment les caricatures sont de
retour, tu me fais penser à george135
(dont la prose est accessible ici :
)
style commando de la mort qui vient régulièrement fusiller 2 ou 3
moutards sur le forum juste pour l'exemple et en disant bien que la
vérité est sur fr.comp.os.ms-windows.programmation depuis des lustres.

Alors tu fais l'amalgame avec les tutos dits non officiels que je ne
connais pas (la liste est ici :
).

Le PO parle du tuto "officiel" dont l'auteur je crois s'appelle Mathieu
Nebra, alias m@téo21 qui, je crois, est élève ingénieur dans une école
d'informatique.

Je répète, même si son cours n'est pas parfait, il permet de décoller
assez vite en limitant les conneries. Il contient des approximations
déjà relevées ici même (je reprends de mémoire)
*) sur la taille des types de base,
*) sur la définition des nombres flottants et
*) sur des légèretés d'assimilation entre tableaux et pointeurs.

J'en ai relevé d'autres mais rien de rédhibitoire, ça se corrige assez
facilement quand on consulte par la suite de la littérature plus
approfondie. Mais dans l'ensemble, le cours est de bonne facture et il
est très pédagogique. Neanmoins, le cours est quand même incomplet, il
fournir seulement une bonne initiation.

Par ailleurs, le site possède un forum C où effectivement des gamins de
12 ans s'essayent au C et sont corrigés par des ados qui ont 3 ans de
plus, c'est sûr que parfois, ça vole pas très haut. Mais il y a pas mal
d'encadrants (souvent ingénieurs) dont le fameux Emmanuel Delahaye
(alias -ed-) très présent et célèbre ici pour sa cinglante

/quelle-est-ta-question-sur-le-langage-C/.

Au passage, je connais assez bien la littérature C pour ne lire que ça
depuis trois ans et je peux te dire qu'on trouve des cours de C écrits
par des docteurs en informatique et/ou enseignants dans des universités
et/ou auteurs reconnus et prolifiques qui sont bourrés d'erreurs ou
d'ignorance impensables. Et parfois ces livres y ajoutent l'exposé
abscons ! Alors, moi, mon choix serait fait.
Francois (09/08/2008, 00h23)
Bernard a écrit :
>> Quel tutoriel imprimable me conseillez-vous pour débuter ?

> Aucun.
> La seule façon valable est avec les bouquins (K&R et autres références,
> versions US uniquement)


C'est du déjà débattu 150 fois, mais le K&R pour «apprendre» le C au
sens «s'initier» au langage C,, pour débuter en somme, je trouve que
c'est difficile (trop pour moi). Et avec un document, aussi rigoureux
soit-il, si on s'arrête à la page 20, ce n'est pas très utile. Après
évidemment, on pourra toujours reprocher un manque de motivation certes.
L'avantage du tutoriel du site du zéro, c'est qu'on est à peu près sûr
de ne pas être stoppé dès la page 20. Après, je veux bien croire qu'il
ait des faussetés qui fassent bondir les spécialistes, mais bon... (je
m'arrête car je pense que c'est sans fin).

Sinon, pour répondre à la question du PO, le document «Introduction au
langage C» de Bernard Cassagne est je trouve très bien. Je l'avais
trouvé précis et clair. Après je ne suis pas capable de dire s'il
contient des faussetés...

Wykaaa (09/08/2008, 08h31)
Francois a écrit :
> Bernard a écrit :
> C'est du déjà débattu 150 fois, mais le K&R pour «apprendre» le C au
> sens «s'initier» au langage C,, pour débuter en somme, je trouve que
> c'est difficile (trop pour moi). Et avec un document, aussi rigoureux
> soit-il, si on s'arrête à la page 20, ce n'est pas très utile. Après
> évidemment, on pourra toujours reprocher un manque de motivation certes.
> L'avantage du tutoriel du site du zéro, c'est qu'on est à peu près sûr
> de ne pas être stoppé dès la page 20. Après, je veux bien croire qu'il
> ait des faussetés qui fassent bondir les spécialistes, mais bon... (je
> m'arrête car je pense que c'est sans fin).


Combien de fois faudra-t-il répéter que le K&R N'EST PAS un livre pour
débuter ou apprendre le langage C ?
Il est tout sauf pédagogique.
> Sinon, pour répondre à la question du PO, le document «Introduction au
> langage C» de Bernard Cassagne est je trouve très bien. Je l'avais
> trouvé précis et clair. Après je ne suis pas capable de dire s'il
> contient des faussetés...
> C'est effectivement un bon document pour apprendre le C.


Ce qu'il faut que certains comprennent, dans cette discussion sans fin
sur "c'est quoi le mieux pour débuter" (et ce, quel que soit le sujet),
c'est qu'il faut toujours privilégier le document le plus pédagogique
quitte à "faire avec" certaines approximations techniques dues,
justement, à l'approche pédagogique.
Naturellement, ces approximations doivent rester dans des limites
"raisonnables". C'est l'appréciation de ce "raisonnable" qui entraîne
ces discussions sans fin.

Wykaaa
Francois (09/08/2008, 11h07)
Wykaaa a écrit :
> Combien de fois faudra-t-il répéter que le K&R N'EST PAS un livre pour
> débuter ou apprendre le langage C ?
> Il est tout sauf pédagogique.


Je suis bien d'accord, c'est plus ou moins ce que je voulais dire
justement parce qu'on venait de proposer ce livre au PO. Mais vous
savez, pour autant que je me rappelle, même si ce genre de sujet à
toujours été assez controversé, je crois bien qu'il y avait quand même
un léger consensus sur le fait que le K&R n'était pas le bon livre pour
débuter.

>> Sinon, pour répondre à la question du PO, le document «Introduction au
>> langage C» de Bernard Cassagne est je trouve très bien. Je l'avais
>> trouvé précis et clair. Après je ne suis pas capable de dire s'il
>> contient des faussetés...
>>

> C'est effectivement un bon document pour apprendre le C.


Il m'avait rendu de bons services quand je commençais à me perdre dans
les liens entre tableaux et pointeurs.

> Ce qu'il faut que certains comprennent, dans cette discussion sans fin
> sur "c'est quoi le mieux pour débuter" (et ce, quel que soit le sujet),
> c'est qu'il faut toujours privilégier le document le plus pédagogique
> quitte à "faire avec" certaines approximations techniques dues,
> justement, à l'approche pédagogique.
> Naturellement, ces approximations doivent rester dans des limites
> "raisonnables". C'est l'appréciation de ce "raisonnable" qui entraîne
> ces discussions sans fin.


Je suis d'accord avec tout ça. :-)
Mickael (09/08/2008, 11h39)
Wykaaa wrote:

> Combien de fois faudra-t-il répéter que le K&R N'EST PAS un livre pour
> débuter ou apprendre le langage C ?
> Il est tout sauf pédagogique.


N'importe quoi. Il faudrait lire les ng US de temps en temps. C'est le
meiller bouquin pour apprendre le C, sans équivoque.
Il est 100 fois mieux que n'importe quel "tutoriel" écrit par des
gosses à la recherche d'une pseudo-notoriété virtuelle.
Quand on est consultant FL > 45 ans, on a tous appris le C avec le K&R
il y a 25 ans et on ne le regrette pas.
Mickael (09/08/2008, 11h45)
candide wrote:

> Le PO parle du tuto "officiel" dont l'auteur je crois s'appelle Mathieu
> Nebra, alias m@téo21 qui, je crois, est élève ingénieur dans une école
> d'informatique.


Maintenant les élèves sont des formateurs qualifiés et certifiés et se
permettent de donner des cours à des IT consultants ayant 25 ou 30 ans
d'expérience ?!
Non mais, on rêve là !
Surtout celui_là, avec ce qu'il a pondu, c'est le roi des quiches.
Qu'il ne postule pas dans mon service...
candide (09/08/2008, 11h54)
Wykaaa a écrit :
> Combien de fois faudra-t-il répéter que le K&R N'EST PAS un livre pour
> débuter ou apprendre le langage C ?
> Il est tout sauf pédagogique.


Oui.

>> Sinon, pour répondre à la question du PO, le document «Introduction au
>> langage C» de Bernard Cassagne est je trouve très bien. Je l'avais
>> trouvé précis et clair. Après je ne suis pas capable de dire s'il
>> contient des faussetés...
>>

> C'est effectivement un bon document pour apprendre le C.


Ce n'est pas du tout mon avis. J'ai essayé d'apprendre le C avec cet
ouvrage il y a trois ans. Je suis allé de déconvenues en déconvenues.
Pour moi, ça reste prototypiquement le mauvais document d'apprentissage
du langage C. Un livre qui dès sa page 5 en vient à nous jargonner avec
des "unités lexicales" et des "identificateurs" est un mauvais livre
d'apprentissage (à moins qu'on ne s'adresse à des gens qui connaissent
de manière approfondie un autre langage de programmation et tout son
jargon métalinguistique).

L'ouvrage est mal organisé (*), il ne part pas des préoccupations de
l'utilisateur, il est abstrait, les exemples sont peu nombreux, mal
choisis, décontextualisés, ou alors sont surchargés, l'ouvrage est
laconique ou peu clair sur de nombreuses questions ardues. Enfin bon une
vraie cata ce bouquin.

______________
(*) juste un petit exemple : où trouve-ton décrite la fonction malloc()
et la la fonction free() ? Dans le chapitre 6, "Structures, unions,
énumérations", et dans un paragraphe intitulé :

6.11 Allocation et libération d'espace pour les structures

ce qui laisse penser qu'on alloue de manière particulière pour les
structures, bref, n'importe quoi.
--------------

L'auteur a l'air fasciné par l'IOCCC, il me semble l'avoir vu citer à
trois occasions des exemples complets de code gagnants, totalement
déplacé dans ce genre de document.

Question contenu, je l'ai parcouru un petit peu et j'ai relevé quelques
approximations.

Ainsi, l'exercice 3.13 de "cryptage" (comme il dit mal) par décalage, il
utilise le code ASCII sans le dire. C'est confirmé dans d'autres
situations au point que je me demande si l'auteur ne croit pas que
l'ascii fait partie du standard.

Au passage, je vois que quelques pages plus loin, il écrit

enum {FAUX, VRAI};

pratique que tu avais condamné me semble-t-il dans un message antérieur.

Au chapitre 4 (pointeurs et tableaux), il écrit (bien mis en évidence) :

Règle :
Tout identificateur de type tableau de x apparaissant dans une
expression est converti en une valeur constante dont :
-- le type est pointeur vers x ;
-- la valeur est l'adresse du premier élément du tableau.

Comme toute règle, elle a ses exceptions qu'il omet de mentionner, y
compris dans les remarques qui suivent l'énoncé de la Règle. Pour moi,
c'est une faute grave.
Il est bien connu que la règle ci-dessus comporte trois exceptions.
Beaucoup plus loin dans le document, il signale l'exception quand on
utilise une expression du genre sizeof(tableau) . Il signale, mais assez
peu clairement selon moi, le cas des littéraux-chaines qui initialisent
des tableaux. Et il me semble omettre le cas des expressions du genre
&tableau.

Au paragraphe 4.13.2 (intitulé "Cas particulier des chaines
littérales"), il y a un exemple, des commentaires et un dessin qui me
laissent penser que l'auteur ne sait peut-être pas que dans

char *p="Hello";

"Hello" est non modifiable.

Par contre, et si on a un peu de pratique du C, le chapitre 9 à partir
de l'exemple du §9.12 est assez bien (il décortique le jargon utilisé
pour décrire les déclarations et il explique le processus d'analyse
d'une déclaration complexe et il conclut en citant l'outil cdecl).

Je viens de passer plus d'une heure à regarder le livre, c'est pour moi
un très très mauvais livre d'apprentissage.
Wykaaa (09/08/2008, 12h11)
Mickael a écrit :
> Wykaaa wrote:
> N'importe quoi. Il faudrait lire les ng US de temps en temps. C'est le
> meiller bouquin pour apprendre le C, sans équivoque.
> Il est 100 fois mieux que n'importe quel "tutoriel" écrit par des gosses
> à la recherche d'une pseudo-notoriété virtuelle.
> Quand on est consultant FL > 45 ans, on a tous appris le C avec le K&R
> il y a 25 ans et on ne le regrette pas.


J'ai été responsable du développement d'un compilateur C, il y a au
moins 25 ans (la norme C ANSI était encore sous forme de Draft (en fait
le futur C ANSI commençait à être en discussion à l'ANSI et nous
communiquions avec eux via l'AFNOR).

Dans tous ces milieux, le K&R n'est jamais passé pour un "bon bouquin
sur le C", bien au contraire.

Pour ma part et toute mon équipe ainsi que de nombreuses personnes dans
le technical committee ANSI, c'était même le pire des livre sur C.

Le Harbison et Steele était, de loin à l'époque, considéré comme
meilleur, voire le meilleur sur le langage C.

Les ng (fussent-ils US) n'ont jamais été une référence en la matière
pour les professionnels. Par contre, les comités techniques, c'est bien
autre chose.

Si ta référence, pour dire que le K&R est le meilleur livre pour
apprendre le C, sont les ng US, alors, ce n'est même pas la peine de
discuter...
candide (09/08/2008, 12h28)
Mickael a écrit :

> N'importe quoi. Il faudrait lire les ng US de temps en temps.


Je vois pas le rapport. Je lis régulièrement clc mais je suis pas obligé
de partager la KRlâtrie qu'on y rencontre.

> C'est le
> meiller bouquin pour apprendre le C, sans équivoque.


Ça a été le meilleur parce que ça longtemps été le seul. Bon de toute
façon tu ne prouves rien. Moi je pourrais te prouver sur la base du
respect de certains critères que le KR n'est pas du tout pédagogique.
J'irais même jusqu'à dire que c'est un ouvrage bâclé.

> Il est 100 fois mieux que n'importe quel "tutoriel" écrit par des gosses
> à la recherche d'une pseudo-notoriété virtuelle.


Bon, toi t'as un problème d'âge et de reconnaissance, renseigne-toi sur
fr.sci.psychanalyse, tu dois avoir les moyens de t'offrir un bon
analyste à condition que ton boulot te laisse le temps d'aller aux séances.

On s'en fout de la carte de visite et de l'âge. On juge sur pièces. Ces
tutos ne sont pas à comparer aux ouvrages académiques. Ils sont là pour
être lancé, c'est au moment du décollage qu'on utilise le plus
d'énergie. Le tuto de m@téo21 n'a pas la prétention de faire connaître le C.

> Quand on est consultant FL > 45 ans, on a tous appris le C avec le K&R
> il y a 25 ans et on ne le regrette pas.


De toute façon t'avais pas le choix.
Migrec (09/08/2008, 13h58)
Le samedi 9 août 2008 11:45, Mickael a écrit :
> Maintenant les élèves sont des formateurs qualifiés et certifiés et se
> permettent de donner des cours à des IT consultants ayant 25 ou 30 ans
> d'expérience ?!
> Non mais, on rêve là !
> Surtout celui_là, avec ce qu'il a pondu, c'est le roi des quiches.
> Qu'il ne postule pas dans mon service...


Il faut quand même lui laisser le fait qu'il permet grâce à ses "cours"
de vulgariser la programmation en C.
Charge ensuite à l'apprenant de se diriger vers des ouvrages de
référence et de modifier sa façon de programmer...

Critique-t-on un prof qui n'explique pas les nombres relatifs à ses
élèves de CE2 ?

Quel formateur qualifié (selon quels critères ?) est capable de publier
et de mettre en ligne ce qu'à fait M@téo21 ? D'ailleurs, je ne pense
pas qu'il serait contre une amélioration de ses tutoriels... A vos
claviers !
candide (09/08/2008, 14h01)
Migrec a écrit :
..
> Il faut quand même lui laisser le fait qu'il permet grâce à ses "cours"
> de vulgariser la programmation en C.
> Charge ensuite à l'apprenant de se diriger vers des ouvrages de
> référence et de modifier sa façon de programmer...
> Critique-t-on un prof qui n'explique pas les nombres relatifs à ses
> élèves de CE2 ?
> Quel formateur qualifié (selon quels critères ?) est capable de publier
> et de mettre en ligne ce qu'à fait M@téo21 ? D'ailleurs, je ne pense
> pas qu'il serait contre une amélioration de ses tutoriels... A vos
> claviers !


Excellente réponse.
Migrec (09/08/2008, 14h04)
Le samedi 9 août 2008 11:39, Mickael a écrit :

> Wykaaa wrote:
> N'importe quoi. Il faudrait lire les ng US de temps en temps. C'est le
> meiller bouquin pour apprendre le C, sans équivoque.
> Il est 100 fois mieux que n'importe quel "tutoriel" écrit par des
> gosses à la recherche d'une pseudo-notoriété virtuelle.
> Quand on est consultant FL > 45 ans, on a tous appris le C avec le K&R
> il y a 25 ans et on ne le regrette pas.


Je crois qu'un programmeur expérimenté aura toujours du mal à évaluer si
tel ou tel bouquin ou tutoriel est adapté pour apprendre...
Avec l'expérience, des automatismes sont acquis et l'essentiel se
déplace du "savoir faire" ou "savoir bien faire", c'est à dire
programmer de façon efficace (économie de code, modularité, rapidité)

Personellement, je cherche à comprendre les pointeurs, à assimiler la
syntaxe et surtout à créer des petits programmes d'exemple !

Je pense aussi acheter "Le livre du C premier language" après avoir
imprimé le tutoriel du site du zéro !

Merci à tous pour vos éclaircissements (parfois brûmes mais bon...) !

Discussions similaires