The world of programming is vast. Larger than "America", larger than Sillicon Valley, larger than the world of startups, and certainly much larger than the "elite" that regularly reads (and comments on) HN and pats each other in the back.
Even if we accept that programmers are well-paid and respected (two different propositions) in the technology sector, most programming jobs are _not_ in the technology sector, but spread throughout the corporate world. And corporate programmers are all but respected.
In your average company, a programmer is considered a glorified mechanic or janitor, a code-monkey if you will, well below the guys that "bring in the money" like sales and marketing. It is an expense, something that the company has to live with because someone has to implement the ideas that the guys in charge come up with to help the guys that "bring in the money" bring in more money.
Besides manufacturing, programmers are on the first line for outsourcing, and it is no coincidence that an expression such as "software factories" exists. Why do you think this is?
Most programmers will only actually _program_ for a few years before going into management positions. There are few "old" programmers around, and those that survive are often met with disdain. "What? You are 35 and still a programmer?" kind of disdain.
When the average corporate user spends most of his time in front of a computer, forced to use boring applications day-in and day-out, how do you think he feels about the people that build those applications?
And even outside the corporate world... If you are a doctor, or a lawyer, or a freakin' sales guy, people will listen to your stories, at least for a while. On the other hand, if you are a programmer and even start to talk about what you do for a living, people's eyes will glaze in boredom instantly.
Disclaimer: I am _not_ a programmer (I'm a sysadmin, which is mostly the same, although usually better respected because sysadmin positions tend to be longer-running inside companies).