This is a re-post from Hacker News, some comments in response to an excellent little essay by David Heinemeier Hansson. This topic tends to come up now and then, so I put the comments here to have a handy reference.
I often think about how extraordinarily lucky I am to be living through this technological boom. Computation, automation and mass-communication will continue to transform human society even more for decades. High-end software development skills will become even more scarce. Immersing yourself in the boom by running a software shop with a bunch of good friends - the best of times!
The point about programming skills becoming more scarce is an important additional factor to why it is good to be in the software business:
We are still in a relatively early stage of the technological boom signified by things like electronics, computers, robotics and the internet. These technologies have changed life on Earth dramatically, but there is probably at least as much to come. In any case, for the next two or three decades, more and more aspects of life will be the object of automation, computation etc. So the demand for software development will continue to increase, and probably by a lot. Software will become an even greater part of the economy and continue to crowd out other types of business.
Only a small percentage of the population have the talent and inclination to become very good programmers, and children with these traits often do not get proper encouragement and guidance. So from the beginning, it is very hard for society to produce a large number of programmers. More importantly, the ratio of people who can become good programmers is probably more or less a constant, while the need for software development will grow much faster.
We might also be getting worse at producing programmers. For example, software is becoming more mature, hiding more and more of the internals. I started programming at age seven, in the eighties. In local stores I could buy glossy magazines with articles about programming, often with entire programs that I could copy into Basic etc. For sure, there is the Internet now, but what kind of programming culture for kids is there? I could pick my first computer apart and learn all about how it worked. Kids these days learn to use iPads before they learn to speak, but they never get to see what is inside. Who knows where this will lead? We already know that a lot of graybeards are retiring and they are often impossible to replace since the current generation of programmers is not nearly as hard-core.