re: Should All High School Students Learn Programming?
First of all, I don't think there's a shortage of programmers. If there were, then programmers would make more and the unemployment rate for them would be a lot lower; and employers would be a lot less picky when hiring them (they might even be willing to train people, like my father was trained by the U.S. Marine Corps back in 1966 before there were any academic CS programs). Rather, this appears to be an effort to artificially inflate supply, helping to minimize labor costs.
Second, I don't think everybody has the aptitude for programming, just as not everybody has the aptitude to play a musical instrument. Those who have it should be encouraged, as learning programming is the most effective way to learn how computers work, but I see no public benefit in teaching people who lack both the proper mindset and the desire to learn. There are things that every citizen should know (like history, civics, science, and clear thinking, in addition to the 3 R's); computer programming is not one of them, any more than auto mechanics is (arguably, the latter is more important).
That said, I do think programming should be offered to high school (and possibly middle school) students as an elective. It's a useful life skill, no matter what one ends up doing for a living, but we shouldn't pretend it's for everybody.