Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Tổng hợp 10 ebook về thuật toán mọi lập trình viên phải đọc qua ít nhất 1 lần (Phần 1)

Những ai nghĩ rằng Thuật toán và Cấu trúc Dữ liệu chỉ dành cho những ai muốn làm việc ở Amazon, Google, Facebook, Intel hay Microsoft,.. thì hãy nhớ đây là kỹ năng duy nhất tồn tại bền vững cùng thời gian, tất nhiên không kể đến UNIX và C. Ngôn ngữ mới rồi sẽ có ngôn ngữ mới hơn, nhưng cái cốt lõi của lập trình, đó là Thuật toán và Cấu trúc Dữ liệu vẫn sẽ được giữ nguyên. Nếu bạn biết Hash Table hoạt động như thế nào thì bạn có thể triển khai chúng trong bất kỳ ngôn ngữ lập trình nào, ví dụ: HashMap từ JDK hoặc HashMap từ C++. Vì vậy, nếu thật sự muốn phát triển sự nghiệp lập trình thì ngay từ bây giờ, hãy dành thời gian để xem qua những cuốn sách được đánh giá cao về thuật toán:

1. Introduction to Algorithms của tác giả Thomas H. Corman

Đây là một trong những cuốn sách về thuật toán bán chạy nhất, nhưng theo tôi thấy cuốn sách này khá thiên về lý thuyết. Hiện cuốn sách này đã co ấn bản thứ 3, và tôi thiết nghĩ mọi lập trình viên nên có cuốn này, nhưng chỉ để đọc và tham khảo.

2. Algorithms của Robert Sedgewick & Kevin Wayne

Đây là cuốn sách ưa thích từ lâu của tôi về các thuật toán, nhưng bây giờ tôi ít đọc nó hơn so với trước đây. Bạn sẽ tìm thấy nhiều nền tảng về thuật toán. Hiện nay, các ấn bản của sách này có sẵn các ngôn ngữ lập trình khác nhau, ví dụ như Java và C++. Ngoài ra còn có cả một lớp học trực tuyến trên Coursera về cuốn sách này, bao gồmThuật toán Phần 1 và Thuật toán Phần 2. Thật tuyệt vời phải không nào? Tôi đã từng đề xuất cuốn sách này cho các lập trình viên Java trong chỗ tôi làm đấy! 

3. The Algorithm Design Manual của Steve S. Skiena

Một cuốn sách khá hay khác về thuật toán máy tính và mã hóa. Điều tôi thực sự thích về cuốn sách này là tác giả đã đưa ra những ví dụ về những chỗ ông đã sử dụng các thuật toán (hoặc các biến thể của chúng) trong thực tế. Nó thực sự giúp bạn xem xét nhiều khía cạnh của vấn đề khi sử dụng thuật toán (hoặc các thuật toán liên quan khác).

Tất cả các mã đều viết theo ngôn ngữ C, nhưng theo tôi nó rất dễ hiểu ngay cả cho những người mới bắt đầu.

Từ khi tốt nghiệp, cuốn sách này đã giúp tôi bắt kịp xu thế của các thuật toán đồ thị trong khoảng thời gian ngắn. Cuốn sách đã theo tôi gần 10 năm rồi, và thi thoảng tôi vẫn đọc lại nó.

4. Algorithms for Interviews

Algorithms for Interviews của Adnan Aziz đem đến một cái nhìn hoàn toàn mới về Thuật toán cho lập trình viên. Bìa sách khá thú vị như nội dung của nó vậy. Nếu bạn nhìn kỹ, bạn sẽ thấy phần hình ảnh trên trang bìa được thiết kế bằng các hình thu nhỏ của những người nổi tiếng. Tôi khá thích cuốn sách này vì cách tiếp cận và mục tiêu của nó. Một cách nào đó, nếu tiếp cận một vấn đề bằng nhiều cách khác nhau, ta có thể sẽ hiểu rõ bản chất của vấn đề đó hơn.

5. Algorithms in a Nutshell

Algorithms in a Nutshell của O’Reilly là một cuốn sách thú vị, giúp bạn hiểu thêm rất nhiều thuật toán lập trình, đặc biệt là cho các lập trình viên Java. Nó mô tả các thuật toán và tập trung vào việc thực hiện chúng. Đặc biệt, cuốn sách này hoàn toàn không thiên về toán học nhiều. Tất cả các thuật toán được trình bày dưới dạng mẫu, hình ảnh và mã (C, C++, Java, Ruby), cho người đọc một cái nhìn tổng quan cấp cao. Tóm lại, đây là một trong những cuốn sách hay cho các lập trình viên.

Via techtalk.vn