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:
Đây thực sự là cuốn sách hay thứ hai sau Introduction to Algorithms của Thomas Cormon. Cuốn sách này không thực sự dành cho các lập trình viên kinh nghiệm. Nó thiên về mảng thiết kế thuật toán cho những lập trình viên đã quen thuộc với những thuật toán cơ bản.
Nếu bạn thích tự mày mò học hỏi thì cuốn sách này rất hợp với bạn, do nó đưa ra hàng ngàn vấn đề và ví dụ để bạn thử nghiệm. Sách được thiết kế với mục đích nâng cao khả năng giải quyết vấn đề của người đọc và sự hiểu biết về các nguyên tắc đằng sau thiết kế thuật toán, giúp bạn kỹ năng mã hóa và lập trình của bạn lên trình rất nhiều.
Không từ nào có thể dùng để miêu tả được cuốn sách này hú vị đên mức nào đâu! Một khi bạn đã hoàn tất lớp Coursera về thuật toán và có kiến thức cơ bản về Thuật toán rồi, bạn có thể tìm đọc cuốn sách này để nghiên cứu các chủ đề nâng cao trong thuật toán.
Tin vui cho những lập trình viên không thích ứng dụng quá nhiều toán học vào chương trình của mình đây. Cuốn sách này được viết rất rõ ràng và mạch lạc, cũng như không chú trọng vào toán học. Tôi cá rằng nhiều lập trình viên sẽ thích cuốn sách này lắm!
Nếu bạn đang theo học ngôn ngữ Python thì cuốn sách này dành cho bạn. Magnus Lie Hetland cũng là tác giả của cuốn sách về Python khá nổi tiếng, Beginning Python. Cuốn sách này tập trung nhiều vào thuật toán đồ thị. Như tôi đã nói rằng các thuật toán là ngôn ngữ độc lập, học Python không có nghĩa là bạn không thể áp dụng các công thức ấy trong Java hoặc C++, nhưng nếu bạn đã biết Python thì đây là cuốn sách tuyệt vời để học các thuật toán máy tính.