How well do you understand an internal combustion engine?<p>Do you know it well enough to be able to diagnose an issue ad then fix it? Can you listen to it, identify when it&#x27;s not performing well, and then make the tweaks to it in order to get the most efficiency? 
If you say yes, I would be very surprised, and yer every day, people all over the world rely on these things to get them to the place they need to go.<p>There is nothing wrong with these developers, they don&#x27;t know these things because they simply do not need to.  The tools have abstracted away those details, as they should. There is simply too much in the domain of writing software to know, and even in web development, there is too much to know. Most people focus on what is needed to get the job done because in most places, you are judged by your results and not your knowledge.  What good is know what a singleton is if you never use it?  Why do people need to know what the doctype does when &lt;!DOCTYPE html&gt; is good enough for the browser to interpret?  By abstracting away these details, people can focus on higher level problems, like solving the actual requirements.<p>If people need to learn those things, they will do so.<p>Good developers seek to learn about their tools. Great developers learn to separate out the wheat from the chaff and focus only on the knowledge that is important.