I call memoization "top-down" dynamic programming because you start with the problem you want to solve (the "top") and break it down into smaller subproblems.
For fib(5), you start at the top and recursively ask for fib(4) and fib(3), which ask for smaller values, until you hit base cases at the "bottom." You're descending from your target down to the simplest cases. This is exactly your natural recursive thinking: "To solve this, I need to solve these smaller things first."