16 cuốn sách kinh điển mà lập trình viên nên đọc

07-03-2015 11:59

Bài viết dưới đây ITPlus xin được tổng hợp và chia sẻ 16 cuốn sách kinh điển dành cho lập trình viên. Bạn đã đọc được những cuốn sách nào trong danh sách bên dưới?

1. Code Complete 2

Trong Code Complete, tác giả Steve ghi chú rằng lập trình viên trung bình đọc ít hơn một cuốn sách kỹ thuật mỗi năm. Và với việc đọc cuốn sách này thì đã giúp kéo bạn ra xa khỏi 90% các đồng nghiệp của còn lại. Theo hướng tốt hơn.

Tôi thích cuốn sách này nhiều đến nỗi tên miền blog của tôi (Coding Horror) là xuất phát từ nó. Bạn nên đọc cuốn sách này đầu tiên, và là cuốn sách đầu tiên mà bạn giới thiệu đến các lập trình viên đồng nghiệp của mình.

2. The Mythical Man-Month

Có nhiều ý kiến cho rằng đây là cuốn sách “kinh điển” duy nhất trong lĩnh vực phát triển phần mềm của chúng ta. Nếu bạn vẫn chưa đọc nó, thì thật đáng hổ thẹn.

Đọc cuốn sách kinh điển này chắc chắn sẽ tốt hơn rất nhiều việc bạn sử dụng thời gian để nghiền ngẫm trên hàng ngàn trang tài liệu kỹ thuật mới nhất hiện nay.

3. Don’t Make Me Think 

Nếu bạn chọn đọc chỉ một cuốn sách về usability, thì hãy lựa chọn cuốn này. Nó chứa rất nhiều thông tin tuyệt vời, và hình thức trình bày thì ngắn gọn súc tích, dễ áp dụng theo. Nó phù hợp với bất kỳ độc giả nào: dân kỹ thuật, không phải dân kỹ thuật, người dùng bình thường, lập trình viên, nhà quản lý v.v…

4. Rapid Development

Tiêu đề đầy đủ của cuốn sách này là Rapid Development: Taming Wild Software Development Schedules, nó không chỉ dài dòng và hơi buồn cười, mà nó còn dùng sai từ một cách đáng tiếc nữa.

Rapid Development thì không nói về việc phát triển nhanh ứng dụng như cái tên của nó. Nội dung cuốn sách nói về *thực tế của thất bại*. Phần lớn các dự án phát triển phần mềm đều thất bại: chúng thường vượt quá thời hạn kế hoạch đã đặt ra, tạo ra các kết quả không đạt yêu cầu, hoặc đôi khi thậm chí nó còn không thể kết thúc được. Điều này không còn phải tranh cãi; vì đó là một thực tế đã được thống kê. Có một sự thực không mấy dễ chịu đó là team của bạn phải trở nên giỏi hơn trong việc tránh những thất bại đơn giản để có thể thành công. Trong khi nghe điều này có thể làm bạn nản lòng — vâng, nó thì rất nản lòng — nhưng bạn sẽ vẫn muốn đọc cuốn sách này.

5. Peopleware : Productive Projects and Teams, 2nd Ed

Nếu bạn đã từng nhìn thấy màn trình diễn của một đội bóng toàn ngôi sao nhưng được dẫn dắt bởi một vị huấn luyện viên tồi, thì bạn sẽ đánh giá cao cuốn sách này. Không quan trọng là có bao nhiêu “siêu sao” trong nhóm của bạn, khi không ai trong số họ có thể trao đổi cùng nhau, hoặc đồng ý về bất cứ việc gì. Và không có lập trình viên nào, dù có tài năng đến mấy, có thể làm việc hiệu quả khi luôn luôn bị rào cản bởi những ngắt quãng nhỏ nhặt. Các lập trình viên không đánh giá đúng các kỹ năng về con người của họ, nhưng một điều trớ trêu thay: thành công của dự án của bạn có thể phụ thuộc rất nhiều vào điều đó. Nếu bạn có bất kỳ một khát khao chính đáng để trở thành một “Team Leader” thực thụ thay vì chỉ là cái chức danh hão, thì bạn cần phải đọc cuốn sách này.

6. The Design of Everyday Things

Công việc phát triển phần mềm có thể làm bạn nản lòng đến mức khó tin, bởi vì có quá nhiều thứ có thể trở nên sai sót. Có rất nhiều thứ chúng ta làm là để phòng thủ: cố gắng đoán trước điều gì sẽ trở nên sai trước khi nó xảy ra. Nó là nguyên nhân làm bạn kiệt sức về tinh thần, và thậm chí có thể biểu lộ bản thân theo một số cách khá tiêu cực. Đôi khi tôi mô tả công việc này với những người không chuyên về kỹ thuật như thể tôi đang tạo ra một cái đồng hồ với hàng ngàn chi tiết nhỏ, tất cả chúng có thể hỏng một cách ngẫu nhiên vì những kích thích nhỏ nhất.

7. About Face 3.0: The Essentials of Interaction Design

Cuốn sách này, cùng với cuốn GUI Bloopers, có khuynh hướng trở thành những cuốn sách về quy tắc sư phạm trong việc trình bày một GUI nhất quán. Nhưng đây là một trong những chỉ dẫn đầy đủ nhất mà bạn có thể ứng dụng được.

Không giống như cuốn GUI Bloopers, vì nó xuất bản thời trước khi có web, vì vậy không có sự bàn luận về cách trình bày trên web và nó có tác động đến thiết kế GUI như thế nào. Nhưng nó thì vẫn là một cuốn sách hữu ích tuyệt vời; tôi đã sử dụng chương sách nói về mô hình quản lý thông điệp lỗi (error messages) cho một dự án .NET gần đây.

8. The Inmates Are Running the Asylum

Đây là cuốn sách đã giới thiệu với thế giới về khái niệm personas (con người): thay vì trước đây chúng ta cứ nghĩ người dùng là trừu tượng, khó mô tả, là một nhóm người không xác định, thì giờ đây với khái niệm personas sẽ hướng dẫn chúng ta nói chuyện về những người dùng xác định, người mà có tên, có cá tính, có nhu cầu và mục tiêu. Liệu người dùng (users) của chúng ta có muốn chức năng print preview không? Bố ai mà biết được? Nhưng nếu Gerry Manheim là kế toán trưởng, và anh ta phải in ra bảng báo cáo chi tiêu hàng tuần như là một phần công việc của mình, thì tốt hơn là bạn nên tin rằng chức năng print preview cần phải có trong phần mềm. Không có gì thần kỳ ở đây cả; luôn phải biết người dùng của bạn là ai và họ thực sự muốn làm gì — và kỹ thuật sử dụng khái niệm personas đúng là một cách rất tuyệt vời.

Một bài học ẩn chứa phía sau cuốn sách này đó là đôi khi thiết kế của bạn có tốt như thế nào chăng nữa cũng không quan trọng: phần mềm cho máy scanner và phần mềm phát triển web được sử dụng làm ví dụ trong cuốn sách này, cả hai đều thất bại trên thị trường vì những lý do rằng không có gì phải làm với tính usability của chúng cả.

9. GUI Bloopers

Đây là một cuốn sách đặc sắc trong việc thiết kế GUI, về tính nhất quán trong các menu, việc căn lề các button và các text trên các cửa sổ dialog. Bạn có thể tranh luận rằng liệu có bao nhiêu người dùng có thể thực sự hiểu về những quy tắc này, nhưng it ra thì họ cũng có thể mong chờ giao diện người dùng của ứng dụng A có cách bố trí rất giống với ứng dụng B.

10. Programming Pearls (2nd Edition)

Programming Pearls là cuốn sách hay tiếp theo để bạn làm việc bên cạnh như thể đang làm cùng với một lập trình viên tài năng vậy. Nó là một tập hợp của những khôn ngoan của nhiều lập trình viên “cao thủ” đã được chưng cất và cô đọng lại, nhưng khá dễ hiểu.

Chỉ cần đọc lướt qua cuốn sách, lờ đi các phần code. Chương 8, “Back of the Envelope” thì quan trọng, có thể là phương pháp ước lượng tốt nhất mà tôi đã từng được nhìn thấy. Nó cũng tiến một bước dài về phía trước để giảng giải về những câu hỏi phỏng vấn điên khùng mà các công ty thường sử dụng để làm phiền chúng ta.

11. The Pragmatic Programmer

Tác giả đã đưa vào tất cả những hướng tiếp cận mà họ đã nhận thấy nó làm việc trong thế giới thực vào trong một cuốn sách này. Không phải tất cả những thứ này đều là về kỹ thuật lập trình. Ví dụ, việc hỏi bản thân rằng “Tại sao tôi lại làm điều này? Liệu làm việc này thậm chí có chút giá trị nào chăng?” thì không phải đang nghĩ ra ngoài cái hộp (thinking outside the box); nó là một điều gì đó bạn nên tổ chức vào trong các hoạt động hàng ngày để giữ cho bản thân mình — và đồng nghiệp của bạn — luôn được sảng khoái. Và chính điều đó đã làm cho Pragmatic Programmer trở thành một cuốn sách tuyệt vời.

12. Designing Web Usability

Tác giả Jakob Neilsen nổi tiếng vì trang web usability của ông, và nghề nghiệp là một chuyên gia về usability từ những năm 1989 khi mà cuốn sách đầu tiên của ông được xuất bản. Cuốn sách Designing Web Usability là một khóa học đầy đủ kiến thức căn bản về web usability, nhưng nó có một chút khác biệt hơn các cuốn sách hướng GUI của tác giả Cooper ở trên.

13. The Visual Display of Quantitative Information

14. Visual Explanations: Images and Quantities, Evidence and Narrative

15. Envisioning Information

Thông tin thì rất “đẹp”. Và một giao diện người dùng GUI được thiết kế tốt cũng vậy. Bạn không cần phải sở hữu tất cả 3 cuốn sách trong sê-ri này trừ khi bạn là một người hoàn hảo, nhưng 2 cuốn đầu thì rất cần thiết.

16. Mastering Regular Expressions, Second Edition

Hệ điều hành UNIX thường nổi tiếng một cách xứng đáng vì độ phức tạp và không thể xâm nhập. Và Regular Expressions cũng nổi tiếng như vậy

Một khi bạn đã nhảy vào thế giới của regular expressions, thì bạn có thể sẽ trở nên mê mẩn với sức mạnh tuyệt vời và tiềm năng mà chúng có.

Nguồn: ITPlus Academy

 

Bài viết cùng chủ đề