Lately, the top salaries for computer science graduates have been increasing. Companies like Google are willing to pay what it takes to get their hands on the best programmers (which is well over 200k$ a year). I expect these salaries to keep on climbing for the next 20 years.
Simply put, a very good software engineer can generate a lot of value. One engineer working for Facebook can improve the life of millions of people significantly by working for a few months on a new feature. The counterpart is that many routine software jobs are easily outsourced and automated.
At least where I live, almost all high school students have access to some computer science education in high school. And that is generally a good thing, in the same way it is a good idea to learn how to cook or learn about the history of your civilization. A few courses here and there is enough for most however.
The Mayor of Chicago wants to Computer Science for all students, starting in first grade. He clearly imagines a future where programmers are everywhere. However, is the software industry a good bet for most kids?
I do not think so. Being a highly productive programmer is hard work. You need to constantly retrain yourself. You have to maintain the highest levels of professionalism. It is not for everyone.
Many of the great programmers I know worked long hours before they were good. They spent their week-ends reading technical documentation. They spent days discussing the finer point of memory allocation and alignment on posting boards.
Moreover, we have evidence that unless you are one of the best programmer in your class, your job prospects in the software industry are probably mediocre:
In computer and information science and in engineering, U.S. colleges graduate 50 percent more students than are hired into those fields each year; of the computer science graduates not entering the IT workforce, 32 percent say it is because IT jobs are unavailable, and 53 percent say they found better job opportunities outside of IT occupations. These responses suggest that the supply of graduates is substantially larger than the demand for them in industry. (EPI Report, 2013)
IT, the industry most vocal about its inability to find enough workers, hires only two-thirds of each year’s graduating class of bachelor’s degree computer scientists. By comparison, three-quarters or more of graduates in health fields are hired into related occupations (Salzman, 2013)
If you are really passionate about programming, go right ahead. I believe you will be able to earn salaries comparable to those of medical doctors or leading lawyers in the future with your skills. Maybe even better. But if you just want to get a regular job, programming could be a lot tougher than you might expect.
Update: Aner Ben-Artzi pointed out to me that the campaigns to promote programming as a career are often built on the assumption that we lump together all programmers as if they are interchangeable. We do not similarly hear calls that there are shortages of chefs, as it is understood that these are highly skilled and unique people.