The Book of Recursion Cover

The Recursive Book of Recursion

Ace the Coding Interview with Python and JavaScript
by Al Sweigart
July 2022, 328 pp.
ISBN-13: 
9781718502024
Lay-flat binding

Download Chapter 1: WHAT IS RECURSION?

 

Recursion has an intimidating reputation: it’s considered to be an advanced computer science topic frequently brought up in coding interviews. But there’s nothing magical about recursion. 

The Recursive Book of Recursion uses Python and JavaScript examples to teach the basics of recursion, exposing the ways that it’s often poorly taught and clarifying the fundamental principles of all recursive algorithms. You’ll learn when to use recursive functions (and, most importantly, when not to use them), how to implement the classic recursive algorithms often brought up in job interviews, and how recursive techniques can help solve countless problems involving tree traversal, combinatorics, and other tricky topics.
 
This project-based guide contains complete, runnable programs to help you learn:

  • How recursive functions make use of the call stack, a critical data structure almost never discussed in lessons on recursion
  • How the head-tail and “leap of faith” techniques can simplify writing recursive functions
  • How to use recursion to write custom search scripts for your filesystem, draw fractal art, create mazes, and more
  • How optimization and memoization make recursive algorithms more efficient

Al Sweigart has built a career explaining programming concepts in a fun, approachable manner. If you’ve shied away from learning recursion but want to add this technique to your programming toolkit, or if you’re racing to prepare for your next job interview, this book is for you.

Author Bio 

Al Sweigart is a software developer, fellow of the Python Software Foundation, and author of several programming books with No Starch Press, including the worldwide bestseller Automate the Boring Stuff with Python.

Table of contents 

Foreword
Acknowledgments 
Introduction

PART I: UNDERSTANDING RECURSION
Chapter 1: What Is Recursion? 
Chapter 2: Recursion vs. Iteration 
Chapter 3: Classic Recursion Algorithms 
Chapter 4: Backtracking and Tree Traversal Algorithms 
Chapter 5: Divide-and-Conquer Algorithms 
Chapter 6: Permutations and Combinations 
Chapter 7: Memoization and Dynamic Programming 
Chapter 8: Tail Call Optimization 
Chapter 9: Drawing Fractals 
PART II: PROJECTS 
Chapter 10: File Finder 
Chapter 11: Maze Generator 
Chapter 12: Sliding-Tile Solver 
Chapter 13: Fractal Art Maker 
Chapter 14: Droste Maker 
Index

All chapters are included in the Early Access PDF.