via dangrover.com/
I know it always takes me a long time to grasp any new programming paradigm. I still don't quite get the idea of monads in Haskell. You see, unlike laymen, programmers are regularly challenged with new ways of abstracting information (be it entire programming paradigms, new frameworks, or just a new way of factoring their own code) and eventually become adept at this meta-skill.
How programming probably affected my ease of learning systems theory