Books for Learning Algorithms and Data Structures

This page contains recommendations for books to help you learn about algorithms and data structures. There is a lot of territory between beginner and advanced level Python programming, and the best way to cross this distance is through practice and study. Strong algorithmic thinking skills are what distinguish average developers from the true experts. As new problems constantly present themselves, we need to recognize and understand underlying principles and have a wide range of skills at our disposal to create effective solutions. You can help yourself to become an expert developer by reading and studying some of the intermediate to advanced books recommended on this page. They will improve your skills, and also feed your mind, providing motivation and interest.

Be aware that studying algorithms and data structures is not the same as simply learning to program. There are many concepts to understand, and often a fair bit of mathematical ability is needed. This is not to put you off, but just to warn you that if your absolutely hate mathematics, or really struggle with it, then getting into algorithms and data structures could be challenging. That said, it’s also possible that coming across mathematics in the context of computing gives the subject a whole new dimension that could rekindle your interest or give you the incentive your need to overcome any residual “maths trauma” you may have experienced in your education.

Some of the things you will learn about if you decide to study data structures and algorithms are:

  • The Divide and conquer strategy
  • The Transform and conquer strategy
  • Searching algorithms
  • Sorting algorithms
  • Data Structures such as arrays, stacks, queues etc.
  • Greedy algorithms
  • Recursion
  • Algorithms on Graphs/Trees
  • Time and Space Complexity
  • Dynamic programming

Recommended Books for Learning Algorithms and Data Structures

Please note, as an Amazon Associate I earn from qualifying purchases.

Introduction to Algorithms, 3rd Edition (The MIT Press)

A classic text for learning algorithms and data structures. Quite heavy going, so not for the faint-hearted, but very thorough and high-quality material.

Grokking Algorithms: An illustrated guide for programmers and other curious people

This is a fantastic book which makes learning about algorithms fun and easy. Excellent illustrations which really support understanding. Highly recommended for anyone wishing to master algorithms with Python.

Classic Computer Science Problems in Python

A detailed and fascinating dive into some classic Computer Science problems. This book is for intermediate to advanced students. Be aware that Python type hints are used throughout, which some people find adds rigour, but which others may find distracting.

Introduction to the Design and Analysis of Algorithms

This is a really solid text on algorithms packed with exercises and examples. The mathematical content is not particularly advanced but you will definitely need to be prepared to do some mathematical reasoning the get the most from this book.

Data Structures and Algorithms with Python (Undergraduate Topics in Computer Science)

A good thorough guide to data structures and algorithms with Python. Contains clear illustrations to aid understanding. Solutions are available on request to the author.

Data Structures and Algorithmic Thinking with Python

This is a good, thorough treatment of data structures and algorithmic thinking, which is particularly suited to Python programmers. Contains lots of puzzles and solutions to most of the exercises.

Problem Solving with Algorithms and Data Structures Using Python SECOND EDITION

This is a nice book on Algorithms and Data Structures with Python. The descriptions and code examples are clear and there are lots of practice exercises to help develop your skills and consolidate your learning.

Python books for beginners

If you are a newcomer to Python programming and algorithmic thinking, you will probably be better off starting with a more beginner-friendly book, such as one of the ones described here: Python books for beginners.

Compucademy Articles on Data Structures and Algorithms

To get a feel for the kind of material you will find in these recommended books on Algoritms and Data structures, check out some of my articles on the subject on this blog:

Algorithmic thinking with python part 1 – brute force algorithms
Algorithmic thinking with python part 2 – decrease and conquer strategy
Algorithmic thinking with python part 3 – divide and conquer strategy


This page describes some recommended books for learning about data structures and algorithms, with an emphasis on Python programming. I hope you find it helpful.

Happy computing!

Sharing is caring!

Leave a Reply

Your email address will not be published. Required fields are marked *