An accessible yet rigorous crash course on recursive programming using Python and JavaScript examples. 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 recursionHow the head-tail and "leap of faith" techniques can simplify writing recursive functionsHow to use recursion to write custom search scripts for your filesystem, draw fractal art, create mazes, and moreHow 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: Al Sweigart
Binding Type: Paperback
Publisher: No Starch Press
Published: 08/16/2022
Pages: 328
Weight: 1.6lbs
Size: 8.90h x 6.80w x 0.60d
ISBN: 9781718502024
About the AuthorAl Sweigart is a software developer and tech book author living in Houston. Python is his favorite programming language, and he is the developer of several open source modules for it. His other books are freely available under a Creative Commons license on his website at https: //www.inventwithpython.com/.