Tất cả những cuốn sách dường như rất, rất, rất cũ. Bạn có nghĩ rằng có một sự khác biệt giữa ngày nay và khi những cuốn sách đó được viết không?
IMHO không có gì ngạc nhiên khi những cuốn sách rất hay vẫn phổ biến trong nhiều thập kỷ - điều đó cho thấy chúng tốt như thế nào. Nhưng tôi nghĩ tôi có thể nói cho bạn điều gì đó cho từng ứng cử viên mà bạn đã liệt kê:
Code complete: 2nd edition = may, 2004
Trên thực tế, phiên bản đầu tiên của "Code hoàn thành" là từ năm 1993, vì vậy phiên bản này thực sự là một "tác phẩm kinh điển". Đó là về phong cách mã hóa cơ bản, sử dụng các ví dụ áp dụng cho hầu hết mọi ngôn ngữ lập trình của họ C, chứa các ngôn ngữ phổ biến nhất hiện nay (C / C ++ / Java / C # / Objective-C / D / ...). Vì vậy, có, cuốn sách này được cập nhật.
Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)
Chà, tôi thực sự đã không đọc cuốn sách đó (sách giáo khoa thuật toán của tôi là từ "Sedgewick"), nhưng học thuật toán và xây dựng thuật toán thực sự là ngôn ngữ bất khả tri. Tất nhiên, nghề này đang bị đánh giá thấp trong những năm qua vì bạn tìm thấy nhiều thuật toán cơ bản hiện nay trong các thư viện tiêu chuẩn, nhưng IMHO mỗi lập trình viên chuyên nghiệp nên có một số kiến thức cơ bản trong lĩnh vực này.
The Pragmatic Programmer
Đây là một cuốn sách rất hay về lập trình như một nghề thủ công. Ngôn ngữ bất khả tri và rất, rất cập nhật, miễn là lập trình được thực hiện bởi các lập trình viên như một tác vụ thủ công, sử dụng trình soạn thảo văn bản, IDE, kiểm soát phiên bản, v.v.
Structure and Interpretation of Computer Programs: = September 1, 1996
Đây là sở thích cá nhân của tôi, mặc dù (hoặc có lẽ bởi vì) cuốn sách sử dụng Lược đồ để dạy cho bạn sự khác biệt giữa các mô hình lập trình khác nhau. Tôi không biết bất kỳ cuốn sách nào khác tập trung mạnh mẽ vào việc xây dựng trừu tượng. Và xây dựng sự trừu tượng là một khả năng quan trọng tạo nên sự khác biệt giữa một lập trình viên tầm thường và một lập trình viên hàng đầu - điều đó đã không thay đổi trong những thập kỷ qua, vì vậy thực sự, cuốn sách này là vô tận. Hơn nữa, ngôn ngữ chức năng và các yếu tố ngôn ngữ đã trở nên phổ biến gần đây, vì vậy IMHO các ý tưởng được trình bày trong cuốn sách này đã có sự phục hưng.
The C Programming Language
Chà, cuốn sách này có thể không quá vượt thời gian như bốn cuốn kia. Nhưng vì C là một thứ gì đó giống như "mẹ" của tất cả những ngôn ngữ phổ biến mà tôi đã liệt kê ở trên, nên đọc cuốn sách này cũng có thể là một ý tưởng hay - tôi không nghĩ có một số sách "C" hiện đại thực sự tốt hơn. Và nếu bạn phải lập trình bảo trì mã C ++, được viết bởi một người hiểu rõ hơn về C ++, thì cuốn sách này là phải.
Cuối cùng, bạn đã yêu cầu những cuốn sách đưa nhiều "thực tế hiện tại" vào tài khoản, mà không quá cụ thể về công nghệ. Vậy "thực tế hiện tại" là gì và điều gì đã thay đổi ở phía "phi công nghệ"? Dưới đây là một số điểm từ thập kỷ trước, mà không nói rằng danh sách này đã hoàn thành hoặc có các ưu tiên đúng đắn.
- Tồn tại nhiều mã kế thừa (đặc biệt là nhiều mã kế thừa hơn không chỉ trong Fortran và Cobol, mà còn trong C ++ và Java).
- Kiểm tra đơn vị và TDD đã trở nên yêu thích hơn.
- Có nhiều mã nguồn mở hơn có sẵn.
- OO đã nhận được ngày càng nhiều nhà phê bình
(Tôi không liệt kê ở đây bất cứ điều gì về phát triển Ứng dụng hoặc Web, vì tôi nghĩ công nghệ này cụ thể).
Có những cuốn sách hay cho chủ đề 1 và 2, đặc biệt là "Clean Code" , từ năm 2008 và "Làm việc hiệu quả với mã kế thừa" từ năm 2004. Có lẽ đó là một số trong những cuốn sách "mới hơn" mà bạn đang tìm kiếm?