Because most of what is needed out there doesn't require an equivalent of a doctor's degree.
The truth is, is that programming languages themselves have evolved far enough that knowing exactly what's running underneath the hood isn't needed anymore, outside of niche specialist cases. Most people don't even need to worry about seeing a single 'index out of range' issue, or worry about CPU cycles. And it's only going to become easier and easier.
I'd compare it to bricklaying. Yes, you need to use the correct formula for the cement you use, but figuring out that formula has already happened. For niche cases that require special cement, you go to the cement specialists that know the ins and outs of it.
Specialists in, for example, psychiatry don't need to understand how mitosis works, etc...
The same is also true in finance. People who do model equity index volatility don't remember at all how to derive the equation for put-call parity.
In each of these fields there are people who study each of the fundamentals, and then there are people who do more routine "code monkey" work in a narrow area - think chiropractor or vanilla stock trade execution.
> Specialists in, for example, psychiatry don't need to understand how mitosis works, etc...
A psychiatrist has to obtain an MD degree before they can start to study their chosen specialty. There's a reason for that: before you can treat a psychiatric illness, you have to be able to eliminate all other possible causes for the condition. I for one would not want to be treated by a psychiatrist that couldn't distinguish bipolar disorder from brain cancer.
I'm not sure that this example is making the point you wanted to make. There's a reason we have Docotors/Pharmacists/Physios and don't reply on Chiropractory / Homeopathy. It's because we want to get better.
By the time the bricklayers are there to start on the project, most of the time the choice of cement mixture is already made. For most projects, a standard cement mixture is used and a custom one isn't even needed.
When issues do arise during the project, an expert is brought in/consulted. Standard cement formula's might change over time, for varied reasons, but it's not the bricklayers that keep themselves busy with that.
The truth is, is that programming languages themselves have evolved far enough that knowing exactly what's running underneath the hood isn't needed anymore, outside of niche specialist cases. Most people don't even need to worry about seeing a single 'index out of range' issue, or worry about CPU cycles. And it's only going to become easier and easier.
I'd compare it to bricklaying. Yes, you need to use the correct formula for the cement you use, but figuring out that formula has already happened. For niche cases that require special cement, you go to the cement specialists that know the ins and outs of it.