This highlights an important aspect of the immaturity of software development, we lack the terms to even talk about it with very much detail. We don't put everyone who knows any amount of math in the same bucket, we don't even put people who know vector calculus and differential equations in the same bucket, we appreciate that there are many grdations of skill and differences between people who know a thing to some level of competence and people who use that knowledge intently in their occupation.
The same is true with programming. Just because someone knows the basics of programming doesn't mean they are a software engineer. It doesn't mean they are capable of building or working on large, sophisticated systems. It doesn't mean that they necessarily must take up programming as an occupation either.
Similarly, taking a wood shop class or learning basics of automotive maintenance doesn't make one a carpenter or a mechanic. But that doesn't make those skills useles either.
Don't get me wrong, it would make the jobs of those in technology a bit easier. But I think that there are better uses of resources.
Another benefit would be limiting the space a user places on the possible actions of your program. By expecting less magical behaviour and constraints based on knowledge of basic limits of software; actions will be more robust, limitations more likely to be intelligently worked around till a fix is had and feedback may even be more meaningful and suggestive.