The moment when one wants to learn about algorithms comes in every self-taught programmer’s life. Python can sort your lists, so learning about Quicksort algorithm seems to be wasting your time for a rookie. However at some point in your life, you encounter problems that can be solved with the algorithmic toolbox. This post presents six books, which introduce you into the world of algorithms at different levels.
The Golden Ticket – for beginners
This book assumes no technical background, but only serious interest in the topics. Why do we study algorithms? Anyway, what is an algorithm? What is P, NP distinction? This book sheds light on the fundamental questions of computer science.
Nine Algorithms That Changed The Future – for seasoned beginners
How do search engines work? How does public key cryptography protect our secrets? Why do we need databases and what kind of algorithms make their usage fast and reliable? How do the fancy pattern recognition algorithms work? This book is more technical than The Golden Ticket and it assumes some IT literacy and technological maturity from its readers, but it gives a very easy to follow description of the algorithms, which are shaping our present and future.
Grokking Algorithms – for intermediate programmers
If you can get by with Python, this book is for you! Grokking Algorithms covers the basic algorithms. Its explanations are very clear and it uses a non-technical language. Also, the Python examples are enlightening! This book teaches you the basic algorithmic toolbox, since it introduces you to sorting, graph search, dynamic programming. You even get a short intro into machine learning algorithms too. Don’t expect too much! This book is about the basics, so having finished reading it you won’t be an expert. However, this title helps you understand algorithmic design and it encourages you to develop the vocabulary that is necessary for further self-study.
Algorithms Unlocked – for the technically inclined
This title is still not a theoretically detailed introduction to algorithms, but it gives a glimpse into the hard, math oriented side of computer science. Don’t be afraid of the theory! It’s not a treatise on algorithmic theory, it is rather a distilled version of an algorithm textbook for hobbyists and self-taught programmers. Try to implement the algorithms in Python (or using your favorite programming language) when you are reading this book, and you’ll have a blast!!!!
Classic Computer Science Problems with Python – for the intermediate/advanced Pythonista
This book is for those who are at least intermediate programmers. Although its preface says that you shouldn’t know anything about algorithms to work through this book, we think it is very helpful to get some sort of basic knowledge of the problems before reading this book – e.g. the material covered in Grokking Algorithms and/or Algorithms Unlocked. Also, if you are new to Python 3, and you have never ever used type hints before, this book is not for you! However, if you are a confident Python 3 programmer and you are not afraid of going through online tutorials (e.g. you are using https://realpython.com/ for learning about new concepts on a regular basis and you are OK with tutorials referring to software documentations), go for this title! This book covers all the classic algorithms and even it shows you how neural networks work. Yes, this is not for beginners, but by the time you’ve finished this book, you’ll know the nuts and bolts of algorithms.
Introduction to Algorithms – for the theoretically inclined
This is a standard textbook in the English speaking world and it really gets into the details. If you are serious about learning algorithms, there is no excuse for not reading it!
Bonus: MIT OCW – free online courses for the motivated
We found the following two courses very helpful:
The mandala-like structure on the header image is a Penrose tile, generated by us using Inkscape’s built-in L-system renderer. L-systems, or Lindenmayer systems are popular algorithms to generate plant-like structures.
Subscribe to our newsletter
Get highlights on NLP, AI, and applied cognitive science straight into your inbox.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.