มีข้อดีสำหรับโปรแกรมเมอร์ C ที่จะอ่าน K&R หรือไม่? [ปิด]


10

คำถามนี้หลอกหลอนฉันเพราะตอนนี้ฉันกำลังอ่านKernighan & Ritchie's: The C Programming Language (K&R) แต่ฉันเจอกันมากและฉันหมายถึงโปรแกรมเมอร์ของ C จำนวนมากที่ไม่เคยอ่าน

ดังนั้นคำถามของฉันคือ: มีประโยชน์ในการอ่าน K & R หรือไม่? ควรจะมีความจำเป็นหรือไม่?


K&R เขียนโดยคนที่คิดค้นภาษา C เป็นเวลานานมากที่มีหนังสือ C เล่มเดียวที่ใช้ได้
Steven A. Lowe

ไม่หนังสือ K&R ไม่ใช่หนังสือ C เล่มเดียวที่เคยเขียน หนังสือเล่มอื่นอาจเหมาะกับคุณดีกว่าทั้งนี้ขึ้นอยู่กับวิธีที่คุณเรียนรู้
user16764

1
@ StevenA.Lowe: โปรดทราบว่าการสร้างและพัฒนาภาษานั้นไม่จำเป็นต้องให้สิทธิ์ที่ดีที่สุดในการเขียนเกี่ยวกับมัน ยกตัวอย่างเช่น Gosling โดยเฉพาะกล่าวว่าไม่พิจารณาตัวเองว่าเป็นผู้เชี่ยวชาญ Java และฉันไม่แน่ใจว่าฉันจะสนุกกับงานเขียนของ Stroustrup ที่มากใน C ++ โดยทั่วไป เห็นได้ชัดว่าพวกเขารู้ว่าสิ่งที่พวกเขากำลังพูดถึงในส่วนทางเทคนิคของภาษา แต่ใช้มันอย่างเต็มที่กำหนดรูปแบบและทำให้มันเป็นส่วนหนึ่งของระบบนิเวศที่ทำงานได้เป็นสิ่งที่แตกต่างอย่างสิ้นเชิง ( แต่ผมคิดว่า K & R ไม่ว่าที่น่าอัศจรรย์ใจกัน)
haylem

@ user16764: "ไม่" ถึง "ควรมีความจำเป็นใช่ไหม" ฉันหวังว่าจะไม่ "มีประโยชน์ในการอ่าน K&R หรือไม่"
haylem

@haylem: แน่นอน หนังสือ K&R ค่อนข้างดีโชคดี แต่ฉันไม่เห็นประโยชน์ที่ชัดเจนในการอ่านหนังสือแทนที่จะเป็นหรือนอกเหนือจากแหล่งข้อมูล C อื่น ๆ
Steven A. Lowe

คำตอบ:


15

มีประโยชน์ใช่ไม่จำเป็น K&R ไม่ใช่คำจำกัดความของภาษา C มันเป็นเพียงหนึ่งในตำราเบื้องต้นจำนวนมาก ฉันพบว่ามันชัดเจนและกระชับเป็นพิเศษ แต่ผู้อ่านคนอื่นอาจชอบข้อความอื่น ๆ เพียงแค่อ่านมันไม่ได้ทำให้คุณแตกต่างจากโปรแกรมเมอร์คนอื่น ๆ แต่อย่างใด


ดังนั้นคุณบอกฉันว่าฉันอ่านหรือไม่มันไม่ได้สร้างความแตกต่าง?
Farouk Jouti

7
การอ่าน K&R และทำแบบฝึกหัดเป็นวิธีที่ดีที่สุดในการเรียนรู้เบื้องต้น C อย่างไรก็ตามมีหนังสือและแหล่งข้อมูลอื่น ๆ มากมายสำหรับการเรียนรู้ C และการเลือก K&R มากกว่าหนังสือเล่มใดเล่มหนึ่งไม่ได้แสดงความสามารถของคุณในฐานะโปรแกรมเมอร์ .
Charles E. Grant

7
แน่นอนคุณสามารถเรียนรู้วิธีที่ยากเสมอ
Robert Harvey

4
K&R นำความกลัวของการเรียนรู้มาให้ฉัน ราวกับว่าพวกเขากำลังนั่งถัดจากฉันอธิบายสิ่งต่าง ๆ ในการแชทที่เป็นกันเองและเป็นกันเอง นั่นคือคุณค่าของ "สมุดปกขาว" (และฉันเรียนรู้มันในปี 1985)
Rob

@Rob: ใช่มันเป็นหนังสือที่เป็นมิตรมากและเข้าถึงได้ง่ายมาก ฉันพิจารณาหนึ่งในทรัพย์สินที่ยิ่งใหญ่ที่สุดของมันพร้อมด้วยตัวอย่าง / แบบฝึกหัดที่ชัดเจนมาก
haylem

8

ฉันเห็นด้วยกับ Charles E. Grant: ไม่จำเป็น แต่ก็คุ้มค่ากับการอ่านและนี่คือเหตุผลที่ฉันคิดเช่นนั้น:

สิ่งที่ไม่ดี

  • มันเก่าและอาจทำให้สับสน
  • หากคุณรู้จัก C ดีอยู่แล้วคุณจะไม่ได้เรียนรู้อะไรมากมาย
  • หากคุณไม่ชอบสไตล์รหัส K&R ดวงตาของคุณอาจไหม้

จุดที่ 3 ไม่มีความหมายและจุดแรกที่ 2 นั้นค่อนข้างไม่เจ็บปวดอย่างน้อยคุณก็รู้ว่าการอ่านมันจะไม่เจ็บ

สิ่งที่ดี

  • เป็นการแนะนำที่ดีสำหรับโปรแกรมเมอร์มือใหม่ทั้งสำหรับ C และการเขียนโปรแกรมโดยทั่วไป
  • มันเป็นการอ่านที่ดี (ใน: มันอ่านได้ง่ายและเขียนได้ดี)
  • มันไม่เพียง แต่เกี่ยวกับคุณค่าทางเทคนิคเท่านั้น แต่ยังเกี่ยวกับคุณค่าทางประวัติศาสตร์ด้วย ถ้าคุณตั้งเป้าหมายที่จะเป็นผู้เชี่ยวชาญมันเป็นเรื่องดีที่จะรู้ว่าภาษาพัฒนาไปได้อย่างไรดังนั้นจึงเป็นเรื่องดีที่จะได้ดูหนังสือที่อยู่ไม่นานหลังจากการกำเนิดและหนังสือที่มีชื่อเสียงมากที่สุดเล่มหนึ่งของภาษานั้น C มีการเปลี่ยนแปลง การไม่รู้บิตเก่าอาจไม่เป็นประโยชน์หากคุณไม่จำเป็นต้องใช้มัน แต่มันอาจช่วยได้อย่างมากหากคุณเรียกใช้โค้ดที่เก่ากว่าหรือหากคุณสงสัยว่าทำไมบางสิ่งจึงถูกทำขึ้นด้วยวิธีใดวิธีหนึ่ง
  • อีกครั้งเกี่ยวกับประวัติศาสตร์ การอ่าน "แฮ็กเกอร์" จาก Steven Levy หรือ "ดีลเลอร์แห่งสายฟ้า" จาก Hitzlick ไม่ได้สอนคุณค่าทางเทคนิคให้ฉันเลย อย่างไรก็ตามฉันคิดว่า K&R มีคุณค่าอย่างยิ่งในเรื่องนี้เช่นกัน

มันไม่เสียเวลาดังนั้นฉันจะบอกว่าหยิบสำเนาที่ห้องสมุดท้องถิ่นและวางไว้บนโต๊ะของคุณ หยิบมันขึ้นมาในบางจุดและคุณอาจประหลาดใจที่มีรูเล็ก ๆ ในช่องว่างอย่างต่อเนื่องเมื่อคุณเงยหัวขึ้นอีกครั้ง


2
+1: ฉันเห็นด้วยกับ "ถ้าคุณรู้จัก C ดีอยู่แล้วคุณจะไม่เรียนรู้มากนัก" แต่โปรแกรมเมอร์ C หลายคนที่อ่านมันเป็นครั้งแรกพบว่าพวกเขาไม่รู้จัก C เช่นเดียวกับที่พวกเขาคิด
mattnz

1
@mattnz: ใช่ (. ที่ถูกกล่าวว่าฉันกลัวที่ไม่เฉพาะเจาะจงไปที่ C และหนังสือเล่มนี้โดยเฉพาะอย่างยิ่งเรามักจะคิดว่าเรารู้สิ่งที่ดีกว่าที่เราทำจริง.)
haylem

6

ใช่ K&R เป็นสิ่งที่ขาดไม่ได้

คุณต้องอ่านมันในแบบเดียวกับที่คุณต้องอ่านแฮมเล็ตและลอร์ดออฟเดอะริงส์ในแบบเดียวกับที่คุณได้เห็นคาซาบลังกาและหายไปจากสายลมและสตาร์วอร์ส

มันเป็นหนังสือเล่มเล็ก ๆ ที่ยอดเยี่ยม มันเปลี่ยนการเขียนโปรแกรมและเปลี่ยนการเขียนเชิงเทคนิคและสำหรับรุ่นมันเป็นตัวแทนของจุดสูงสุดของสไตล์

คุณได้อะไรจากการไม่อ่าน หกชั่วโมงเหรอ? สิบสอง? ยี่สิบ? หากคุณจริงจังกับการเขียนโปรแกรมคุณจะต้องใช้เวลาในการร่ายรหัสเป็นพัน ๆ ชั่วโมง ถ้าคุณไม่สามารถอ่านหนังสือได้คุณจะทำอะไรได้อีก?

เป็นไปได้ทั้งหมดที่ K&R ไม่ควรเป็นหนังสือ C เล่มแรกของคุณ และทุกวันนี้ C ไม่ควรเป็นภาษาแรกของคุณ การอ่าน K&R ไม่สำคัญก่อน แต่คุณต้องอ่าน

และทำไมคุณไม่ต้องการที่จะ? มันสนุก.


1
มันเป็นการเปรียบเทียบที่ไม่ดีในความคิดของฉัน ฉันคิดว่าผู้คนควรอ่านหนังสือเหล่านี้ แต่อีกครั้งที่มีหนังสือและภาพยนตร์ที่นับไม่ถ้วนที่เราควรเห็นและเห็นหรือไม่เห็นพวกเขาส่วนใหญ่จะไม่เป็นตัวบ่งชี้ที่แข็งแกร่งของสิ่งใด นอกจากนี้ยังเป็นเรื่องเกี่ยวกับวัฒนธรรมโดยเฉพาะถ้าคุณคิดว่าทุกคนต้องอ่านมัน คุณคิดอย่างผิด ๆ ว่าเวลาที่ไม่ได้อ่าน K&R นั้นเป็นการเสียเวลา คุณไม่รู้ว่าตาราง OP จะเป็นอย่างไรสำหรับสิ่งที่คุณรู้ว่าเขาหรือเธอกำลังวางแผนที่จะใช้ในครั้งนี้สำหรับหนังสือที่ไม่สามารถถูกแทนที่ได้ 57 เล่มที่คุณไม่ได้พูดถึง
haylem

1
นอกจากนี้และในขณะที่ฉันมีเวลาแนะนำให้บางคนเริ่มต้นด้วยภาษาอื่นที่ไม่ใช่ C ฉันเป็นผู้สนับสนุนว่าควรสอนตั้งแต่เนิ่นๆและสอนได้ดี โดยพื้นฐานแล้วสิ่งเดียวที่ฉันเห็นด้วยอย่างเต็มที่ในคำตอบของคุณคือ: "มันเป็นหนังสือเล่มเล็ก ๆ ที่ยอดเยี่ยมมันเปลี่ยนการเขียนโปรแกรมและเปลี่ยนการเขียนเชิงเทคนิคและสำหรับคนรุ่นหนึ่ง ( แต่ผมไม่ได้แน่ใจเกี่ยวกับส่วนหลังซึ่งยังดูเหมือนทั่วไปไม่มีการลดให้ฉัน)
haylem

1
ทุกคนควรอ่าน "องค์ประกอบของพีชคณิต" ของออยเลอร์หรือ "Brāhmasphuṭasiddhānta" ของออยเลอร์ ท้ายที่สุดแล้วพวกเขาเปลี่ยนสาขาของพวกเขาทั้งเพราะเนื้อหาและรูปแบบของพวกเขาและในบางจุดสุดยอดของสไตล์อาจจะเป็นรุ่นที่ค่อนข้างน้อย การไม่อ่านมันเป็นการเสียเวลาอย่างยิ่งใหญ่
haylem

ปี 2019 และฉันไม่ได้อ่าน K&R และยังไม่ได้ดูหรืออ่านอะไรในรายการของคุณ ฉันจริงจัง
Ronnie

4

ใช่.

มันไม่ดีมากถ้าคุณต้องการทราบวิธีการเขียนโปรแกรมโดยใช้เวอร์ชันปัจจุบันของ C แต่ -

มันอธิบายอย่างชัดเจนว่าเหตุใดภาษาจึงดูเหมือนว่ามันเป็นและความตั้งใจในการตัดสินใจออกแบบพื้นฐานบางอย่าง

หากคุณถูกขอให้ทำเอกสารอะไร "ภาษาการเขียนโปรแกรม C" เป็นตัวอย่างที่สมบูรณ์ของวิธีการทำ มีการจัดระเบียบชัดเจนกระชับและสามารถอ่านได้ มันเขียนบนภาษาอังกฤษธรรมดาที่มีขั้นต่ำของศัพท์แสงและศูนย์ buzzwords


2

ฉันไม่แน่ใจว่าคุณจะเรียนรู้อะไรที่แตกต่างจาก K&R มากกว่าหนังสือ C อื่น ๆ แต่ฉันมักจะเชื่อว่าคุณสามารถเรียนรู้ได้บ้างเกี่ยวกับผู้คนจากการดูหนังสือที่พวกเขาต้องการอ่านเกี่ยวกับเรื่อง

  • K&R เป็นหนังสือที่เขียนได้ดีและกระชับ แต่เป็นคำแนะนำเล็กน้อย
  • รายการโปรดส่วนตัวของฉันคือHarbison & Steeleเขียนได้ดีเหมือน K&R แต่มีรายละเอียดมากกว่านี้มาก
  • หากใครบางคนชอบหนังสือในซีรีส์“ … for Dummies” ฉันจะสงสัยว่าพวกเขาอุทิศตนให้กับงานฝีมือของพวกเขาไม่ใช่เพราะหนังสือเหล่านั้นไม่ดีเลย แต่เพราะพวกเขาไม่ได้ลงลึกในรายละเอียด
  • หากใครบางคนสาบานด้วยหนังสือที่เขียนโดย Herbert Schildt พวกเขามีความตั้งใจที่จะลงรายละเอียด แต่ฉันจะสงสัยว่าพวกเขาตัดสินในหนังสือที่พวกเขาเลือก

โดยทั่วไปฉันไม่คิดว่าเวลาที่ใช้ในการอ่านหนังสือทางเทคนิคที่มีคุณภาพ (และ K&R นั้นเป็นหนังสือเล่มเดียวและไม่ใช่หนังสือที่ยาวมาก) จะไม่สูญเปล่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.