Bir C programcısının K&R'yi okuması bir avantaj var mı? [kapalı]


10

Bu soru beni rahatsız ediyor, çünkü şimdi Kernighan & Ritchie'yi okuyorum : C Programlama Dili (K&R) ama çok tanışıyorum ve daha önce hiç okumamış C programcılarından A LOT.

Benim sorum şu: K&R'yi okumanın bir avantajı var mı? Bir zorunluluk olmalı mı?


K&R, C dilini icat eden çocuklar tarafından yazılmıştır; uzun zamandır mevcut olan tek C kitabı oldu
Steven A. Lowe

Hayır. K&R kitabı şimdiye kadar yazılmış tek C kitabı değil. Nasıl öğrendiğinize bağlı olarak, başka bir kitap size daha uygun olabilir.
user16764

1
@ StevenA.Lowe: Dili yaratmanın ve geliştirmenin mutlaka bu konuda yazmak için en iyi bilgileri vermediğini unutmayın. Örneğin Gosling, kendisini bir Java uzmanı olarak görmediğini özellikle söyledi. Ve genel olarak Stroustrup'un C ++ ile ilgili yazılarından çok keyif aldığımı bilmiyorum. Açıkçası, dilin teknik bölümlerinde ne hakkında konuştuklarını biliyorlar, ancak onu tam, tanımlayıcı bir tarzda kullanmak ve onu canlı bir ekosistemin bir parçası haline getirmek tamamen farklı bir şey. (Bence K & R inanılmaz iyi yaptı)
haylem

@ user16764: "hayır" için "bir zorunluluk olmalı?", umarım, değil "K & R okumak için bir avantaj var mı?"
haylem

@haylem: tabii ki. Neyse ki K&R kitabı oldukça iyi, ancak diğer C kaynakları yerine veya buna ek olarak onu okumak için belirgin bir avantaj görmüyorum
Steven A. Lowe

Yanıtlar:


15

Yararlı evet, gerekli hayır. K&R, C dilinin tanımı değildir. Sadece birçok tanıtım metninden biridir. Özellikle açık ve özlü buldum, ancak diğer okuyucular diğer metinleri tercih edebilir. Sadece okumak, sizi diğer programcılardan ayırmaz.


yani bana okuyup okumamamın bir fark yaratmadığını mı söylüyorsun?
Farouk Jouti

7
K&R okumak ve egzersizleri yapmak C girişini öğrenmek için mükemmel bir yoldur. Bununla birlikte, C öğrenmek için birçok başka kitap ve kaynak vardır ve diğer kitaplardan birinden K&R seçilmesi kendi başına bir programcı olarak yeterliliğinizi göstermez. .
Charles E. Grant


4
K&R benim için öğrenme korkusunu ortadan kaldırdı. Neredeyse yanımda oturuyorlardı, ev gibi, dostça bir sohbetle açıklıyorlar. "Beyaz kitabın" değeri budur. (Ve 1985'te öğrendim)
Rob

@Rob: Evet, çok arkadaş canlısı bir kitap ve çok ulaşılabilir. Bunu en iyi varlıklarından biri olarak görüyorum, çok açık örnekler / alıştırmalar.
haylem

8

Charles E. Grant ile hemfikirim: gerekli değil, ama okunmaya değer ve işte bu yüzden böyle düşünüyorum:

Kötü Şeyler

  • Tarihli ve bu nedenle kafa karıştırıcı olabilir.
  • C'yi zaten iyi biliyorsanız, çok fazla şey öğrenemezsiniz.
  • K&R kod stilinin hayranı değilseniz, gözleriniz yanabilir.

3. nokta önemsizdir ve ilk iki nokta nispeten ağrısızdır, en azından okumaya zarar vermez.

İyi Şeyler

  • Hem C hem de genel olarak programlama için acemi programcılar için iyi bir giriş.
  • Güzel bir okuma (olduğu gibi: kolayca okur ve iyi yazılmıştır).
  • Bu sadece teknik değerle değil, aynı zamanda tarihsel değerle de ilgilidir. Eğer bir uzman olmayı hedefliyorsanız, dilin nasıl evrimleştiğini bilmek iyidir, bu yüzden doğuşundan çok sonra olmayan bir kitaba ve dilin en ünlü kitaplarından birine bakmak iyidir. C değişti. Eski bitleri bilmemek, bunları kullanmanız gerekmiyorsa yararlı olmayabilir, ancak eski kodlarla karşılaşırsanız veya bazı şeylerin neden böyle yapıldığını merak ediyorsanız çok yardımcı olabilir.
  • Yine, tarihle ilgili. Steven Levy'den "Hacker'ları" veya Hitzlick'ten "Yıldırım Bayilerini" okumak bana teknik değeri olan hiçbir şey öğretmez, ama bu anekdotiktir. Her nasılsa, K & R'nin bu konuda da çok değerli olduğunu düşünüyorum.

Bu zaman kaybı değil, bu yüzden yerel bir kütüphaneden bir kopyasını alıp masanızda bırakın. Bir noktada al ve başını tekrar kaldırdığın zaman uzayı sürekliliğinde küçük bir delik olduğuna şaşırabilirsin.


2
+1: Katılıyorum "Eğer zaten C'yi iyi tanıyorsanız çok fazla şey öğrenemezsiniz." Ama ilk defa okuyan birçok C programcısı C'yi bilmedikleri kadar iyi bilmediklerini fark ederler.
mattnz

1
@mattnz: Evet. (Korkuluyor ki, bu C ve özellikle bu kitaba özgü değil. Şeyleri gerçekte yaptığımızdan daha iyi bildiğimizi düşünüyoruz.)
haylem

6

Evet, K & R ise vazgeçilmez.

Hamlet ve Yüzüklerin Efendisi'ni okumak için olduğu gibi, Kazablanka'yı ve Rüzgar ve Yıldız Savaşları ile Gitmiş'i görmeniz gerektiği gibi okumalısınız.

Müthiş küçük bir kitap. Programlamayı değiştirdi ve teknik yazıyı dönüştürdü ve bir nesil için stilin zirvesini temsil etti.

Okumadan ne kazanıyorsunuz? Altı saat? On iki? Yirmi? Programlama konusunda ciddiyseniz, binlerce ve binlerce saat kod yayınlayacaksınız. Eğer okumayı zahmet edemiyorsanız, başka ne yapmaktan rahatsız olamazsınız?

K&R'nin ilk C kitabınız olmaması tamamen mümkündür. Ve bugünlerde, C ilk diliniz olmamalı. Önce K & R'yi okumak çok önemli değil, ama okumalısın.

Neden istemiyorsun? Komik.


1
Bence kötü bir benzetme. İnsanların bu kitapları okuması gerektiğini düşünüyorum, ama yine de birinin görmesi gereken sayısız kitap ve film var ve onları görmek ya da görmemek büyük bir şeyin güçlü bir göstergesi olmayacak. Ayrıca, herkesin bunları okuması gerektiğini düşünüyorsanız, bu oldukça kültüre özgüdür. Ayrıca yanlış bir şekilde K&R okumamanın zamanının boşa harcandığını varsayıyorsunuz. OP programını nasıl yapacağınızı bilmiyorsunuz, çünkü bildiğiniz her şey belki de bu zamanı, bahsetmediğiniz 57 diğer değiştirilemez kitap için kullanmayı planlıyor.
haylem

1
Ayrıca, bazı insanlara C'den başka dillerle başlamalarını tavsiye etsem de, erken öğretilmesi ve iyi öğretilmesi gerektiğini savunuyorum. Temel olarak cevabınızda yürekten kabul edebileceğim tek şey: "Müthiş küçük bir kitap. Programlamayı değiştirdi ve teknik yazıyı dönüştürdü ve bir nesil için stilin zirvesini temsil etti." (hatta bana da genel olarak görünüyordu ikinci bölümü hakkında bile emin değilim)
haylem

1
Akıl yürütmenizi zorlayan herkes, Euler'in "Cebir Unsurları" veya "Brāhmasphuṭasiddhānta" yı okumalıdır. Sonuçta, hem içeriklerinden hem de formlarından dolayı alanlarını değiştirdiler ve bir noktada stilin zirvesindeydiler, muhtemelen birkaç nesil daha. Elbette onları okumamak büyük bir zaman kaybıdır.
haylem

2019 ve K&R okumadım ve listenizde hiçbir şey izlemedim veya okumadım. Ciddiyim.
Ronnie

4

Evet.

C'nin mevcut sürümlerini kullanarak program yazmayı öğrenmek istiyorsanız çok iyi değil, ama--

Dilin neden göründüğünü ve bazı temel tasarım kararlarının ardındaki niyeti çok açık bir şekilde açıklıyor.

Herhangi bir şeyi belgelemeniz istenirse, "C Programlama Dili" bunun nasıl yapılacağının mutlak örneğidir. İyi organize edilmiş, açık, özlü ve okunabilir. En az Jargon ve sıfır buzzwords ile düz İngilizce yazılmış.


2

K&R'den diğer C kitaplarından farklı bir şey öğreneceğinizden emin değilim, ancak bir konu hakkında hangi kitapları okumayı tercih ettiklerini görmekten insanlar hakkında biraz bilgi edinebileceğinize inanıyorum.

  • K&R iyi yazılmış ve özlü bir kitap, ama bir tavsiye olarak biraz klişe.
  • Benim en sevdiğim Harbison & Steele , sadece K & R olarak yazılmış, ama çok daha ayrıntılı oldu.
  • Birisi “… for Dummies” serisinde bir kitabı tercih ederse, zanaatlarına olan bağlılıklarından şüphelenirim, çünkü bu kitaplar o kadar da kötü değil, çünkü ayrıntılara çok derinlemesine gitmedikleri için.
  • Birisi Herbert Schildt tarafından yazılmış kitaplara yemin ederse, ayrıntılara girme istekleri vardır, ancak seçtikleri kitaplarda kararlarından şüphelenirim.

Genel olarak, kaliteli bir teknik kitap okumak için harcanan zamanın (ve K&R kesinlikle birdir ve çok uzun bir kitap değildir) asla boşa gitmediğini düşünmüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.