C'è un vantaggio per un programmatore C di aver letto K&R? [chiuso]


10

Questa domanda mi ha perseguitato perché ora sto leggendo Kernighan & Ritchie: The C Programming Language (K&R) ma incontro molto, e intendo MOLTO, dei programmatori C che non l'hanno mai letto.

Quindi, la mia domanda è: c'è un vantaggio nel leggere K&R? Dovrebbe essere una necessità?


K&R è stato scritto dai ragazzi che hanno inventato il linguaggio C; per lungo tempo è stato l'unico libro C disponibile
Steven A. Lowe,

No. Il libro K&R non è l'unico libro in C mai scritto. A seconda di come impari, un altro libro potrebbe adattarsi meglio a te.
user16764

1
@ StevenA.Lowe: Nota che aver creato e sviluppato la lingua non ti dà necessariamente le migliori credenziali per scriverne. Ad esempio, Gosling disse in particolare di non considerarsi un esperto di Java. E non sono sicuro che mi piacciano così tanto gli scritti di Stroustrup sul C ++ in generale. Ovviamente sanno di cosa parlano sulle parti tecniche del linguaggio, ma usarlo al massimo, definendo lo stile e rendendolo parte di un ecosistema praticabile è una cosa completamente diversa. (anche se penso che K&R lo abbia fatto sorprendentemente bene)
haylem

@ user16764: "no" a "dovrebbe essere una necessità?", spero, non "c'è un vantaggio nel leggere K&R?"
Haylem,

@haylem: ovviamente. il libro di K&R è abbastanza buono, per fortuna, ma non vedo alcun ovvio vantaggio nel leggerlo invece o in aggiunta ad altre risorse C
Steven A. Lowe

Risposte:


15

Utile sì, necessario no. K&R non è la definizione del linguaggio C. È semplicemente uno dei tanti testi introduttivi. L'ho trovato particolarmente chiaro e conciso, ma altri lettori potrebbero preferire altri testi. La semplice lettura non ti distingue in alcun modo dagli altri programmatori.


quindi mi stai dicendo che leggere o no non fa differenza?
Farouk Jouti,

7
Leggere K&R e fare gli esercizi è un modo perfetto per imparare il C introduttivo. Tuttavia, ci sono molti altri libri e risorse per l'apprendimento del C e aver scelto K&R su uno degli altri libri non dimostra di per sé la tua competenza di programmatore .
Charles E. Grant,

7
Certo, potresti sempre imparare c nel modo più duro .
Robert Harvey,

4
K&R ha rimosso la paura di impararlo per me. È quasi come se fossero seduti accanto a me a spiegare le cose in una chat casalinga e amichevole. Questo è il valore di "il libro bianco". (E l'ho imparato nel 1985)
Rob,

@Rob: Sì, è un libro molto amichevole ed è molto accessibile. Considero questo uno dei suoi maggiori vantaggi, insieme a esempi / esercizi molto chiari.
Haylem,

8

Concordo con Charles E. Grant: non è necessario, ma vale la pena leggere, ed ecco perché penso di sì:

The Bad Stuff

  • È datato e quindi potrebbe essere fonte di confusione.
  • Se conosci già bene C non imparerai molto.
  • Se non sei un fan dello stile del codice K&R, i tuoi occhi potrebbero bruciare.

Il 3 ° punto è insignificante e i 2 primi punti sono relativamente indolori, almeno sai che leggerlo non farà male.

La roba buona

  • È una buona introduzione per i programmatori alle prime armi, sia per la C che per la programmazione in generale.
  • È una buona lettura (come in: legge facilmente ed è ben scritta).
  • Non si tratta solo del valore tecnico, ma anche del valore storico. Se miri ad essere un esperto, è bello sapere come si è evoluta la lingua, quindi è bene dare un'occhiata a un libro che non era molto tempo dopo la sua genesi, e uno dei libri più famosi della lingua in questo. C è cambiata. Non conoscere i vecchi bit potrebbe non essere utile se non è necessario utilizzarli, ma può essere di grande aiuto se si esegue il codice precedente o se ci si chiede perché alcune cose siano state fatte in un modo o nell'altro.
  • Ancora una volta, si tratta della storia. Leggere "Hackers" di Steven Levy o "Dealers of Lightning" di Hitzlick non mi insegna nulla di valore tecnico, ma è aneddotico. In qualche modo, trovo K&R di grande valore anche in questo senso.

Non è una perdita di tempo, quindi direi di prenderne una copia in una biblioteca locale e lasciarla sulla tua scrivania. Raccoglilo ad un certo punto e potresti essere sorpreso che ci fosse un piccolo buco nel continuum spazio-temporale quando alzi di nuovo la testa.


2
+1: Sono d'accordo con "Se conosci già bene C non imparerai molto", ma molti programmatori C (se non la maggior parte) che lo leggono per la prima volta scoprono di non conoscere C come pensavano.
Mattnz,

1
@mattnz: Sì. (Detto questo, temo che non sia specifico per C e per questo libro in particolare. Tendiamo a pensare di conoscere le cose meglio di quanto effettivamente facciamo.)
haylem

6

Sì, K&R è indispensabile.

Devi leggerlo, nello stesso modo in cui devi leggere Amleto e Il Signore degli Anelli, nello stesso modo in cui devi vedere Casablanca e Via con il vento e Star Wars.

È un piccolo libro fantastico. Ha cambiato la programmazione e ha trasformato la scrittura tecnica e per una generazione ha rappresentato l'apice dello stile.

Cosa guadagni non leggendolo? Sei ore? Dodici? Venti? Se sei seriamente intenzionato a programmare, impiegherai migliaia e migliaia di ore a trasmettere il codice. se non ti preoccupi di leggere, cos'altro non puoi essere disturbato a fare?

È del tutto possibile che K&R non sia il tuo primo libro C. E al giorno d'oggi, C non dovrebbe essere la tua prima lingua. Non è fondamentale leggere prima K&R, ma devi leggerlo.

E perché non vorresti farlo? È divertente.


1
Secondo me è una cattiva analogia. Penso che la gente dovrebbe leggere questi libri, ma ancora una volta ci sono innumerevoli libri e film che uno dovrebbe vedere, e vederli o non vederli la stragrande maggioranza non sarà un forte indicatore di nulla. Inoltre, è abbastanza specifico per la cultura se pensi che tutti debbano averli letti. Assumi erroneamente anche che il tempo che non si legge in K&R sia perso. Non sai come programmare l'OP, per quanto ne sai forse lui o lei stava pianificando di usare questa volta per altri 57 libri non sostituibili che NON hai menzionato.
haylem,

1
Inoltre, e mentre a volte ho consigliato ad alcune persone di iniziare con lingue diverse dalla C, sono un sostenitore che dovrebbe essere insegnato presto e insegnato bene. Fondamentalmente l'unica cosa di cui posso essere pienamente d'accordo con la tua risposta è: "È un piccolo libro eccezionale. Ha cambiato la programmazione e ha trasformato la scrittura tecnica e per una generazione ha rappresentato l'apice dello stile". (anche se non sono nemmeno sicuro dell'ultima parte che mi è sembrata anche gravemente generalizzata)
haylem

1
Spingendo il tuo ragionamento, tutti dovrebbero leggere "Elements of Algebra" o "Brāhmasphuṭasiddhānta" di Eulero. Dopotutto, hanno cambiato il loro campo sia per il loro contenuto che per la loro forma e sono stati ad un certo punto l'apice dello stile, probabilmente per alcune generazioni ancora. Sicuramente non leggerli è una grande perdita di tempo.
haylem,

È il 2019 e non ho letto K&R e non ho visto o letto nulla sul tuo elenco. Sono serio.
Ronnie,

4

Sì.

Non è molto utile se vuoi sapere come scrivere programmi usando le versioni correnti di C, ma--

Spiega molto chiaramente perché il linguaggio sembra simile e l'intenzione dietro alcune delle decisioni di progettazione di base.

Se ti viene mai chiesto di documentare qualcosa "Il linguaggio di programmazione C" è l'esempio assoluto di come farlo. Ben organizzato, chiaro, conciso e leggibile. È scritto in un inglese semplice con un minimo di gergo e zero parole d'ordine.


2

Non sono sicuro che imparerai qualcosa di diverso da K&R che da altri libri in C, ma tendo a credere che puoi imparare un bel po 'sulle persone dal vedere quali libri preferiscono leggere su un argomento.

  • K&R è un libro ben scritto e conciso, ma un po 'cliché come una raccomandazione.
  • Il mio preferito era Harbison & Steele , scritto bene come K&R, ma molto più dettagliato.
  • Se qualcuno preferisse un libro nella serie "... for Dummies", sospetterei la loro dedizione per il loro mestiere, non perché quei libri siano poi così cattivi, ma perché non approfondiscono molto i dettagli.
  • Se qualcuno giura per i libri scritti da Herbert Schildt, hanno la volontà di entrare nei dettagli, ma sospetterei il loro giudizio sui libri che hanno scelto.

In generale, non credo che il tempo trascorso a leggere un libro tecnico di qualità (e K&R sia sicuramente uno, e non molto lungo) non sia mai perso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.