Một số sách lập trình thực sự khó khăn là gì? [đóng cửa]


14

Tôi đã tự hỏi một số cuốn sách thực sự khó khăn về lập trình sẽ làm cho tôi suy nghĩ. Tôi đang nói về các ngôn ngữ cấp thấp như c vv và các thuật toán, điểm, hàm, v.v.

Cảm ơn rất nhiều.


1
Hầu hết các bộ phim của Digitx là khá chewy.
Joel Etherton

1
Tại sao mọi người xuống cấp? OP chỉ muốn một số cuốn sách đưa ra cho anh ta một thử thách ... đó không phải là một câu hỏi ngu ngốc hay OT.
Melanie Shebel

4
Đây không phải là một câu hỏi hay. Đặc biệt, tôi nghĩ nó thiếu một tiêu chí rõ ràng để đánh giá sách. "Tough" và "khiến tôi nghĩ" khá chủ quan - chúng tôi không biết bạn và điều gì sẽ khó khăn hoặc dễ dàng cho bạn. Hoặc làm thế nào nó sẽ áp dụng cho người khác, cho vấn đề đó. Nó cũng không làm gì để truyền cảm hứng cho câu trả lời để giải thích lý do tại sao các cuốn sách được đề xuất, có khả năng đi ngược lại các hướng dẫn xây dựng . Một số chỉnh sửa có thể giúp đỡ, tôi nghĩ.
Adam Lear

4
@Melanie - đây là "danh sách câu hỏi loại X" sẽ nhận được cuốn sách yêu thích của mọi người được đăng dưới dạng câu trả lời. Nếu bạn kiểm tra câu trả lời, không ai trong số họ có bất kỳ lời giải thích nào về lý do tại sao cuốn sách được đề cập đáp ứng các yêu cầu của OP (cũng vậy, nhưng đó là trong số 10 câu trả lời).
ChrisF

1
Tôi đồng ý với @Anna và @Chris ở trên, câu hỏi này thiếu các phần chính, chẳng hạn như giải thích lý do tại sao những cuốn sách này khó hoặc làm thế nào để xếp loại sách với nhau.
Josh K

Câu trả lời:


29

Nghệ thuật lập trình máy tính. Donald Knuth.


3
Tại sao? Điều gì làm cho nó tốt như vậy? Hãy mở rộng câu trả lời của bạn.
Walter

2
Bạn nên bao gồm điều đó trong câu trả lời của bạn. Tôi đã đọc nó, nhưng bất cứ ai sẽ không hiểu được lý do tại sao họ thậm chí nên xem xét đề xuất của bạn.
Walter

3
@Walter: Tôi không nghĩ là mình đồng ý. Tôi không nghĩ rằng nó cần bất kỳ sự mở rộng nào. Cuốn sách rất quan trọng và rất quan trọng đối với máy tính đến nỗi tôi không cảm thấy nó cần giải thích.
S.Lott

1
Đó là các lập trình viên sách hầu như có kế hoạch đọc một ngày nào đó.
Steven A. Lowe

1
@RYUZAKI: "tôi muốn được chuẩn bị trước khi nhảy vào một thứ gì đó có vẻ khó khăn và rất bổ ích" Đừng bận tâm cố gắng "chuẩn bị". Chỉ cần nhảy vào. Khi bạn tìm thấy một chủ đề nằm ngoài bạn, bạn sẽ biết bạn cần học gì. Đó là một sự theo đuổi suốt đời. Bạn không thể chuẩn bị đủ. Bạn sẽ luôn cần phải học nhiều hơn nữa.
S.Lott

13

Giới thiệu về thuật toán

Không phải "giới thiệu";)


1
Tại sao không (Lời nên 'giới thiệu')? Đây phần giới thiệu, được sử dụng trong CS 101.
Konrad Rudolph

1
@konrad: AFAIK, hầu hết các trường đại học chỉ sử dụng một vài chương của những cuốn sách này để giảng dạy.
Hery

Bây giờ tôi phải tìm kiếm nó, phá hủy giá đỡ máy tính xách tay của tôi trong quá trình này (tôi sử dụng Cormen làm hỗ trợ cho máy tính xách tay của tôi). Và bạn đã đúng. Tôi quên những phần sau của cuốn sách; đây thực sự là chủ đề của các bài giảng sau này (một số trong các khóa học thạc sĩ).
Konrad Rudolph

@konrad: hery đóng đinh nó.
Demian Brecht

@konrad: nghe có vẻ là một quá trình đầy sự kiện;)
Demian Brecht

10

Một kỷ luật lập trình, bởi Edgar W. Dijkstra

Làm thế nào để viết mã chứng minh chính xác

Đây không phải là một cuốn sách để đọc, nó là một cuốn sách để nghiên cứu


steven i havent thực sự nhìn vào cuốn sách này; nhưng nó khiến tôi phải hỏi một câu hỏi rất quan trọng: nó có hữu dụng để nói, nhà phát triển WEB hay bộ mã hóa C ++ [trình điều khiển thiết bị, v.v.] hay nhà phát triển Android không? Tôi đang hỏi bạn rằng nó có đáng để tôi dành thời gian không? [tiếp theo bình luận tiếp theo]
Chani

[cont từ bình luận trước] tôi là người mới nhưng tôi học rất nhanh. Tôi đã đọc hàng tấn blog, mã nguồn mở, v.v ... Vậy việc đọc cuốn sách trên (và những cuốn khác thuộc loại này) có thực sự giúp tôi không? Và bạn bè; lý do duy nhất tôi có thái độ bi quan như vậy là tôi đã đọc Thiết kế và phân tích thuật toán máy tính của Aho et. tất cả và để nói với bạn sự thật tôi hầu như không sử dụng kiến ​​thức đó ..... nhưng một lần nữa tôi chỉ lập trình nghiêm túc trong vòng chưa đầy 6 tháng. vậy bạn sẽ nói gì
Chani

1
@RYUZAKI: Vì vậy, bạn đã lập trình nghiêm túc chưa đầy sáu tháng và bạn đã tìm thấy Aho et al. cuốn sách thuật toán không hữu ích ngay lập tức? Sau đó, bạn không tìm kiếm những cuốn sách được đề cập trong câu hỏi này. Bạn có thể muốn dành một chút thời gian và thoải mái hơn trong lĩnh vực này và sau đó quay lại với những điều này. Những cuốn sách trong những câu trả lời này (dù sao tôi cũng biết), sẽ dạy cho bạn những điều và mở rộng đáng kể sự hiểu biết của bạn. Họ sẽ không làm cho bạn trở thành một nhà phát triển C # tốt hơn ngay lập tức, nếu đó là những gì bạn đang tìm kiếm bây giờ.
David Thornley

+1: Và cả Khoa học lập trình của David Gries. Một cuốn sách đồng hành mở rộng về các chủ đề.
S.Lott

2
@RYUZAKI thích hầu hết các văn bản CS sâu sắc hơn, bạn thoát khỏi nó những gì bạn đặt vào nó. Tôi nhận được sự đánh giá cao mới về vẻ đẹp toán học của lập trình, cùng với kinh nghiệm trực tiếp thiết kế và chứng minh tính đúng đắn của các chương trình rất nhỏ. Phải mất một phần tốt hơn của một năm để làm việc theo cách của tôi thông qua cuốn sách.
Steven A. Lowe

9

Các cuốn sách rồng chắc chắn sẽ giúp bạn hiểu các khái niệm ở mức độ thấp.


tốt một. tôi đã phải nghiên cứu nó như một phần của giáo trình CS của tôi và thấy nó rất thú vị, đầy thách thức cũng như trải nghiệm phong phú
Chani

6

Bảy ngôn ngữ trong bảy tuần sẽ cho bạn rất nhiều điều để chơi. Khi tất cả những người khác không đọc "Cấu trúc và giải thích các chương trình máy tính" Một trong những cuốn sách hay nhất từng có về lập trình.


2
"Bảy ngôn ngữ trong bảy tuần" cực kỳ hay nhưng không thực sự là một cuốn sách lập trình khó.
Chiron

Nếu mục tiêu của bạn là làm cho một cuốn sách trở nên khó khăn vì khó khăn thì bạn đã đúng, mặt khác đó là một cuốn sách có nhiều thông tin tốt trong đó
Zachary K

4

Tôi rất muốn giới thiệu Công thức toán số: Nghệ thuật tính toán khoa học .

Một cuốn sách tuyệt vời, chi tiết nhiều thuật toán khoa học hữu ích. Trong sự nghiệp của mình trong hệ thống máy tính nhúng và công nghiệp, một trong những phiên bản này hay cách khác, trong một ngôn ngữ này hay cách khác 1 , đã được đồng hành thường xuyên của tôi.

  1. Trước phiên bản thứ ba, có nhiều cuốn sách khác nhau cho các ngôn ngữ khác nhau, do đó, có các công thức Số trong C , Công thức số trong Fortran và thậm chí Công thức số trong Pascal.

Ồ, tôi thậm chí chưa từng nghĩ về cuốn sách mũ trong khoảng 15 năm
Zachary K

Vâng, tôi đã mua một ấn bản đầu tiên tại trường đại học và đã tìm được cách sử dụng các thuật toán trong những cuốn sách đó trong mọi công việc tôi đã làm việc kể từ đó.
Đánh dấu gian hàng

2

Một số lựa chọn thay thế cho những cuốn sách nổi tiếng (và xuất sắc) đã được đề xuất:

  • Hệ thống cơ sở dữ liệu: Toàn bộ cuốn sách, tái bản lần 2. có phần thứ hai thực sự giải thích cách thức thực hiện DBMS. Có rất nhiều tài liệu về cách lưu trữ và lập chỉ mục dữ liệu hiệu quả và cách thực hiện các truy vấn trong cơ sở dữ liệu.
  • Phương pháp tiếp cận kỹ thuật về mạng máy tính thảo luận về các chi tiết sâu sắc nhất về việc thực sự làm cho mạng hoạt động. Nếu bạn muốn thực hiện một ứng dụng hoặc thiết bị mạng hiệu suất cao, văn bản này sẽ cung cấp một nền tảng cơ bản tuyệt vời.
  • Các thuật toán gần đúng bao gồm một tổng quan bao quát về các vấn đề tối ưu hóa tổ hợp. Tác giả khuyên nên nghiên cứu các vấn đề chuyên sâu trước khi cố gắng tạo ra một xấp xỉ, điều này rất mang tính hướng dẫn.
  • Các loại và ngôn ngữ lập trình là hơn 600 trang lý thuyết và kỹ thuật triển khai dành riêng cho các loại trong ngôn ngữ lập trình. Nó chỉ ra có một lượng lý thuyết đáng kinh ngạc để đối phó. Nếu bạn muốn tạo ra một ngôn ngữ lập trình toàn diện, có rất nhiều thứ để học ở đây.

2

Mức độ thấp của .NET: CLR qua C # của J. Richter. Đáng đọc nếu bạn muốn biết cốt lõi của .NET.


1

Gần đây tôi đã bắt đầu đọc Delight Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Nó có thể không đạt điểm rất cao về khía cạnh khó khăn. Nhưng tôi sẽ cho nó điểm cao về tính kỹ lưỡng, mức độ thấp và giải quyết vấn đề thông minh, đúng với tinh thần của tên của nó.


1

Bạn có thể bắt đầu học langp Lisp. Điều đó chắc chắn sẽ khó khăn! Cộng với một sự phá vỡ hạnh phúc từ lập trình thông thường

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.