I've been teaching programming for a while with poor success. I reduced the 3 Normal Forms of relational database structure to 4 short, clear sentences using ordinary words. But for someone to really "get it" they need experience to visualize the problems and how they will be solved. Understanding the parts and situation is hard enough and takes time and familiarity, but starting to see the problems requires vastly more awareness.
For example, there was a recent question about someone tutoring a student who didn't see the point of learning about arrays. Well, arrays are the most fundamental data structure. Maybe people have to discover the need for something for themselves, and no amount of pictures or anecdotes can bypass personal experience? Maybe insight can not be conveyed, just like we cannot 'grow' a plant, only provide the right conditions?
If true, then teaching is not about... Teaching - an active verb, it is about environment, time and necessity. If someone needs to learn something, they will be forced to invent the concepts in their own mind. We don't have Universal Serial Brain yet, so we cannot get one idea in to someone else's head.
Should we "reexamine all that we've been told" about education?