Top textbooks for data structures
Contents
The algorithms reading roadmap is: Algorithms -> CLRS -> Introduction to Analysis of Algorithms -> TAoCP.
Algorithms, Robert Sedgewick and Kevin Wayne
The book itself is outstanding. IMO, this is the best textbook for students who really want to learn “algorithms” regarding implementation and its analysis. Compared to CLRS, Sedgewick’s approach is more accessible and takes more care about how an algorithm is actually implemented. Besides, the booksite and the course in Coursera, especially the programming assignments and quiz, are extremely useful. Other aspects of the books including algorithm design (OOP), coding style and comment are very good. Readers not only study about algorithms but also about software engineering.
Introduction to Algorithms, 3rd Edition
CLRS is a great reference but learning algorithms from it is like trying to learn English by reading the dictionary.It’s great if you already know stuff and are looking for clarity or in the context of a course / class because someone has structured the curriculum already. But on its own is just a bunch of info.
An Introduction to the Analysis of Algorithms
This is a highly digestible math book and the focus is on a formal approach of accurate analysis (not just worst case or average case) for most algorithms. It is not a substitute of the CLRS or other popular textbooks, it is a somewhat different approach. The text tells you what you need to worry about when analyzing algorithmic topics, and explains the “how"s very clearly and nicely paced. The effect is that while reading, I never have the dread that I am not able to finish a typical thousand-page theory book. It prepares you for the author’s Analytic Combinatorics and Knuth’s TAOCP, but I find it equally useful just to better understand algorithms overall.
The Art of Computer Programming (TAOCP)
This is the Bible of programming that should be on every programmer’s bookshelf. They look beautiful in the boxed set with high quality covers as well as pages. Bill Gates once said about these books: “If somebody is so brash that they think they know everything, Knuth will help them understand that the world is deep and complicated.” I think that they are great for reference. Now that I am no longer in an academic setting, I think that I can enjoy expanding my knowledge base slowly moving through this content. For any programmer looking to enhance their knowledge base, this is the perfect book set to invest in.
By the way, list some the best free / online courses to gain a further understanding of CS theory and other closely related theory.
- Foundations of Computer Science - http://infolab.stanford.edu/~ullman/focs.html
- Specifying Software: A Hands-On Introduction - https://www.amazon.com/Specifying-Software-Hands-Introductio… The name is a misnomer. See the ToC. This is actually a practical introduction to CS theory.
- Teach Yourself Computer Science - https://teachyourselfcs.com/
- Problem Solving with Algorithms and Data Structures using Python - https://runestone.academy/runestone/books/published/pythonds/index.html
- Types and Programming Languages - https://www.cis.upenn.edu/~bcpierce/tapl/
- The TLA+ Video Course - http://lamport.azurewebsites.net/video/videos.html
- How to Design Programs - https://www.htdp.org/
Author Canary
LastMod November 14, 2019