Intuition First: Don't Count the Same Money Twice#
Say you're counting a big pile of cash, get interrupted halfway, and start over from zero, again and again. That's naive recursion: to find fib(30) it recomputes fib(10) thousands of times, each time from scratch. Absurd, but that's literally what the plain recursive version does.
Now suppose that the moment you finish counting any stack, you slap a sticky note on it with the total. The next time you need that stack, you just read the note instead of recounting. Memoization is that sticky note: solve each subproblem once, write the answer down, and forever after hand it back instantly.