I didn't mean to limit abstraction to just programming. The analogy works to all complex systems.
You don't need to know metallurgy and fabrication techniques to drive a car even though those skills are essential in creating the car.
Systems that have a human end user are designed to be used by the human being (with varying degrees of success). The people who create those systems will always be a minority of the population by necessity because those systems have to then provide some sort of function.
If you are concerned that the machines will be the overlords, then you are talking about general AI run amok. And your programming skills won't save you in that scenario as the futuristic AI will be able to alter the code anyways.
umm, exactly, there are tools for driving but who holds more power here, 1) the human which created the machine and knows exactly how it works, 2) the machine, 3) or the humans who use it as a tool and just know how to use it proficiently?
number 3 is clearly on the bottom of the totem pole
when the machine breaks, or malfunctions, group 3 is powerless.
group 1 is clearly on top. they can create the machines and tell them what to do
the machines have far more power than group 3, the "user" class.
not learning to program is putting yourself forever in the less powerful user class