Apakah ada keuntungan bagi programmer C untuk membaca K&R? [Tutup]

10

Pertanyaan ini telah menghantui saya karena saya sekarang membaca Kernighan & Ritchie: Bahasa Pemrograman C (K&R) tetapi saya sering bertemu, dan maksud saya BANYAK, dari pemrogram C yang belum pernah membacanya.

Jadi, pertanyaan saya adalah: Apakah ada keuntungan membaca K&R? Haruskah suatu keharusan?

Farouk Jouti
sumber
K&R ditulis oleh orang-orang yang menemukan bahasa C; untuk waktu yang lama itu adalah satu-satunya buku C yang tersedia
Steven A. Lowe
Tidak. Buku K&R bukan satu-satunya buku C yang pernah ditulis. Bergantung pada bagaimana Anda belajar, buku lain mungkin lebih cocok untuk Anda.
user16764
1
@ StevenA.Lowe: Perhatikan bahwa setelah membuat dan mengembangkan bahasa tidak selalu memberi Anda kredensial terbaik untuk menulis tentang itu. Misalnya Gosling terutama mengatakan tidak menganggap dirinya seorang ahli Java. Dan saya tidak yakin saya menikmati tulisan Stroustrup yang banyak tentang C ++ secara umum. Jelas mereka tahu apa yang mereka bicarakan pada bagian teknis dari bahasa tersebut, tetapi menggunakannya dengan gaya penuh, mendefinisikan dan menjadikannya bagian dari ekosistem yang layak adalah hal yang sama sekali berbeda. (walaupun saya pikir K&R melakukannya dengan sangat baik)
haylem
@ user16764: "tidak" menjadi "harus menjadi keharusan?", saya harap, tidak untuk "adakah keuntungan membaca K&R?"
haylem
@haylem: tentu saja. buku K&R cukup bagus, untungnya, tapi saya tidak melihat keuntungan yang jelas untuk membacanya daripada atau di samping sumber daya C lainnya
Steven A. Lowe

Jawaban:

15

Bermanfaat ya, tidak perlu. K&R bukan definisi bahasa C. Ini hanyalah salah satu dari banyak teks pengantar. Saya menemukannya sangat jelas dan singkat, tetapi pembaca lain mungkin lebih suka teks lain. Hanya dengan membacanya tidak membedakan Anda dari programmer lain dengan cara apa pun.

Charles E. Grant
sumber
jadi Anda mengatakan kepada saya bahwa apakah saya membacanya atau tidak, tidak ada bedanya?
Farouk Jouti
7
Membaca K&R dan melakukan latihan adalah cara yang sangat baik untuk mempelajari pengantar C. Namun, ada banyak buku dan sumber daya lain untuk belajar C, dan memilih K&R daripada salah satu buku lain tidak dengan sendirinya menunjukkan kompetensi Anda sebagai seorang programmer. .
Charles E. Grant
7
Tentu saja, Anda selalu bisa belajar dengan cara yang sulit .
Robert Harvey
4
K&R menghilangkan rasa takut mempelajarinya untuk saya. Hampir seolah-olah mereka duduk di sebelah saya menjelaskan hal-hal dalam obrolan yang nyaman dan bersahabat. Itulah nilai "buku putih". (Dan saya mempelajarinya pada tahun 1985)
Rob
@Rob: Ya, ini buku yang sangat ramah dan sangat mudah didekati. Saya menganggap ini salah satu aset terbesarnya, bersama dengan contoh / latihan yang sangat jelas.
haylem
8

Saya setuju dengan Charles E. Grant: itu tidak perlu, tapi itu layak dibaca, dan inilah mengapa saya pikir begitu:

Hal-hal Buruk

  • Ini tanggal dan dengan demikian bisa membingungkan.
  • Jika Anda sudah tahu C dengan baik, Anda tidak akan belajar banyak.
  • Jika Anda bukan penggemar gaya kode K&R, mata Anda mungkin menyala.

Poin ketiga tidak signifikan, dan 2 poin pertama relatif tidak menyakitkan, setidaknya Anda tahu membacanya tidak akan sakit.

The Good Stuff

  • Ini adalah pengantar yang bagus untuk programmer pemula, baik untuk C dan pemrograman secara umum.
  • Ini bacaan yang bagus (seperti dalam: mudah dibaca dan ditulis dengan baik).
  • Ini bukan hanya tentang nilai teknis, tetapi juga tentang nilai historis. Jika Anda bertujuan menjadi seorang ahli, ada baiknya mengetahui bagaimana bahasa berkembang, jadi bagus untuk melihat buku yang ada tidak lama setelah kelahirannya, dan salah satu buku bahasa yang paling terkenal saat itu. C telah berubah. Tidak mengetahui bit lama mungkin tidak berguna jika Anda tidak harus menggunakannya tetapi mungkin banyak membantu jika Anda mengalami kode yang lebih lama, atau jika Anda bertanya-tanya mengapa beberapa hal dilakukan dengan satu atau lain cara.
  • Sekali lagi, ini tentang sejarah. Membaca "Peretas" dari Steven Levy atau "Penjual Cahaya" dari Hitzlick tidak mengajari saya apa pun yang bernilai teknis, tetapi ini bersifat anekdot. Entah bagaimana, saya menemukan K&R juga bernilai tinggi dalam hal ini.

Ini bukan buang-buang waktu, jadi saya katakan ambil salinan di perpustakaan setempat dan tinggalkan di meja Anda. Ambil itu di beberapa titik, dan Anda mungkin akan terkejut bahwa ada lubang kecil di kontinum ruang-waktu ketika Anda mengangkat kepala lagi.

haylem
sumber
2
+1: Saya setuju dengan "Jika Anda sudah tahu C dengan baik, Anda tidak akan belajar banyak.", Tetapi banyak (jika tidak sebagian besar) programmer C yang membacanya pertama kali menemukan bahwa mereka tidak mengenal C sebaik yang mereka kira.
mattnz
1
@ mattnz: Ya. (Seperti yang dikatakan, saya khawatir itu tidak spesifik untuk C dan untuk buku ini khususnya. Kita cenderung berpikir kita mengetahui hal-hal yang lebih baik daripada yang sebenarnya kita lakukan.)
haylem
6

Ya, K&R sangat diperlukan.

Anda harus membacanya, dengan cara yang sama Anda harus membaca Hamlet dan Lord Of The Rings, dengan cara yang sama Anda harus melihat Casablanca dan Gone With The Wind dan Star Wars.

Ini buku kecil yang hebat. Ia mengubah pemrograman, dan mentransformasikan penulisan teknis, dan selama satu generasi itu mewakili puncak gaya.

Apa yang Anda dapatkan dengan tidak membacanya? Enam Jam? Duabelas? Dua puluh? Jika Anda serius tentang pemrograman, Anda akan menghabiskan ribuan jam untuk membuat kode. jika Anda tidak dapat membaca, apa lagi yang bisa Anda lakukan?

Sangat mungkin bahwa K&R tidak seharusnya menjadi buku C pertama Anda. Dan saat ini, C seharusnya tidak menjadi bahasa pertama Anda. Tidaklah penting untuk membaca K&R terlebih dahulu, tetapi Anda harus membacanya.

Dan mengapa Anda tidak mau? Itu menyenangkan.

Mark Bernstein
sumber
1
Ini analogi yang buruk menurut saya. Saya pikir orang harus membaca buku-buku ini, tetapi lagi-lagi ada banyak buku dan film yang harus dilihat, dan melihat atau tidak melihatnya sebagian besar tidak akan menjadi indikator kuat apa pun. Juga, itu cukup spesifik budaya jika Anda pikir semua orang perlu membacanya. Anda juga salah berasumsi bahwa waktu yang tidak membaca K&R adalah waktu yang terbuang. Anda tidak tahu bagaimana jadwal OP, untuk semua yang Anda tahu mungkin dia berencana menggunakan waktu ini untuk 57 buku lain yang tidak tergantikan yang TIDAK Anda sebutkan.
haylem
1
Juga, dan sementara saya pada waktu itu menyarankan beberapa orang untuk memulai dengan bahasa lain selain bahasa C, saya seorang pendukung bahwa itu harus diajarkan sejak dini dan diajarkan dengan baik. Pada dasarnya satu-satunya hal yang dapat saya setujui dengan sepenuh hati dalam jawaban Anda adalah: "Ini adalah buku kecil yang hebat. Ia mengubah pemrograman, dan mengubah penulisan teknis, dan untuk satu generasi itu melambangkan puncak gaya." (meskipun saya bahkan tidak yakin tentang bagian terakhir yang juga tampak sangat digeneralisasi kepada saya)
haylem
1
Mendorong alasan Anda, semua orang harus membaca "Elemen Aljabar" Euler atau "Brāhmasphuṭasiddhānta". Bagaimanapun, mereka mengubah bidang mereka baik karena konten mereka dan bentuk mereka dan pada beberapa titik puncak gaya, mungkin untuk beberapa generasi lagi. Tentunya tidak membacanya adalah buang-buang waktu.
haylem
Ini tahun 2019 dan saya belum membaca K&R dan Haven belum menonton atau membaca apa pun di daftar Anda. Aku serius.
Ronnie
4

Iya.

Tidak banyak yang baik jika Anda ingin tahu cara menulis program menggunakan versi C saat ini, tapi--

Ini menjelaskan dengan sangat jelas mengapa bahasa itu terlihat seperti itu dan niat di balik beberapa keputusan desain dasar.

Jika Anda pernah diminta untuk mendokumentasikan apa pun "Bahasa Pemrograman C" adalah contoh absolut bagaimana melakukannya. Terorganisir dengan baik, jelas, ringkas dan mudah dibaca. Ini ditulis dalam bahasa Inggris sederhana dengan minimum Jargon dan nol kata kunci.

James Anderson
sumber
2

Saya tidak yakin Anda akan belajar sesuatu yang berbeda dari K&R daripada buku C lainnya, tetapi saya cenderung percaya bahwa Anda dapat belajar sedikit tentang orang-orang dari melihat buku apa yang mereka sukai untuk dibaca tentang suatu subjek.

  • K&R adalah buku yang ditulis dengan baik dan ringkas, tetapi sedikit klise sebagai rekomendasi.
  • Favorit pribadi saya adalah Harbison & Steele , ditulis dengan baik sebagai K&R, tetapi jauh lebih rinci.
  • Jika seseorang lebih suka buku dalam seri "... untuk Dummies", saya akan curiga dedikasi mereka untuk kerajinan mereka, bukan karena buku-buku itu semua begitu buruk, tetapi karena mereka tidak terlalu detail.
  • Jika seseorang bersumpah dengan buku-buku yang ditulis oleh Herbert Schildt, mereka memiliki keinginan untuk memerinci, tetapi saya akan curiga penilaian mereka dalam buku-buku yang mereka pilih.

Secara umum, saya tidak berpikir waktu yang dihabiskan untuk membaca buku teknis yang berkualitas (dan K&R jelas satu, dan bukan yang sangat lama) tidak pernah sia-sia.

microtherion
sumber