It takes a while to really understand any abstraction in our modern society: how currency works, why we try to separate church and state, how a bicameral legislature acts on the will of the people, how interest compounds.
…[U]nlike 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.
But regular people don’t have to learn new abstractions on a day-to-day basis. Anything presented to them in a new symbolic or abstracted way is bound to cause confusion for a long time. Especially second or third order abstractions.
— Dan Grover, Toward a Grand Unified Theory of n00bs
