A study of ReRecuRecursion
What is recursion?
In short: Recursion is a pattern of programming where you use a function or method that progressively processes a task by calling itself directly, indirectly, or circularly.
Where would I use recursion?
Recursion is most often used in traversal of tree and graph data structures, in sorting and divide-and-conquer-algorithms, fractal generation, backtracking algorithms, and memoization optimizations.
Resources
Recursion in Programming - Full Course (1 hour, 51 min)
Khan Academy: Recursion - Lower Bar of Entry
Advanced, but nice tutorial.