Nếu bạn chỉ có thể có một cuốn sách liên quan đến lập trình trên giá sách của bạn thì nó sẽ là gì và tại sao? [đóng cửa]


58

Một câu trả lời xin vui lòng. Tôi sẽ thêm yêu thích của tôi như là một câu trả lời.


13
Kindle có được tính là một cuốn sách không?
Wizard79

5
Không. Chơi công bằng ngay bây giờ!
Paddyslacker

1
IPad thì sao?
Moshe

3
Nghệ thuật lập trình máy tính có được tính là một cuốn sách hay nhiều cuốn sách không?
David Thornley

2
@David Tôi nghĩ rằng về mặt kỹ thuật là một cuốn sách trong nhiều tập.
Paddyslacker

Câu trả lời:


69

Mã hoàn thành lần 2 Ed.

Mã hoàn thành bởi Steve McConnell. Tôi thậm chí không nghĩ rằng nó cần giải thích. Đó là cuốn sách dứt khoát về xây dựng phần mềm. Cực kỳ tốt bằng văn bản và bao gồm tất cả các khía cạnh của mặt thực tế (lập trình) của việc tạo ra phần mềm.


+1 để chọn phiên bản thứ hai cũng vậy - rất nhiều cải tiến so với lần đầu tiên là một cuốn sách khác.
Paddyslacker

+1 - Tôi có bản dịch tiếng Ý. Sau đó, tôi không bao giờ mua một cuốn sách lập trình hay kỹ thuật nào được dịch bằng ngôn ngữ của mình, vì bản dịch rất tệ. Tôi đã phải mua phiên bản tiếng Anh để thực sự hiểu một số câu!
Wizard79

Đối với những người đang sống ở Quebec, Canada . BAnQ có phiên bản hoàn chỉnh của cuốn sách này có sẵn trực tuyến tại địa điểm này: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482 .
HoLyVieR

4
Tôi không thể đồng ý. Thật thú vị khi từ bất biến thậm chí không tồn tại trong cuốn sách này.
Jonas

2
Mặc dù tôi giữ bản sao của phiên bản đầu tiên, tôi nghĩ rằng tôi chưa bao giờ quay lại với nó. Lý do có thể là do tiếp tục lấy sách về từng chủ đề mà McConnell nói là quan trọng.
Apalala

56

Dễ dàng.

Lập trình viên thực dụng


6
+1 vì đã thực tế. Cuốn sách này có liên quan, dễ đọc và có lẽ cuốn sách mà nhiều nhà phát triển thực sự có thể hưởng lợi từ việc đọc thực sự. Quá nhiều người khác trong danh sách này là khó khăn và tôi nghi ngờ đã được đọc bìa để che.
bọt biển

Câu trả lời này được lặp lại.
clrod

+1 - cuốn sách lập trình yêu thích thứ hai của tôi sau Code Complete (và thành thật mà nói, đôi khi, đó là lần đầu tiên)
Alan

36

Cấu trúc và giải thích các chương trình máy tính, còn gọi là SICP

Khi tôi thấy SICP chưa được liệt kê, tôi nhăn mặt đau đớn. :)

Tại sao: Không có gì thêm để thêm vào việc Norvig ca ngợi cuốn sách này là phần giới thiệu lớn nhất về khoa học máy tính từng được viết. Vâng, kể từ khi Tại sao? đã được yêu cầu: SICP trình bày các nguyên tắc cơ bản của phần mềm một cách thỏa mãn sâu sắc, đưa ra nhiều quan điểm và câu hỏi về bản chất của tính toán - khá nhiều trong số đó vẫn là vấn đề mở - trong khi dẫn người đọc nhìn xa hơn những khía cạnh hời hợt của việc nói với máy. để làm, hoặc làm thế nào để làm điều đó.

văn bản thay thế http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg

Nhấp vào hình ảnh để có được văn bản trực tuyến miễn phí . Bạn cũng có thể dễ dàng tìm thấy các bài giảng video của các tác giả , hoàn thành với màu sắc và trang phục theo phong cách thập niên 80 không hơn không kém.


2
Tất cả đều ca ngợi SICP. IMO, nó phải là sách giáo khoa cho một khóa học lập trình giới thiệu bắt buộc trong tất cả các trường CS. Nó chắc chắn sẽ loại bỏ những người thực sự không thể cắt nó trong lập trình (ít CS hơn nhiều) trong khi củng cố CS và kỹ năng lập trình cho những người có tiềm năng.
luis.espinal

1
@ luis.espinal SICP dường như quá mức cần thiết cho chương trình giới thiệu (trừ khi chúng ta đang nói chuyện ở trường đại học). Có một lý do MIT bỏ khóa học SICP vì khóa học giới thiệu của nó .... Tôi vẫn đồng ý rằng việc đọc cuốn sách này (và làm bài tập ...) là rất có giá trị, nhưng làm điều đó trong một học kỳ đại học tiêu chuẩn sẽ khó khăn ngay cả một học sinh trên trung bình. Ngoài ra phần giới thiệu với Java / Python / Ruby / C có liên quan nhiều hơn đến lực lượng lao động, bạn càng sớm làm quen với ngôn ngữ mệnh lệnh càng tốt ... SICP rất tuyệt sau đó để mở rộng tầm nhìn của bạn. Nhưng có thể nản lòng khi là một khóa học giới thiệu ...
Cervo

1
@Cervo - Đó là một mối quan tâm hợp lệ, và nó có vẻ như quá mức cần thiết, nhưng (và đây là một vị trí hoàn toàn chủ quan mà tôi thừa nhận), tôi tin tưởng mạnh mẽ rằng nó cung cấp một nền tảng sâu sắc hơn so với những cách tiếp cận chính thống khác . Ban giám khảo vẫn chưa đồng ý với MIT khi họ đã chuyển sang Python (một số lý do là nó cũng có khả năng của FP và nó rất phù hợp với tính toán khoa học và robot, mà Scheme không có.) yêu ngôn ngữ), nhưng ban giám khảo sẽ ra mắt cho đến khi phiên bản SICP của Python ra mắt.
luis.espinal

2
@ con't - Đó là, tôi đề nghị SICP không phải vì Đề án, mà vì nội dung sư phạm của nó. Tôi thực sự đã đề nghị bắt đầu với lắp ráp (mọi người đã làm điều đó khá thành công), nhưng không có sách lắp ráp (và có lẽ sẽ không bao giờ có) như SICP. Gần nhất sẽ là bách khoa toàn thư của Knuth (và đó sẽ là một việc quá mức.) Đối với java , tôi đã làm việc với nó trong 12 năm và tôi không khuyên bạn nên dạy nó .. hoàn thành công việc, nhưng nó thật kinh khủng vì một PL. C, Python hoặc Ruby là những ngôn ngữ được thiết kế tốt hơn nhiều.
luis.espinal

1
@ không - tôi cũng cảnh báo không nên sử dụng ngôn ngữ làm công cụ sư phạm vì nó là ngôn ngữ chính. Dòng chính thay đổi cứ sau 2-3 năm và với Java, ngôn ngữ rất đơn giản, nhưng nhiệm vụ là học JVM, các thư viện và kiến ​​trúc. Tôi muốn nói để học phát triển doanh nghiệp Java và .NET vào năm thứ 4 đại học. Và tôi tin rằng (tôi biết, chủ quan ) đó là điều quan trọng để cung cấp sự nghiêm ngặt từ sớm. Chúng tôi có quá nhiều lập trình viên nhấp chuột ngoài kia, những người cần sự nghiêm khắc từ sớm. Tôi đã kiếm được rất nhiều tiền để dọn dẹp những
thứ nhảm

32

Đáng nói:

Tháng huyền thoại

văn bản thay thế


1
Nếu tôi chỉ có thể đọc một cuốn sách về lập trình, và sau khi tôi đọc xong nó sẽ biến mất Và tôi không bao giờ thấy một cuốn sách nào trong thời gian còn lại, đây sẽ là nó. Nếu tôi phải giữ cuốn sách trên kệ của mình để xem sau ... Nó có thể là một tập khác, có định hướng tham khảo nhiều hơn. +1 nào!
SingleNegationElimination

Tôi rất thích cuốn sách này và đọc nó suốt. Tuy nhiên, rất nhiều tài liệu chỉ áp dụng cho các dự án quy mô lớn với hàng trăm hoặc thậm chí hàng nghìn hoặc những người làm việc trên nó như một hệ điều hành; vì đây là những gì anh ấy rút ra kinh nghiệm của mình. Tôi nghĩ Code Complete hữu ích hơn nhiều về mặt kiến ​​thức mà tôi có thể sử dụng hàng ngày và áp dụng cho tôi.
Despertar

30

Chúng tôi đã có phiên bản thứ tư nhưng đây là một cuốn sách tuyệt vời về thuật toán!
Chris

@Chris: Tôi không nghĩ có phiên bản thứ tư. Phiên bản thứ ba là từ tháng 9 năm 2009, vì vậy nó mới.
Jonas

Errr, phiên bản thứ hai với bìa màu xanh lá cây.
Chris

Đây là sách giáo khoa bắt buộc cho lớp học của tôi thuật ngữ này. Tôi rất háo hức vì nó nằm trong danh sách ở đây, và nó được đánh giá rất cao về câu hỏi SO ban đầu!
Pops

28

Các mẫu thiết kế: Các yếu tố của phần mềm hướng đối tượng có thể tái sử dụng

Đây là những cuốn sách để đọc trên thiết kế OOP và kiến trúc. Các mẫu tốt khi được sử dụng đúng cách, nhưng tôi nghĩ giá trị thực sự của cuốn sách này là nó cung cấp cho bạn một hộp công cụ các ý tưởng để sử dụng khi thiết kế.

văn bản thay thế


OOP không đại diện cho giới hạn của lập trình.
Inaimathi

Vì danh mục mẫu rất phong phú (mà cuốn sách này là), giá trị của cuốn sách này đã giảm đáng kể theo thời gian.
Steven Evers

1
Có nhiều người đọc cái này để che? Tôi thấy nó là một tài liệu tham khảo nhiều hơn là một cuốn sách. (Và một tài liệu tham khảo mà bạn không thể tìm kiếm.)
idbrii

28

Bộ luật sạch của Robert C. Martin

"Mã sạch" của Robert C. Martin

Ngôn ngữ, khuôn khổ, phương pháp đến và đi, nhưng nhiều ý tưởng trong cuốn sách này, tôi nghi ngờ, mãi mãi.


4
Không xúc phạm đến cuốn sách, nhưng bạn thực sự có thể có một câu trả lời được chấp nhận về chủ đề này không?
Martin Beckett


25

Tôi chỉ đếm những cuốn sách của tôi ngày hôm nay. 23 của họ. Nó phụ thuộc vào những gì tôi đang làm việc. Tôi đoán câu trả lời vượt thời gian là "Ngôn ngữ C", của Kernighan và Ritchie .

nhập mô tả hình ảnh ở đây


3
Một trong những cuốn sách giảng dạy ngôn ngữ tốt nhất trong lịch sử điện toán. Một ví dụ tốt về cách viết một cuốn sách lập trình.
Wizard79

1
Và đáng để có trên kệ, tìm kiếm mã định dạng printf trong sách nhanh hơn trong tài liệu trợ giúp của MSDN
Martin Beckett

19

Làm việc hiệu quả với Bộ luật kế thừa của Michael Feathers.

Nó chứa nhiều mẹo hay về cách kiểm tra cơ sở mã hiện có đang được kiểm tra và quản lý, hầu hết trong số đó tôi không biết cho đến khi tôi đọc cuốn sách này. Phải đọc, ngay cả khi mã kế thừa bạn đang làm việc là mã của riêng bạn mà bạn đã viết ngày hôm qua.

Làm việc hiệu quả với Mã kế thừa


Thật là một vỏ bọc tuyệt vời.
Pops

Đây là trọng tâm hiện tại của tôi: lấy mã tôi đã viết trước khi tôi "điều khiển thử nghiệm" sang trạng thái có thể kiểm tra được.

+1 Nhiều lần có. Cuốn sách này đã giúp tôi khá nhiều trong việc cập nhật mã cũ.
Cấp Palin

18

1
Tôi không chắc cuốn sách này đủ điều kiện là "1 cuốn sách" (trừ khi bạn thực sự có nghĩa là "chỉ Tập 1")
Inaimathi

Tôi có cả bộ của anh ấy, nhưng tôi sẽ giải quyết cho Tập 1. (Lớp khoa học máy tính đầu tiên của tôi được dạy từ này vào năm 1967. Nó là vô giá). "Biết cơ sở dữ liệu của bạn".
Ira Baxter

15

Các sách Java bắt buộc phải có:

Java hiệu quả bởi Josh Bloch

văn bản thay thế

Đồng thời Java trong thực tiễn của Brian Goetz, et. al.

văn bản thay thế

Java Puzzlers của Josh Bloch, Neal Gafter

văn bản thay thế


3
+1 cho Java hiệu quả. Cải thiện rất nhiều kỹ năng Java của tôi.
Ryan Hayes

Vui lòng +1 cho Java hiệu quả , -1 để bỏ qua Một cho mỗi câu trả lời .
Đánh dấu gian hàng

Một bộ sách Java bạn nên có
Crowie


9

Gôdel, Escher, Bach.

văn bản thay thế!


1
Hà! Đây là lựa chọn của tôi trong danh sách những cuốn sách không liên quan đến lập trình! Tôi đoán điều này làm cho nó không thể phân loại?
Paddyslacker

Tôi thực sự thích cuốn sách này, nó rất được khuyến khích bởi Lý thuyết tính toán của tôi tại UW Madison - rất hữu ích khi cố gắng hiểu cái quái gì anh ta đang nói.
Peter Turner

@Paddyslacker, GEB thực sự dành khá nhiều thời gian để nói về khả năng tính toán và các khái niệm khoa học máy tính khác nhau.

5

Lập trình viên thực dụng: Từ Journeyman đến Master (Andrew Hunt và David Thomas)


4

Bắt mọi thứ đã hoàn thành (David Allen) dạy bạn cách đối phó với hàng ngàn nhiệm vụ nhỏ bạn cần hoàn thành trong công việc hàng ngày với tư cách là nhà phát triển phần mềm. Mặc dù nó không đặc biệt hướng đến các nhà phát triển, nhưng nó chắc chắn là một trợ giúp vô giá, vì phát triển phần mềm thường bao gồm một số lượng rất lớn các nhiệm vụ nhỏ cần được thực hiện theo cách ưu tiên. Ví dụ: những tính năng mới nào sẽ thực hiện, lỗi nào cần sửa, phần nào của mã để cấu trúc lại, phần nào của mã để nghỉ hoặc kiểm tra lại, v.v ...




2

Zen tối ưu hóa mã của Michael Abrash

Zen tối ưu hóa mã

Phải đọc cho các lập trình viên thời gian thực - ngay cả khi thông tin cụ thể của bộ xử lý được ghi ngày, tư duy là vô giá.


2

IPad có đếm không? Tôi muốn nói số 1 của tôi trên kệ sách của tôi sẽ là một trình duyệt web và khả năng tìm kiếm. API trực tuyến và tài liệu tham khảo là nơi tốt nhất và nó sẽ phụ thuộc vào bộ dự án hiện tại của tôi.


2
Không, nó không có. Xem bình luận về một chiếc Kindle ở trên. Điều đó nói rằng, tôi yêu iPad dù sao. Nó có thể là một tài nguyên quý giá, nhưng nó vẫn không phải là một cuốn sách thực sự. +1, tôi đang ở trong một tâm trạng fanboy. :)
Moshe


2

"Cạm bẫy của sự phát triển hướng đối tượng" của Bruce F. Webster

Chúng tôi có quá nhiều nhà phát triển "OO" vẫn không biết đối tượng hoặc lớp là gì hoặc để làm gì; không biết OO tốt, lập trình thủ tục, mô đun và cấu trúc trông như thế nào; và bằng cách nào đó quản lý để lắp ghép mã giả thủ tục xấu cùng với các lớp.

Cuốn sách này (cộng với một vài năm 70 về thiết kế có cấu trúc) sẽ đi một chặng đường dài để giúp những linh hồn đáng thương này cuối cùng hiểu được định hướng đối tượng tốt sẽ như thế nào.


Hơn nữa, rất có thể là nếu tôi bị buộc phải chọn một cuốn sách và một cuốn sách chỉ bên cạnh cuốn sách này, tôi sẽ không chọn một cuốn sách dành riêng cho công nghệ .


1

văn bản thay thế

Đó là một trong số ít những cuốn sách lập trình mà tôi đã giữ từ khi mới bắt đầu lập trình. Tôi đã từng cho vay những thứ này rất nhiều cho những người mới bắt đầu. Bây giờ, không quá nhiều, vì C không còn là ngôn ngữ lập trình đầu tiên của nhiều người nữa. Nó thực hiện một công việc tuyệt vời để mô tả những gì đang xảy ra đằng sau hậu trường và những mô tả về con trỏ mang lại sự rõ ràng thực sự cho những gì khác là một chủ đề rất khó hiểu đối với nhiều người.


1

"C # in Depth" của Jon skeet

văn bản thay thế


1
Tôi thực sự không thích cuốn sách của Jon. Thông tin rất tốt, nhưng có rất nhiều "ồ, đây là 10 chương quan trọng từ bây giờ" trong cuốn sách đến nỗi nó cảm thấy rất kém được trình bày.
Steven Evers

2
Xin lưu ý rằng có phiên bản thứ hai, đây là bản cập nhật từ phiên bản đầu tiên và cũng bao gồm C # 4.
Grant Palin

1

Thiết kế đối tượng: Vai trò, Trách nhiệm và Hợp tác

văn bản thay thế

Đây là cuốn sách lập trình yêu thích của tôi (ngay cả khi nó không phụ thuộc vào ngôn ngữ). Theo ý kiến ​​khiêm tốn của tôi là cuốn sách trình bày rõ hơn về trường hợp thiết kế các đồ vật liên quan đến anh em họ / anh em / người anh em của họ. Phải có trong bất kỳ kệ sách lập trình viên nghiêm túc.


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.