You don't need to know how to repair a car to drive one. The guy who repairs your car doesn't need to know how to build a motor or a transmission, only how to install them. The guy who assembles the motor doesn't need to know the finer points of metallurgy. The guy who refines the metals doesn't need to know the finer points of mining. Each of these stages of production can have their own issues that need to be resolved, but the guy driving the car needs to worry only about staying safe on the road and reaching his destination.
I agree and disagree. Let me explain:
You are correct that the average driver does not need to know these things; however, the average driver only drives on paths that have been specifically laid out for them. That is why your analogy fails. Programmers are always going somewhere that nobody has made a path before. Similar paths? Most certainly. Same path? No.
I have built a very nice "race" car. Do I know everything about putting such a car together? No. I had a friend do it. Do I know everything about programming the ECU (engine control unit)? No, I had another friend do it.
Despite all of this, I did research to learn about metal allows, air/fuel mixtures, rod lengths, rotational velocities, etc. How else am I going to specify what I need/want without knowing all of these things?
I learned enough to actually put the car together. I learned enough to program the ECU. It would take me 20 times longer than the friends I paid to do it for me, but if I did not learn those things, all I could say is, "build me an awesome car", and then be disappointed that it was not quite what I wanted... even if it is still a badass car.
Programmers are in the same position. They need to understand sorting algorithms, data structures, and such in order to know which library to actually use. Should they be rewriting algorithms? Sometimes, but not normally... but then meh. Fuck it. Let them buy their certified professional programmers for half price. When they ask what went wrong, I will just be shrugging my shoulders.
There is no fix for stupidity. Cronyism and nepotism keeps the best from rising to the top and this is a world that is rife with such corruptions. Sorry, I am too depressed to finish my original point.