I can't say I agree with the term illiterate for non-programmers. I understand the importance of comprehending how software works and provides the technologies it does. But I also understand the importance of engineering. Arguably the programmers are just as incompetent in mechanical or industrial engineering as an engineer might be incompetent in the programming sphere. And, programmers can't do their jobs if the aforementioned can't do theirs. Both require a significant amount of mathematics instruction, though in different areas. So the question is: How does one make the choice where to put their energies?

I think this is a misdirected concern that misses the point that we are all interconnected and interdependent. Everyone needs most everyone else in order to get things done and live life. We all need farmers, for example. I can barely raise a single plant beyond potting and watering it, so I rely on others (and thus pay them for their services) for my food.

I of course am not suggesting that knowing how to program is necessarily a worthless pursuit for anyone who does not do it to earn a paycheck. I'm saying though that it's not feasible to express concern that people need to learn what can be a very sizable new chunk of knowledge simply for the sake of understanding why email gets sent when they press a virtual button. I would love to know how to program. I just have no time for it at present. But what language? Some are more relevant than others, and no two are identical. And then there are differences, such as "writing code" versus scripting.

This problem is not a new realization or an expression of sloth; it's simply an acknowledgement of human limitations and societal arrangement. Regardless, I will look into Scratch as a means of helping me understand programming. It sounds like a worthwhile initiative.