And for such programmers that do, the real key to performance lies in getting multiple computers to work together, and not in fine tuning algorithms.
Most people can intuitively understand the factor by which a linear search is different from a binary search, without any particularly in depth study of complexity theory.
This P vs NP thing is just a way for CS students to show off with letters that make their craft seem mysterious. In the real world, one can come through without understanding this.
Not understand how a car works? That's really silly. Understanding the speed of algorithms is important, but it's a tiny tiny part of writing large complex programs. Most parts of a programs are not about number crunching, but about information management.
(Obviously, I've got an computer engineering degree, and I learned all this, I'm just pointing out that in general and in the real world it has very rarely been neccessary to know this)