Through that I understood that the state of a program what causes most of the confusion and without variables reasoning about the code becomes much simpler. Without state everything becomes nice.
Through that I understood that state is the enemy, and global state is the greatest enemy of understanding. Later I realized that this same principle strongly aligns with testable code as more state is what makes code less testable.
It also forced me to use a lot of recursion which is nice as I understood it much better than in that single "Fibonacci number" example.
I also learned to write code that can safely run in parallel as functions without side effects and state are the most ideal candidates for that.