I have never been able to think recursively.
It wasn’t until a year after the concept of recursion was introduced to me in some Comp Sci class or another that I actually started to get inklings of a grasp of it, rather than just faking understanding.
Human brains just aren’t built for recursive thinking, or so I say, because I do not want to admit that I just. Can’t. Do it. It is like forcing my brain the wrong way through a meat grinder. It fights tooth and nail every step of the way towards understanding, rejecting recursion like some foreign body.
There have been times, usually during a test in Dr. Shannon’s class or late at night before a program is due, when through sheer willpower I have suddenly understood enough to be able to write a recursive function. But the understanding does not come as a new, enlightened imprint on my brain. Rather it feels a lot like falling down a flight of stairs–the idea is suddenly within my grasp, and builds and builds and builds until I reach the solution, after which I stand up, slightly shaken, not quite sure how I got there, and pad off hastily as if nothing ever happened. Thus recursion slips quietly from my brain once more.
The next time I confront the problem of recursion, it is back to the beginning, pacing back and forth at the top step, trying to remember how I got to the bottom last time. That, and the impending dread that something terrible is about to happen.
I often wonder if it is just a certain personality type who is able to grasp recursion and think recursively without effort. I should like to meet such people, so that I can nose them and watch them and figure out what they have in common. I have no theories as to what kind of person this would be other than it would probably be surprising to me. I’d like to do a secret investigation of people who know nothing of computer science, pluck out the ones who have a mysterious knack for recursion, and study them intently. Perhaps a great life secret of some sort can only be solved by thinking recursively.
The reason this all came about is because I’ve run into a situation at work where I have suddenly realized that I could perform a function recursively. This is maddening to me, because I’d convinced myself upon graduation that recursion was a programming fairytale, and that I’d never actually have to write a recursive function myself in the real world. Of course, at the time I’d also convinced myself that I would never be a programmer, so there you go.
Who finds recursion easy? Raise your hand, please. *readies clipboard*