Here's the devastating truth: people with a half-assed knowledge of CS but with good other skills (project management, communications, customer service, people interaction, etc.) can and will often make unarguably better software than people who just get the fundamentals right.
You can spend all your life building the perfect implementation of a crappy system, but that won't rescue it. Good CS fundamentals (even provably correct algorithms and implementations) has its place in the software craft but that place is a fairly small niche, not the top of the heap.
You can spend all your life building the perfect implementation of a crappy system, but that won't rescue it. Good CS fundamentals (even provably correct algorithms and implementations) has its place in the software craft but that place is a fairly small niche, not the top of the heap.