There are a number of points I'd like to disagree with, but to start: - $150,000 is much less than a top-flight engineer like the one you're describing might make; it's not out of the realm of possibility for what an engineer with a good pedigree might make his first year out of school, if he went to work for a big company. - The engineer went to school for four/five/six years and then went to work. The doctor who ea…
The market doesn't care about what you have done to get to where you are. If you spent the better part of a decade to acquire a Ph.D, you are not entitled to earn more money waiting tables at the local restaurant.
The upper bounds of earning is only limited by the value provided by the work. A good doctor or lawyer can provide a lot of value (health and freedom are, to most people, the most important things in life) and they are usually in short supply, thus they can command the high rates.
If programming jobs top out at $150,000, it means that either there is no shortage of people to do the job, or that it is simply no value in having someone do the work for more. In the latter case, if true, means that programming really isn't that important.