Có một lợi thế cho một lập trình viên C đã đọc K & R không? [đóng cửa]


10

Câu hỏi này đã ám ảnh tôi bởi vì bây giờ tôi đang đọc Kernighan & Ritchie: Ngôn ngữ lập trình C (K & R) nhưng tôi gặp rất nhiều, và ý tôi là rất nhiều lập trình viên C chưa bao giờ đọc nó.

Vì vậy, câu hỏi của tôi là: Có lợi thế khi đọc K & R không? Có nên là một điều cần thiết?


K & R được viết bởi những kẻ đã phát minh ra ngôn ngữ C; trong một thời gian dài, đó là cuốn sách C duy nhất có sẵn
Steven A. Lowe

Không. Cuốn sách K & R không phải là cuốn sách C duy nhất từng được viết. Tùy thuộc vào cách bạn học, một cuốn sách khác có thể phù hợp với bạn hơn.
dùng16764

1
@ StevenA.Lowe: Lưu ý rằng việc tạo và phát triển ngôn ngữ không nhất thiết phải cung cấp cho bạn thông tin tốt nhất để viết về nó. Chẳng hạn, Gosling nói đáng chú ý là không coi mình là một chuyên gia Java. Và tôi không chắc là tôi thích các tác phẩm của Stroustrup nói nhiều về C ++ nói chung. Rõ ràng là họ biết những gì họ đang nói về các phần kỹ thuật của ngôn ngữ, nhưng sử dụng nó hết mức, xác định phong cách và biến nó thành một phần của hệ sinh thái khả thi là một điều hoàn toàn khác. (mặc dù tôi nghĩ rằng K & R đã làm điều đó rất tuyệt vời)
haylem

@ user16764: "không" thành "nên là một điều cần thiết?", tôi hy vọng, không "có lợi thế gì khi đọc K & R không?"
haylem

@haylem: tất nhiên rồi. cuốn sách K & R khá tốt, may mắn thay, nhưng tôi thấy không có lợi thế rõ ràng để đọc nó thay vì hoặc ngoài các tài nguyên C khác
Steven A. Lowe

Câu trả lời:


15

Có hữu ích, không cần thiết. K & R không phải là định nghĩa của ngôn ngữ C. Nó chỉ đơn giản là một trong nhiều văn bản giới thiệu. Tôi thấy nó đặc biệt rõ ràng và súc tích, nhưng những người đọc khác có thể thích các văn bản khác. Đơn giản chỉ cần đọc nó không khiến bạn khác biệt với các lập trình viên khác theo bất kỳ cách nào.


vì vậy bạn đang nói với tôi rằng dù tôi có đọc hay không thì cũng không tạo ra sự khác biệt?
Farouk Jouti

7
Đọc K & R và làm bài tập là một cách hoàn hảo để học giới thiệu C. Tuy nhiên, có rất nhiều sách và tài nguyên khác để học C, và việc chọn K & R thay vì một trong những cuốn sách khác không thể hiện năng lực của bạn như một lập trình viên .
Charles E. Grant

7
Tất nhiên, bạn luôn có thể học c một cách khó khăn .
Robert Harvey

4
K & R đã loại bỏ nỗi sợ học nó cho tôi. Gần như thể họ đang ngồi cạnh tôi giải thích mọi thứ trong một cuộc trò chuyện thân thiện, ấm cúng. Đó là giá trị của "cuốn sách trắng". (Và tôi đã học được nó vào năm 1985)
Rob

@Rob: Vâng, nó là một cuốn sách rất thân thiện và nó rất dễ tiếp cận. Tôi coi đây là một trong những tài sản lớn nhất của nó, cùng với các ví dụ / bài tập rất rõ ràng.
haylem

8

Tôi đồng ý với Charles E. Grant: không cần thiết, nhưng nó đáng để đọc và đây là lý do tại sao tôi nghĩ vậy:

Những thứ xấu

  • Đó là ngày và do đó có thể gây nhầm lẫn.
  • Nếu bạn đã biết rõ về C, bạn sẽ không học được nhiều.
  • Nếu bạn không phải là người hâm mộ phong cách mã K & R, đôi mắt của bạn có thể bị bỏng.

Điểm thứ 3 là không đáng kể và 2 điểm đầu tiên tương đối không đau, ít nhất bạn biết đọc nó sẽ không bị tổn thương.

Đồ đạc tốt

  • Đây là một giới thiệu tốt cho các lập trình viên mới làm quen, cho cả C và lập trình nói chung.
  • Đó là một bài đọc hay (như trong: nó đọc dễ dàng và được viết tốt).
  • Đó không chỉ là về giá trị kỹ thuật, mà còn về giá trị lịch sử. Nếu bạn nhắm đến việc trở thành một chuyên gia, thật tốt khi biết ngôn ngữ phát triển như thế nào, vì vậy thật tốt khi xem một cuốn sách xuất hiện không lâu sau genesis của nó, và một trong những cuốn sách nổi tiếng nhất về ngôn ngữ đó. C đã thay đổi. Không biết các bit cũ có thể không hữu ích nếu bạn không phải sử dụng chúng nhưng nó có thể giúp ích rất nhiều nếu bạn chạy vào mã cũ hơn hoặc nếu bạn tự hỏi tại sao một số việc được thực hiện theo cách này hay cách khác.
  • Một lần nữa, đó là về lịch sử. Đọc "Hacker" từ Steven Levy hoặc "Dealers of Lightning" từ Hitzlick không dạy tôi bất cứ điều gì có giá trị kỹ thuật, nhưng đó là giai thoại. Bằng cách nào đó, tôi thấy K & R cũng có giá trị lớn trong vấn đề này.

Nó không lãng phí thời gian, vì vậy tôi muốn lấy một bản sao tại thư viện địa phương và để nó trên bàn của bạn. Nhặt nó vào một lúc nào đó, và bạn có thể ngạc nhiên rằng có một lỗ nhỏ trong sự liên tục không-thời gian khi bạn ngẩng đầu lên một lần nữa.


2
+1: Tôi đồng ý với "Nếu bạn đã biết rõ về C, bạn sẽ không học được nhiều.", Nhưng nhiều lập trình viên C (nếu không phải là hầu hết) lần đầu tiên đọc nó thấy họ không biết C cũng như họ nghĩ.
mattnz

1
@mattnz: Vâng. (Điều đó đã được nói, tôi e rằng điều đó không cụ thể đối với C và đặc biệt là cuốn sách này. Chúng tôi có xu hướng nghĩ rằng chúng tôi biết mọi thứ tốt hơn thực tế.)
haylem

6

Vâng, K & R không thể thiếu.

Bạn phải đọc nó, giống như cách bạn phải đọc Hamlet và Lord Of The Rings, giống như cách bạn đã xem Casablanca và Cuốn theo chiều gió và Chiến tranh giữa các vì sao.

Đó là một cuốn sách nhỏ tuyệt vời. Nó đã thay đổi chương trình, và nó đã thay đổi cách viết kỹ thuật, và trong một thế hệ, nó đại diện cho đỉnh cao của phong cách.

Bạn đạt được gì khi không đọc nó? Sáu giờ? Mười hai? Hai mươi? Nếu bạn nghiêm túc về lập trình, bạn sẽ dành hàng ngàn và hàng ngàn giờ để truyền mã. nếu bạn không thể đọc được, bạn không thể làm gì khác?

Hoàn toàn có thể K & R không nên là cuốn sách C đầu tiên của bạn. Và ngày nay, C không nên là ngôn ngữ đầu tiên của bạn. Việc đọc K & R trước tiên không quan trọng, nhưng bạn phải đọc nó.

Và tại sao bạn không muốn? Nó vui.


1
Đó là một sự tương tự xấu trong quan điểm của tôi. Tôi nghĩ mọi người nên đọc những cuốn sách này, nhưng một lần nữa, có vô số sách và phim người ta nên xem, và nhìn thấy hoặc không nhìn thấy chúng, đại đa số sẽ không phải là một chỉ báo mạnh mẽ về bất cứ điều gì. Ngoài ra, điều đó khá đặc trưng về văn hóa nếu bạn nghĩ rằng mọi người cần phải đọc chúng. Bạn cũng sai khi cho rằng thời gian không đọc K & R là lãng phí thời gian. Bạn không biết lịch trình của OP như thế nào, vì tất cả những gì bạn biết có thể anh ấy hoặc cô ấy dự định sử dụng thời gian này cho 57 cuốn sách không thể thay thế khác mà bạn KHÔNG đề cập.
haylem

1
Ngoài ra, và trong khi tôi có thời gian khuyên một số người nên bắt đầu với các ngôn ngữ khác ngoài C, tôi là người đề xuất rằng nó nên được dạy sớm và dạy tốt. Về cơ bản, điều duy nhất tôi có thể đồng ý với câu trả lời của bạn là: "Đó là một cuốn sách nhỏ tuyệt vời. Nó đã thay đổi chương trình, và nó đã thay đổi cách viết kỹ thuật, và trong một thế hệ, nó đại diện cho đỉnh cao của phong cách." (mặc dù tôi thậm chí không chắc chắn về phần sau cũng có vẻ khái quát chung với tôi)
haylem

1
Đẩy lý luận của bạn, mọi người nên đọc "Các yếu tố đại số" của Euler hoặc "Brāhmasphuṭasiddhānta". Rốt cuộc, họ đã thay đổi lĩnh vực của họ cả vì nội dung và hình thức của họ và đôi khi là đỉnh cao của phong cách, có lẽ trong một vài thế hệ nữa. Chắc chắn không đọc chúng là một sự lãng phí lớn thời gian.
haylem

Đó là năm 2019 và tôi chưa đọc K & R và không xem hoặc đọc bất cứ điều gì trong danh sách của bạn. Tôi nghiêm túc đấy
Ronnie

4

Đúng.

Sẽ không tốt lắm nếu bạn muốn biết cách viết chương trình bằng các phiên bản C hiện tại, nhưng--

Nó giải thích rất rõ ràng tại sao ngôn ngữ trông giống như nó và ý định đằng sau một số quyết định thiết kế cơ bản.

Nếu bạn được yêu cầu ghi lại bất cứ điều gì "Ngôn ngữ lập trình C" là ví dụ tuyệt đối về cách thực hiện. Tổ chức tốt, rõ ràng, súc tích và dễ đọc. Nó được viết bằng tiếng Anh đơn giản với tối thiểu Jargon và zero buzzwords.


2

Tôi không chắc bạn sẽ học được gì khác với K & R so với các sách C khác, nhưng tôi có xu hướng tin rằng bạn có thể tìm hiểu khá nhiều về mọi người khi xem những cuốn sách họ thích đọc về một chủ đề.

  • K & R là một cuốn sách được viết tốt và súc tích, nhưng một chút sáo rỗng như một đề nghị.
  • Sở thích cá nhân của tôi là Harbison & Steele , cũng được viết như K & R, nhưng chi tiết hơn đáng kể.
  • Nếu ai đó thích một cuốn sách trong sê-ri về Trò chơi Dummies, tôi sẽ nghi ngờ sự cống hiến của họ cho nghề của họ, không phải vì những cuốn sách đó quá tệ, mà vì họ không đi sâu vào chi tiết.
  • Nếu ai đó thề với những cuốn sách được viết bởi Herbert Schildt, họ có ý chí đi sâu vào chi tiết, nhưng tôi sẽ nghi ngờ phán đoán của họ trong những cuốn sách họ chọn.

Nói chung, tôi không nghĩ rằng thời gian đọc một cuốn sách kỹ thuật chất lượng (và K & R chắc chắn là một, và không phải là một cuốn rất dài) không bao giờ lãng phí.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.