Gibt es einen Vorteil für einen C-Programmierer, K & R gelesen zu haben? [geschlossen]

10

Diese Frage hat mich verfolgt, weil ich jetzt Kernighan & Ritchies: Die C-Programmiersprache (K & R) lese, aber ich treffe viele und ich meine VIELE C-Programmierer, die sie noch nie gelesen haben.

Meine Frage lautet also: Hat das Lesen von K & R einen Vorteil? Sollte eine Notwendigkeit sein?

Farouk Jouti
quelle
K & R wurde von den Leuten geschrieben, die die C-Sprache erfunden haben; für eine lange Zeit war es das einzige verfügbare C-Buch
Steven A. Lowe
Nein. Das K & R-Buch ist nicht das einzige C-Buch, das jemals geschrieben wurde. Je nachdem, wie Sie lernen, passt ein anderes Buch möglicherweise besser zu Ihnen.
user16764
1
@ StevenA.Lowe: Beachten Sie, dass Sie nach dem Erstellen und Entwickeln der Sprache nicht unbedingt die besten Anmeldeinformationen erhalten, um darüber zu schreiben. Zum Beispiel sagte Gosling insbesondere, er betrachte sich nicht als Java-Experte. Und ich bin mir nicht sicher, ob mir Stroustrups Schriften über C ++ im Allgemeinen so gut gefallen. Natürlich wissen sie, wovon sie in den technischen Teilen der Sprache sprechen, aber es ist eine ganz andere Sache, sie in vollem Umfang zu nutzen, den Stil zu definieren und sie zu einem Teil eines lebensfähigen Ökosystems zu machen. (obwohl ich denke, dass K & R das erstaunlich gut gemacht hat)
Haylem
@ user16764: "nein" zu "sollte eine Notwendigkeit sein?", hoffe ich, nicht zu "gibt es einen Vorteil beim Lesen von K & R?"
Haylem
@ Haylem: natürlich. Das K & R-Buch ist zum Glück ziemlich gut, aber ich sehe keinen offensichtlichen Vorteil darin, es anstelle oder zusätzlich zu anderen C-Ressourcen zu lesen
Steven A. Lowe,

Antworten:

15

Hilfreich ja, notwendig nein. K & R ist nicht die Definition der C-Sprache. Es ist einfach einer von vielen Einführungstexten. Ich fand es besonders klar und prägnant, aber andere Leser bevorzugen möglicherweise andere Texte. Wenn Sie es einfach gelesen haben, unterscheiden Sie sich in keiner Weise von anderen Programmierern.

Charles E. Grant
quelle
Sie sagen mir also, dass es keinen Unterschied macht, ob ich es lese oder nicht?
Farouk Jouti
7
Das Lesen von K & R und das Durchführen der Übungen ist eine gute Möglichkeit, Einführung C zu lernen. Es gibt jedoch viele andere Bücher und Ressourcen zum Erlernen von C, und die Wahl von K & R gegenüber einem der anderen Bücher zeigt an sich nicht Ihre Kompetenz als Programmierer .
Charles E. Grant
7
Natürlich kann man immer auf die harte Tour lernen .
Robert Harvey
4
K & R beseitigte die Angst, es für mich zu lernen. Es ist fast so, als würden sie neben mir sitzen und die Dinge in einem heimeligen, freundlichen Gespräch erklären. Das ist der Wert des "Weißbuchs". (Und ich habe es 1985 gelernt)
Rob
@ Rob: Ja, es ist ein sehr freundliches Buch und es ist sehr zugänglich. Ich betrachte dies als eines seiner größten Vorteile, zusammen mit sehr klaren Beispielen / Übungen.
Haylem
8

Ich stimme Charles E. Grant zu: Es ist nicht notwendig, aber es lohnt sich zu lesen, und hier ist der Grund, warum ich so denke:

Das schlechte Zeug

  • Es ist veraltet und könnte daher verwirrend sein.
  • Wenn Sie C bereits gut kennen, werden Sie nicht viel lernen.
  • Wenn Sie kein Fan des K & R-Codestils sind, können Ihre Augen brennen.

Der dritte Punkt ist unbedeutend und die beiden ersten Punkte sind relativ schmerzlos. Zumindest wissen Sie, dass das Lesen nicht schaden wird.

Das gute Zeug

  • Es ist eine gute Einführung für unerfahrene Programmierer, sowohl für C als auch für das Programmieren im Allgemeinen.
  • Es ist eine schöne Lektüre (wie in: es liest sich leicht und ist gut geschrieben).
  • Es geht nicht nur um den technischen Wert, sondern auch um den historischen Wert. Wenn Sie ein Experte sein möchten, ist es gut zu wissen, wie sich die Sprache entwickelt hat. Es ist also gut, sich ein Buch anzusehen, das es nicht lange nach seiner Entstehung gab, und eines der berühmtesten Bücher der Sprache. C hat sich geändert. Wenn Sie die alten Bits nicht kennen, ist dies möglicherweise nicht hilfreich, wenn Sie sie nicht verwenden müssen. Es kann jedoch sehr hilfreich sein, wenn Sie auf älteren Code stoßen oder wenn Sie sich fragen, warum einige Dinge auf die eine oder andere Weise ausgeführt wurden.
  • Wieder geht es um die Geschichte. Das Lesen von "Hackers" von Steven Levy oder "Dealers of Lightning" von Hitzlick bringt mir nichts von technischem Wert bei, aber es ist anekdotisch. Irgendwie finde ich K & R auch in dieser Hinsicht von großem Wert.

Es ist keine Zeitverschwendung, also würde ich sagen, schnappen Sie sich eine Kopie in einer örtlichen Bibliothek und lassen Sie sie auf Ihrem Schreibtisch liegen. Nehmen Sie es irgendwann auf und Sie werden überrascht sein, dass es ein kleines Loch im Raum-Zeit-Kontinuum gab, wenn Sie Ihren Kopf wieder heben.

Haylem
quelle
2
+1: Ich stimme zu "Wenn Sie C bereits gut kennen, werden Sie nicht viel lernen.", Aber viele (wenn nicht die meisten) C-Programmierer, die es zum ersten Mal lesen, stellen fest, dass sie C nicht so gut kannten, wie sie dachten.
Mattnz
1
@ Mattnz: Ja. (
Davon abgesehen
6

Ja, K & R ist unverzichtbar.

Sie müssen es lesen, genauso wie Sie Hamlet und Lord Of The Rings lesen müssen, genauso wie Sie Casablanca und Vom Winde verweht und Star Wars sehen müssen.

Es ist ein tolles kleines Buch. Es veränderte die Programmierung, veränderte das technische Schreiben und war für eine Generation der Höhepunkt des Stils.

Was gewinnen Sie, wenn Sie es nicht lesen? 6 Stunden? Zwölf? Zwanzig? Wenn Sie es ernst meinen mit dem Programmieren, werden Sie Tausende und Abertausende von Stunden damit verbringen, Code zu gießen. Wenn Sie sich nicht die Mühe machen zu lesen, was können Sie sonst nicht tun?

Es ist durchaus möglich, dass K & R nicht Ihr erstes C-Buch sein sollte. Und heutzutage sollte C nicht Ihre Muttersprache sein. Es ist nicht wichtig, zuerst K & R zu lesen, aber Sie müssen es lesen.

Und warum willst du nicht? Es macht Spaß.

Mark Bernstein
quelle
1
Es ist meiner Meinung nach eine schlechte Analogie. Ich denke, die Leute sollten diese Bücher lesen, aber es gibt wieder unzählige Bücher und Filme, die man sehen sollte, und wenn man sie sieht oder nicht sieht, wird die überwiegende Mehrheit kein starker Indikator für irgendetwas sein. Das ist auch ziemlich kulturspezifisch, wenn Sie denken, dass jeder sie gelesen haben muss. Sie gehen auch fälschlicherweise davon aus, dass die Zeit, in der K & R nicht gelesen wird, Zeitverschwendung ist. Sie wissen nicht, wie der OP-Zeitplan aussieht. Nach allem, was Sie wissen, wollte er oder sie diese Zeit für 57 andere unersetzbare Bücher verwenden, die Sie NICHT erwähnt haben.
Haylem
1
Auch und obwohl ich zu gegebener Zeit einigen Leuten geraten habe, mit anderen Sprachen als C zu beginnen, bin ich ein Befürworter, dass es früh unterrichtet und gut unterrichtet werden sollte. Grundsätzlich kann ich Ihrer Antwort nur von Herzen zustimmen: "Es ist ein großartiges kleines Buch. Es hat die Programmierung verändert, das technische Schreiben verändert und für eine Generation den Höhepunkt des Stils dargestellt." (obwohl ich mir nicht einmal sicher bin über den letzten Teil, der mir auch grob verallgemeinert schien)
Haylem
1
Jeder sollte Eulers "Elemente der Algebra" oder "Brāhmasphuṭasiddhānta" lesen. Immerhin haben sie ihr Fachgebiet sowohl aufgrund ihres Inhalts als auch ihrer Form geändert und waren irgendwann der Höhepunkt des Stils, wahrscheinlich für einige weitere Generationen. Sicherlich ist es eine große Zeitverschwendung, sie nicht zu lesen.
Haylem
Es ist 2019 und ich habe K & R nicht gelesen und nichts auf Ihrer Liste gesehen oder gelesen. Ich meine es ernst.
Ronnie
4

Ja.

Es ist nicht sehr gut, wenn Sie wissen möchten, wie man Programme mit den aktuellen Versionen von C schreibt, aber ...

Es erklärt sehr deutlich, warum die Sprache so aussieht und welche Absichten hinter einigen grundlegenden Designentscheidungen stehen.

Wenn Sie jemals aufgefordert werden, etwas zu dokumentieren, ist "The C Programming Language" das absolute Beispiel dafür. Gut organisiert, klar, prägnant und lesbar. Es ist in einfachem Englisch mit einem Minimum an Jargon und null Schlagworten geschrieben.

James Anderson
quelle
2

Ich bin mir nicht sicher, ob Sie etwas anderes von K & R als von anderen C-Büchern lernen würden, aber ich glaube eher, dass Sie einiges über Menschen lernen können, wenn Sie sehen, welche Bücher sie lieber zu einem Thema lesen.

  • K & R ist ein gut geschriebenes und prägnantes Buch, aber als Empfehlung ein bisschen klischeehaft.
  • Mein persönlicher Favorit war Harbison & Steele , genauso gut geschrieben wie K & R, aber wesentlich detaillierter.
  • Wenn jemand ein Buch aus der Reihe „… für Dummies“ bevorzugt, würde ich vermuten, dass er sich seinem Handwerk verschrieben hat, nicht weil diese Bücher so schlecht sind, sondern weil sie nicht sehr tief in Details gehen.
  • Wenn jemand auf Bücher schwört, die von Herbert Schildt geschrieben wurden, hat er den Willen, auf Details einzugehen, aber ich würde ihr Urteil in den Büchern vermuten, die er ausgewählt hat.

Im Allgemeinen denke ich nicht, dass die Zeit, die für das Lesen eines hochwertigen technischen Buches aufgewendet wird (und K & R ist definitiv eines und nicht sehr lang), niemals verschwendet wird.

Mikrotherion
quelle