Some of the best job prospects are in the software industry. Programming as a career has several benefits worth considering: though not stellar, the pay can be quite good (e.g., 6 figure salaries are common), you do not need many years of study (e.g., some do not even have a degree), there aren’t any complicated government regulations to satisfy, you can work from wherever you want in the world, and so on. There are also downsides, such as the macho attitude prevalent in some communities, but nothing is perfect.
Despite all of the benefits of a job as a programmer, demand grows faster than supply. In other words, employers have to increase salaries and benefits to keep their best programmers.
Yes, it is “easy” to become a programmer as there are few artificial barriers to entry, and the pay is good… but there are more and more programming jobs every day. According to some estimates, there are about half a million programmers in the US alone. Even outsourcing to countries such as India is not sufficient to keep the salaries from increasing.
We should not worry too much. If demand keeps on growing faster than supply, salaries and working conditions will keep on improving and this will attract more students. For companies like Google or Microsoft, it is a tiny bit of a problem however. For one thing, they would rather not pay their top programmers the way law firms pay their top lawyers or the way hospitals pay their surgeons.
So the large tech. companies have decided to promote the software industry as a career through advocacy groups such as code.org. That is a good idea. I have two problems with their approach however.
First, they use people have never coded for a living to promote a career in the software industry: a basketball player, a race car driver, a few managers, entrepreneurs and countless politicians. Soon enough, Lady Gaga and Al Gore will run ads about why you should learn Java.
I understand what they are doing. An athlete like Chris Bosh is a lot sexier than Linus Torvalds (though, I suppose, it is a matter of taste). But there is also another implication which students are going to catch, if only unconsciously: there aren’t many cool people who code for a living.
And maybe that’s true. Maybe those of us who like to code aren’t exciting. But I don’t think that’s it.
Second, they feel compelled to present programming as something that is easy. After all, why show that any random politician can learn programming?
Programming is not something you pick up on the side. Oh! Sure, you can put together an ugly script that will “sort of” do what it supposed to do. But to be a top performer in the software industry is just as hard as being a race car driver or a surgeon.
If they promoted it as the challenge it really is, they would make it more appealing to the ambitious and smart people… and they would get the people who are most likely to stick with it.