I think this boils down to the fact our field is young, there isn't professional accreditation in place or anything else for people to have a real idea of what you know without attempting to try assess that themselves (and failing miserably as assessing other people generally isn't their core competency).
You can easily construct differences of larger magnitude for what you might think of as "simple" jobs like telephone receptionist; a fluent english speaker is going to be more than 10x as productive in that job, assuming they're supposed to do business in english, than someone who can barely get by, and probably billions of times more productive than someone who can't speak english at all. There are a lot of Chinese people out there whose highest ambition is to "work in an office". I've met some of them! Most will never achieve that goal, because they don't have the requisite skills.
Most people who don't speak english won't apply for a job answering a telephone in english (but a lot of them will! This is exactly the kind of customer service representative everyone has grown to hate). I'd like to see some software job openings that specified a skill set, and were willing to hire people with that skill set. That doesn't seem to be the direction people are headed in, though...
I think that you are confusing "computer science" with "software development". It may be easy to get a Ph.D. in computer science and be poorly suited for work in the software development industry, but that's no more surprising than the fact that people can get Ph.D.'s in economics and be poorly suited for work in the finance industry.
Computer science is, obviously, related to software development, and in many cases its possible to take a CS degree that is focused on software development, but CS in general is not software development, and CS degrees in general are not vocational degrees in software development.
The best software developers may need to have extensive knowledge of CS, but merely having extensive knowledge of CS doesn't make you even a competent software developer.
1) For junior positions, both have professional accreditation, with standardized testing that ensures a basic level of competency. Not to mention the mandatory schooling (in most cases).
2) If you screw up as a doctor or lawyer, you can end up with official sanctions on the public record. If you screw up too bad, you lose your ability to continue to do your job.
I've worked with plenty of dead weight developers who wouldn't pass even these nominal competency tests.
Further, it just seems to me it's easier to benchmark your successes as a doctor or lawyer. At least in a way that has meaning to your potential employer.
I think part of that has to do with the fact we pretty much all work on teams. The actual projects themselves might be somewhat verifiable, but figuring out that developer's actual contribution is a pure crapshoot.
I list of successes for a doctor or lawyer are going to be both more individual, and also verifiable (i.e., less likely to be bullshit).
Law actually seems quite similar to programming. You can think of the jury as your users and facts/precedent/laws as the statements available in your programming language. Then your job is to assemble the statements into a program that compiles and that your users want to buy.
why do so many programmers think their job is inherently more special and difficult than everyone else's?
Probably largely because they get paid more than all of their peers when they start their careers.
But potentially life-or-death cases are not limited to death penalty cases, they are just the most obvious class of cases that are life-or-death.
There are far greater numbers (and proportion) of lawyers who work on potentially life-and-death work -- not limited to death penalty cases -- than programmers who do so.
Though for what it's worth this is less a "programmers are awesome and important!" argument than it is a "don't get your view of lawyers from television shows" argument -- if the OP had gone with doctors or something I wouldn't have said anything.
Power Engineering interviews usually have technical questions, or how you would approach a problem. Even if you have a license. But typically if you have worked in the field, the answers are straight forward.
I don't necessarily dispute this state of affaire, but does anyone know how it compares to other fiels/professions? How about interviewing a lawyer? Or a doctor? Or an account manager? Or a product marketer? Are developers the only one with a "broken" interview process?