Table of Contents
Today we’re looking at some of the best dynamic programming books of this year.
What is dynamic programming?
Dynamic programming is an algorithmic technique that solves complex problems by breaking them into sub-problems. Each of these smaller problems is then individually solved.
The solutions of the subproblems is then finally used to solve the original complex problem.
Dynamic programming saves us time by optimizing recursive programming.

What are some dynamic programming prerequisites?
According to Section.io, there are three components you should have under wraps before pursuing dynamic programming:
1️⃣ programming
2️⃣ time complexity
3️⃣ recursion
What’s the difference between greedy and dynamic programming?
Greedy algorithms tend to make a “greedy choice,” or the choice that looks best in the moment, to solve a subproblem. And it doesn’t bother to solve related subproblems.
On the other hand, dynamic programming first finds optimal solutions to subproblems, then makes an informed choice. As a result, dynamic programming is generally more efficient.
This post contains affiliate links. We may receive compensation if you buy something. Read our disclosure for more details.
TLDR: Best Dynamic Programming Books
🔥 Best Overall 🔥
Dynamic Programming and Optimal Control
💥 Best for Newbies 💥
Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming
💸 Best Value 💸
Dynamic Programming for Coding Interviews
Best Dynamic Programming Books for Beginners
Now let’s take a look at the best dynamic programming books for beginners.
Books 1-8 are for dynamic programming newbies.
Books 9 and 10 are for advanced dynamic programmers.
You’ll discover their:
- features
- core concepts
- layout
- comparisons
And more.
1. Dynamic Programming and Optimal Control
↘️ Ideal for: dynamic programming newbies
↘️ Topics covered: fundamentals, dynamic programming problems, optimal control
Dynamic Programming and Optimal Control is written by Dimitri Bertsekas, a computer scientist, mathematician and electrical engineer. He’s a McAfee Professor at MIT and Fulton Professor at Arizona State Univeristy.
- Learn dynamic programming fundamentals
- Discover infinite horizon
- Explore perfect and imperfect state
➡️ In our opinion, Dynamic Programming and Optimal Control is one of the best dynamic programming books overall.
Packed with examples, exercises and solutions, this book was developed after MIT courses. In fact, you can find slides and videos to accompany the book posted on MIT’s Open Courseware site.
You’ll explore a variety of dynamic programming concepts such as:
✅ deterministic systems and the shortest path
✅ approximate dynamic programming
✅ deterministic continuous time-optimal control
And much, much more.
You’ll also dig deep into problems concerning infinite horizon alongside perfect and imperfect state information.
What readers are saying about Dynamic Programming and Optimal Control:
… If you are interested in reinforcement learning / dynamic programming / control this is an excellent introduction to the topic.
– Devendra Kumar
2. Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming
↘️ Ideal for: Dynamic Programming newbies
↘️ Topics covered: greedy algorithms, dynamic programming
Algorithms Illuminated is similar to Dynamic Programming and Optimal Control, but is more beginner-friendly.
Sticking to the basics, Algorithms Illuminated takes a language-agnostic approach to teaching algorithms. In book 3, you’ll learn about greedy algorithms and dynamic programming.
- Learn about greedy algorithms
- Explore knapsack and shortest paths
- Discover optimal search trees
➡️ We think Algorithms Illuminated (Part 3) is one of the best dynamic programming books for beginners.
The first half of the book covers greedy algorithms. Then we get into the meat of dynamic programming while learning about:
✅ knapsack
✅ shortest paths
✅ sequence alignment
✅ optimal search trees
And more.

In addition to problems and quizzes, you’ll find accompanying videos by author (and computer science professor at Columbia University) Tim Roughgarden on YouTube.
3. Dynamic Programming for Coding Interviews
↘️ Ideal for: developers preparing for coding interviews
↘️ Topics covered: dynamic programming coding problems
Dynamic Programming for Coding Interviews is completely different than Dynamic Programming and Optimal Control and Algorithms Illuminated Part 3.
That’s because with Dynamic Programming for Coding Interviews, you’ll be preparing for your FAANG interview (or similar).
- Learn how to solve dynamic programming problems
- Find refreshers on recursion and optimal structure
- Work on challenging coding problems
➡️ Dynamic Programming for Coding Interviews is possibly one of the best dynamic programming books for developers on a budget.
You’ll start with a gentle refresher on dynamic programming concepts like:
✅ recursion
✅ optimal substructure
✅ overlapping subproblems
✅ memoization

Next you’ll learn strategies for attacking dynamic programming questions.
Finally, you’ll dive deep into challenging dynamic programming problems.
4. Grokking Algorithms
↘️ Ideal for: dynamic programming newbies
↘️ Topics covered: dynamic programming, greedy algorithms, recursion
Grokking Algorithms is part of the Grokking series published by Manning.
It’s different than any other book on our list because you’ll conquer various types of algorithms in addition to dynamic programming.

➡️ Grokking Algorithms is arguably one of the best dynamic programming books for covering multiple algorithms.
You’ll start with a basic introduction to algorithms while exploring:
✅ recursion
✅ hash tables
✅ Dijkstra’s algorithm
✅ greedy algorithms

Then you’ll finally dig into dynamic programming where you’ll tackle the knapsack problem and longest common substring.
With each problem, you’ll be presented with theoretical questions alongside real-time solutions.
While the dynamic programming section only covers about 25 pages, we believe Grokking Algorithms is a great introduction to dynamic programming.
5. Decision Theory: An Introduction to Dynamic Programming and Sequential Decisions
↘️ Ideal for: dynamic programming newbies
↘️ Topics covered: deterministic and stochastic dynamic programming, Markov decision processes
Because both are geared towards beginners, Decision Theory published by Wiley is similar to Dynamic Programming and Optimal Control.
But with Decision Theory, you’ll go hard on advanced concepts as well.

➡️ Decision Theory is perhaps one of the best dynamic programming books for learning both beginner and advanced dynamic programming concepts.
You’ll start with a general introduction to dynamic programming and its history.
From there, the book is divided into three sections:
First you’ll look at deterministic models. It’s here where you’ll dissect multi-stage decision problems, networks and convexity.

Second, you’ll work with stochastic models like optimal stopping and special problems.
Finally, you’ll learn about the theory of Markov Decision Processes. You’ll also explore how to test statistical hypotheses.
6. Programming Interview Problems: Dynamic Programming
↘️ Ideal for: developers preparing for coding interviews
↘️ Topics covered: dynamic programming interview questions
Like Dynamic Programming for Coding Interviews, Programming Interview Problems is meant to help you prepare for the dynamic programming portion of your coding interview.
But with Programming Interview Problems, you’ll find detailed solutions in Python, tons of illustrations and multiple solutions for each problem.

➡️ We believe Programming Interview Problems: Dynamic Programming is one of the best dynamic programming books for preparing for your coding interview.
You’ll find dynamic programming questions that are commonly asked at coding interviews.
There are over 350 illustrations. In addition, you’ll find detailed solution walkthroughs with clear explanations on how to approach and solve problems.

In addition, you’ll uncover clarifying questions you should ask at coding interviews.
You’ll also explore time and space complexity analysis.
7. Dynamic Programming
↘️ Ideal for: Dynamic programming newbies
↘️ Topics covered: dynamic programming fundamentals
Dynamic Programming is by far the oldest book on our list. While it’s published in 2003 with a new introduction, the information is from the 1957 classic by Richard Bellman.
🧠 Fun fact: Richard Bellman was an applied mathematician who introduced dynamic programming in 1953.

➡️ Dynamic Programming is possibly one of the best dynamic programming books for learning the classic fundamentals of dynamic programming.
You’ll uncover a series of methods and existence theorems alongside examples for solving equations.
You’ll also explore:
✅ bottleneck problems
✅ optimal inventory equation
✅ Markovian decision processes
✅ strategies behind multistage games
And much more.

8. Dynamic Programming: Models and Applications
↘️ Ideal for: developers new to dynamic programming, developers experienced with dynamic programming
↘️ Topics covered: beginner and advanced concepts
Dynamic Programming: Models and Applications is a soft introduction to dynamic programming. It also provides advanced learning materials.

➡️ We think Dynamic Programming: Models and Applications is one of the best dynamic programming books for those both new to and experienced in dynamic programming.
You’ll begin with an introduction to sequential decision processes used in dynamic programming.
Then you’ll explore:
✅ production control
✅ inventory control models
✅ methods for approximating solutions
And decision making.
Finally, you’ll work with sequential decision processes.

Advanced Dynamic Programming Books
As if dynamic programming wasn’t hard enough, here are some even more challenging dynamic programming books.
9. Markov Decision Processes: Discrete Stochastic Dynamic Programming
↘️ Ideal for: advanced students, professional practitioners, researchers
↘️ Topics covered: Markov decision processes
Markov Decision Processes is dedicated exclusively to discrete-time stochastic dynamic programming.

➡️ Markov Decision Processes is arguably one of the best dynamic programming books for learning about the Markov decision processes.
Packed with illustrations, you’ll explore Markov decision process models alongside various types of research:
✅ theoretical
✅ computational
✅ applied

While there’s a strong focus on infinite-horizon discrete-time models, you’ll also discover arbitrary state spaces and finite-horizon models.
Finally, you’ll dissect policy iteration and sensitive optimality.
10. Abstract Dynamic Programming
↘️ Ideal for: advanced students
↘️ Topics covered: core theory and algorithms
Like Dynamic Programming and Optimal Control, Abstract Dynamic Programming is written by Dimitri Bertsekas.
But Abstract Dynamic Programming is for advanced students.

➡️ In our opinion, Abstract Dynamic Programming is one of the best dynamic programming books for learning abstract programming.
It covers core theory, algorithms and mathematical character.
You’ll also uncover monotonicity and contraction.
With new research, you’ll focus on properties in the context of algorithms and semicontractive models.
Best Dynamic Programming Books: Conclusion
Today we looked at the best dynamic programming books including:
🔥 Best Overall 🔥
Dynamic Programming and Optimal Control
💥 Best for Newbies 💥
Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming
💸 Best Value 💸
Dynamic Programming for Coding Interviews
So whether you’re just getting started or are in the throes of advanced dynamic programming, we think these are the best dynamic programming books for this year.
Readers of Best Dynamic Programming Books are also reading:
- Grokking Dynamic Programming Patterns for Coding Interviews
- Best Way to Learn Algorithms
- 8 Courses to Learn Algorithms and Data Structures
- 18 All-Time Best Books for Data Structures
- 11 Best Algorithms Books
What is dynamic programming?
Dynamic programming is an algorithmic technique that solves complex problems by breaking them into sub-problems. Each of these smaller problems is then individually solved. The solutions of the subproblems is then finally used to solve the original complex problem. Dynamic programming saves us time by optimizing recursive programming. Learn more about dynamic programming in today’s article where we’re looking at the best dynamic programming books of this year.
What are some dynamic programming prerequisites?
According to Section.io, there are three components you should have under wraps before pursuing dynamic programming: programming, time complexity and recursion. Learn more about dynamic programming in today’s post.
What are the best dynamic programming books?
We picked what we think are the best dynamic programming books. Overall, we liked Dynamic Programming and Optimal Control. For newbies, we chose Algorithms Illuminated Part 3: Greedy Algorithms and Dynamic Programming. And for best value, we selected Dynamic Programming for Coding Interviews. Learn more about these books in today’s article where we’re looking at the best dynamic programming books of this year.
Is there a dynamic programming Python book?
Yes, there is a dynamic programming Python book called Programming Interview Problems: Dynamic Programming with Solutions in Python. You’ll find dynamic programming questions that are commonly asked at coding interviews. There are over 350 illustrations. In addition, you’ll find detailed solution walkthroughs with clear explanations on how to approach and solve problems. Learn more about this and other dynamic programming books in today’s post.
What’s the difference between greedy and dynamic programming?
Greedy algorithms tend to make a “greedy choice,” or the choice that looks best in the moment, to solve a subproblem. And it doesn’t bother to solve related subproblems. On the other hand, dynamic programming first finds optimal solutions to subproblems, then makes an informed choice. As a result, dynamic programming is generally more efficient. Learn more about dynamic programming in today’s article.