In order to function (ba-dum chhhh), recursion must fulfill four conditions:
Benefits of Recursion:
Drawbacks of Recursion:
If you ask veteran programmers how often they use recursion, you will get answers ranging from "Not since I had to do it in school," to "Very regularly." Some programmers avoid recursion like the plague, while others look forward to using it wherever it fits.
Most of the recursion problems you encounter in your tech career can be solved with loops instead. However, recursion is a skill most programmers will see and are expected to know, even if they do not use it all the time. How deep you need to dive depends entirely on the type of job you get, your team members, and your personal preference.
Let's use an analogy. At some point in time, most teens must "solve a quadratic" in school (e.g. find 'x' in x 2 + 2x - 35 = 0). Perhaps you fondly remember doing this yourself. As kids, we were expected to know how to solve a quadratic, but as adults, the need to do this varies. Some of us must frequently find x, while others only need to solve one or two equations a year. Still others do not see quadratics again until their own kids learn about them.
Since their future jobs might not require it, why do teens need to learn how to solve quadratics? Because at some point in time they will have to do it again (if only to shock their kids), and they need to be ready when that happens.
The same is true for recursion.
Learn it. Love it. Use it.