An introduction to recursion and the Python-specific functionality for recursion. Recursion is not just for computer science wizards, and this talk breaks it down into smaller (and smaller!) concepts.
Recursion has an intimidating reputation for being the advanced skill of coding sorcerers. But in this tutorial we look behind the curtain of this formidable technique to discover the simple ideas under it.
Through live coding demos in the interactive shell, we'll answer the following questions:
* What is recursion, and when is it a good idea and bad idea to use it?
* What's a stack, the call stack, and a stack overflow?
* What are all the confusing ways that recursion is commonly taught?
* Do some problems require recursion? Can recursion do anything a loop can't?
* What is memoization, and how does functools.lru_cache work?
* How do I draw that cool-looking recursive fractal artwork with Python's turtle module?
Beginners will be able to follow this talk. All that is required is a willingness to learn, and a willingness to have the willingness to learn, and... so on.