It's actually not a good analogy because most mechanics nowadays specialize. You don't have an engine guy do an automatic transmission rebuild and you don't have your local car dealer do a coil-over 4 link suspension upgrade on your Jeep.
This is exactly analogous to software in that you don't need to know deep algorithms to build CRUD web apps. They are a different part of the machine and closer to the business domain. Looking for deep CS over skills like requirement gathering, collaboration, information theory gives false signals on competency for the task at hand.
The reality is front end, backend, embedded, desktop etc. etc. all have different requirements on the skill sets they need to be successful. People gain the skills they need via the process of working, then we have this ritual of interviewing where we act like all these things that never get used in their trade are so so important to know.
The direct analogy is I am hiring an engine guy,he will never touch a transmission. The guy knows fuel maps, timing and compression ratios like the back of his hand, but I keep insisting that he tell me how the sun gear of the transmission engages the planetaries and in what sequence because he has to know this to be any good as an engine guy and come to the conclusion in my head that if he does not know transmissions it is a signal that he is not fit to be an engine guy.