Y a-t-il un avantage pour un programmeur C à avoir lu K&R? [fermé]

10

Cette question me hante parce que je lis maintenant Kernighan & Ritchie's: The C Programming Language (K&R) mais je rencontre beaucoup, et je veux dire BEAUCOUP, de programmeurs C qui ne l'ont jamais lu.

Donc, ma question est: Y a-t-il un avantage à lire K&R? Cela devrait être une nécessité?

Farouk Jouti
la source
K&R a été écrit par les gars qui ont inventé le langage C; pendant longtemps, c'était le seul livre en C disponible
Steven A. Lowe
Non. Le livre K&R n'est pas le seul livre C jamais écrit. Selon la façon dont vous apprenez, un autre livre pourrait bien vous convenir mieux.
user16764
1
@ StevenA.Lowe: Notez qu'avoir créé et développé le langage ne vous donne pas nécessairement les meilleures références pour écrire à ce sujet. Par exemple, Gosling a notamment déclaré ne pas se considérer comme un expert Java. Et je ne suis pas sûr que j'apprécie autant les écrits de Stroustrup sur C ++ en général. De toute évidence, ils savent de quoi ils parlent sur les parties techniques de la langue, mais l'utiliser pleinement, définir le style et l'intégrer à un écosystème viable est une tout autre chose. (même si je pense que K&R a incroyablement bien fait)
haylem
@ user16764: "non" à "devrait être une nécessité?", j'espère, pas à "y a-t-il un avantage à lire K&R?"
haylem
@haylem: bien sûr. le livre K&R est assez bon, heureusement, mais je ne vois aucun avantage évident à le lire à la place ou en plus d'autres ressources C
Steven A. Lowe

Réponses:

15

Utile oui, nécessaire non. K&R n'est pas la définition du langage C. Il s'agit simplement d'un des nombreux textes d'introduction. Je l'ai trouvé particulièrement clair et concis, mais d'autres lecteurs peuvent préférer d'autres textes. Le simple fait de l'avoir lu ne vous distingue en aucun cas des autres programmeurs.

Charles E. Grant
la source
alors vous me dites que si je le lis ou non, ça ne fait aucune différence?
Farouk Jouti
7
La lecture de K&R et la réalisation des exercices sont une excellente façon d'apprendre le C. d'introduction. Cependant, il existe de nombreux autres livres et ressources pour apprendre le C, et avoir choisi K&R plutôt que l'un des autres livres ne démontre pas en soi votre compétence en tant que programmeur. .
Charles E. Grant
7
Bien sûr, vous pouvez toujours apprendre à la dure .
Robert Harvey
4
K&R a supprimé la peur de l'apprendre pour moi. C'est presque comme s'ils étaient assis à côté de moi pour expliquer les choses dans une conversation amicale et conviviale. Telle est la valeur du "livre blanc". (Et je l'ai appris en 1985)
Rob
@Rob: Oui, c'est un livre très sympathique et très accessible. Je considère que c'est l'un de ses plus grands atouts, avec des exemples / exercices très clairs.
haylem
8

Je suis d'accord avec Charles E. Grant: ce n'est pas nécessaire, mais ça vaut le coup d'être lu, et voici pourquoi je pense que oui:

The Bad Stuff

  • Il est daté et pourrait donc prêter à confusion.
  • Si vous connaissez déjà bien C, vous n'apprendrez pas grand-chose.
  • Si vous n'êtes pas fan du style de code K&R, vos yeux pourraient brûler.

Le 3ème point étant insignifiant, et les 2 premiers points étant relativement indolores, au moins vous savez que la lecture ne fera pas de mal.

Les bonnes choses

  • C'est une bonne introduction pour les programmeurs débutants, à la fois pour le C et la programmation en général.
  • C'est une belle lecture (comme dans: il se lit facilement et est bien écrit).
  • Il ne s'agit pas seulement de la valeur technique, mais aussi de la valeur historique. Si vous visez à être un expert, il est bon de savoir comment la langue a évolué, il est donc bon de jeter un coup d'œil à un livre qui n'était pas si longtemps après sa genèse, et l'un des livres les plus célèbres de la langue à ce sujet. C a changé. Ne pas connaître les anciens bits peut ne pas être utile si vous n'avez pas à les utiliser, mais cela peut être très utile si vous rencontrez un code plus ancien ou si vous vous demandez pourquoi certaines choses ont été faites d'une manière ou d'une autre.
  • Encore une fois, il s'agit de l'histoire. Lire "Hackers" de Steven Levy ou "Dealers of Lightning" de Hitzlick ne m'apprend rien de valeur technique, mais c'est anecdotique. D'une certaine manière, je trouve que K&R est également d'une grande valeur à cet égard.

Ce n'est pas une perte de temps, alors je dirais en prendre une copie dans une bibliothèque locale et la laisser sur votre bureau. Ramassez-le à un moment donné, et vous serez peut-être surpris qu'il y ait un petit trou dans le continuum espace-temps lorsque vous relevez la tête.

haylem
la source
2
+1: Je suis d'accord avec "Si vous connaissez déjà bien le C, vous n'apprendrez pas grand-chose", mais beaucoup (sinon la plupart) de programmeurs C qui l'ont lu pour la première fois trouvent qu'ils ne connaissaient pas le C aussi bien qu'ils le pensaient.
mattnz
1
@mattnz: Oui. (Cela étant dit, je crains que ce ne soit pas spécifique à C et à ce livre en particulier. Nous avons tendance à penser que nous savons mieux que nous.)
haylem
6

Oui, K&R est indispensable.

Vous devez le lire, de la même manière que vous devez lire Hamlet et Lord Of The Rings, de la même manière que vous devez voir Casablanca et Gone With The Wind et Star Wars.

C'est un formidable petit livre. Il a changé la programmation, il a transformé l'écriture technique et, pendant une génération, il a représenté le summum du style.

Que gagnez-vous à ne pas le lire? Six heures? Douze? Vingt? Si vous êtes sérieux au sujet de la programmation, vous allez passer des milliers et des milliers d'heures à diffuser du code. si vous ne pouvez pas lire, que pouvez-vous faire d'autre?

Il est tout à fait possible que K&R ne soit pas votre premier livre C. Et de nos jours, C ne devrait pas être votre première langue. Il n'est pas essentiel de lire d'abord K&R, mais vous devez le lire.

Et pourquoi ne voudriez-vous pas? C'est marrant.

Mark Bernstein
la source
1
C'est une mauvaise analogie à mon avis. Je pense que les gens devraient lire ces livres, mais encore une fois, il y a d'innombrables livres et films à voir, et les voir ou ne pas les voir la grande majorité ne sera pas un indicateur fort de quoi que ce soit. De plus, c'est assez spécifique à la culture si vous pensez que tout le monde a besoin de les lire. Vous supposez également à tort que le temps passé à ne pas lire K&R est une perte de temps. Vous ne savez pas comment le programme OP, pour tout ce que vous savez peut-être qu'il prévoyait d'utiliser cette fois pour 57 autres livres non remplaçables que vous n'avez pas mentionnés.
haylem
1
De plus, et même si j'ai parfois conseillé à certaines personnes de commencer avec d'autres langues que le C, je suis partisan de ce qu'il soit enseigné tôt et bien enseigné. Fondamentalement, la seule chose avec laquelle je suis tout à fait d'accord avec votre réponse est: "C'est un petit livre formidable. Il a changé la programmation et transformé l'écriture technique, et pendant une génération, il a représenté le summum du style." (bien que je ne sois même pas sûr de la dernière partie qui m'a aussi semblé grossièrement généralisée)
haylem
1
En poussant votre raisonnement, tout le monde devrait lire les "Eléments d'Algèbre" ou "Brāhmasphuṭasiddhānta" d'Euler. Après tout, ils ont changé de domaine à la fois en raison de leur contenu et de leur forme et ont été à un moment donné le summum du style, probablement pour encore quelques générations. Sûrement ne pas les lire est une grande perte de temps.
haylem
Nous sommes en 2019 et je n'ai pas lu K&R et je n'ai pas regardé ou lu quoi que ce soit sur votre liste. Je suis serieux.
Ronnie
4

Oui.

Ce n'est pas très bien si vous voulez savoir comment écrire des programmes en utilisant les versions actuelles de C, mais ...

Il explique très clairement pourquoi le langage y ressemble et l'intention derrière certaines des décisions de conception de base.

Si jamais on vous demande de documenter quoi que ce soit "Le langage de programmation C" est l'exemple absolu de la façon de le faire. Bien organisé, clair, concis et lisible. Son écrit sur un anglais simple avec un minimum de jargon et zéro mots à la mode.

James Anderson
la source
2

Je ne suis pas sûr que vous appreniez quelque chose de différent de K&R que d'autres livres C, mais j'ai tendance à croire que vous pouvez en apprendre beaucoup sur les gens en voyant quels livres ils préfèrent lire sur un sujet.

  • K&R est un livre bien écrit et concis, mais un peu cliché comme recommandation.
  • Mon préféré était Harbison & Steele , aussi bien écrit que K&R, mais beaucoup plus détaillé.
  • Si quelqu'un préfère un livre de la série «… for Dummies», je soupçonnerais leur dévouement à leur métier, non pas parce que ces livres sont tous si mauvais, mais parce qu'ils n'entrent pas très profondément dans les détails.
  • Si quelqu'un ne jure que par les livres écrits par Herbert Schildt, il a la volonté d'entrer dans les détails, mais je soupçonnerais son jugement dans les livres qu'il a choisis.

En général, je ne pense pas que le temps passé à lire un livre technique de qualité (et K&R en est certainement un, et pas très long) ne soit jamais perdu.

microtherion
la source