Programming Pearls

Programming Pearls - Jon Bentley

Xuất sắc.

Chưa có một cuốn sách nào về lập trình khi tôi mua về, khui thùng của Amazon ra và lượn 1, 2 trang để thốt lên 1 từ xuất sắc” cả. Điểm qua một số sách về “Al­go­rithms” mà tôi từng đọc và tìm hiểu:

  • CLRS: về mặt lý thuyết, đây thực sự là introduction” nhưng đầy đủ và chi tiết. Tôi không quá ấn tượng bởi cách viết và mã giả.
  • Algorithms, Sedgewick: một trong những cuốn tôi rất thích, code sử dụng Java và hoàn toàn chạy được, cách chứng minh về cor­rect­ness và com­plex­ity dễ tiếp cận, đồng thời minh họa trong sách phải nói là ấn tượng. Điều làm tôi không hài lòng là giấy quá mỏng, cách viết hơi đơn điệu và tuy có sử dụng OOP nhưng không đề cập nhiều.
  • TAoCP: hoàn toàn hàn lâm.
  • Elements of Programming Interviews: một cuốn thuần túy để luyện đi in­ter­views.

Programming Pearls hoàn toàn ngược lại, đây là cái nhìn của 1 en­gi­neer về sử dụng thuật toán trong công việc và giải quyết các vấn đề. Hay đúng hơn là cuộc hành trình của Jon Bentley. Dĩ nhiên Jon Bentley quá nổi tiếng là tác giả kd-tree, nhưng trước đây ông còn là thánh re­view code” khi có khá nhiều người gửi code để ông đánh giá [có cả Knuth khi ông đi quảng cáo Literate Programming].

Sách tuy mỏng nhưng chứa đựng đầy ngọc”, cách viết thú vị và hài hước, xen lẫn đó là cách tiếp cận đầy khoa học, tham khảo đầy đủ và toàn diện cùng những câu đố khá hay đáng làm tài liệu luyện pro­gram­ming cũng như cách nhìn nhận của 1 người làm in­dus­try vào các giải thuật và cách sử dụng hiệu quả, đặc biệt là cách mà tác giả tiếp cận vấn đề, sử dụng nhuần nhuyễn các kỹ thuật để giải quyết.

Về mặt học thuật”, tôi nghĩ khả năng của Bentley là không bàn, nhưng đứng về mặt engineer” thì cuốn sách này thế nào? Xin trích dẫn từ lời của Steve McConnell [tác giả Code Complete]:

… Programming Pearls was one of the most in­flu­en­tial books I read early in my ca­reer, and many of the in­sights I first en­coun­tered in that book stayed with me long af­ter I read it. …

p.s: Ít có cuốn sách lập trình nào mà tác giả tự tin nói tao đọc hết 3 vol­ume của TAoCP và biết khi gặp vấn đề nào thì nên tra phần nào”, và cũng ít có cuốn nào vừa tham khảo CLRS, Algorithms in C, TAoCP, Ullman’s books vừa tham khảo Code Complete, The Mythical Man-Month…