Requiring that a third party &quot;explain it to the carpenter&quot; is a big part of the problem.  Our coddled carpenter inevitably shrivels up in bewilderment and frustration when confronted with a new (actually, a century old...) concept, and proclaims the teacher an &quot;elitist,&quot; &quot;savant,&quot; or &quot;misguided reductionist.&quot;<p>Sometimes the coddled carpenter has trouble grasping a new (actually, a century old...) concept, throws up arms in bewilderment and frustration, and proclaims the concept &quot;too abstract, too complicated&quot; and therefore unsuitable for all.  For example, deciding that the value for pi is just too mind-bendy, and deciding on a nice happy value of &quot;22&#x2F;7&quot; instead.<p>Computer programming (and theoretical computer science, quantum computing, type theory, etc.) is fundamentally intertwined with the mathematical laws that describe our known universe.  There will always be parts of it that seem esoteric to someone, and I bet you that even developers extremely confident in their world of playdough tools would writhe and gnash teeth when reviewing some of the fundamental elements that make their coziness possible.  The most obvious example of this might be the parser for their favorite programming language - it is a very complex subject and the algorithms are formidable.<p>There appears to have been a massive culture shift (rift?) somewhat recently - from individuals who take pride in understanding and growing what we know and what we can do with computers, to individuals who demoralize, coddle, and impede what we can do with them.