Did you ever consider that a lot of the work being done by developers today makes them more like plumbers and electricians than architects and engineers?
HN user
hateCS
While it may be perfectly acceptable to ignore the lower-level details when first learning some new technology, or even when using it for personal use only, that sort of ignorance is not acceptable when working on systems that are meant to be used seriously.
I'm a self-taught web developer. While I have probably picked up some programming fundamentals/best practices through experience I have very little interest in computer science or learning the low-level details of every technology I use.
I probably couldn't get a job at most SV/SF startups, but I run several WordPress sites that have millions of monthly visitors and that have traffic spikes of 100,000+ visits in 2-3 hours at least a few times each month. I'm paid very well and I don't need to apply rocket science to do a good job.
Meanwhile I have friends with CS degrees at hot VC backed startups using all sorts of crazy technologies and advanced programming techniques for sites that get maybe 100,000 visits a month.
If you ask me, ignorance is premature optimization, overengineering and hiring expensive people to apply skills you're nowhere close to needing.