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!
Earlier tonight I was talking to someone about how odd it seems to me that software startups normally aim to operate at a loss. Perhaps I am a romantic, but I like the idea of a business making a good profit. Especially when dealing with something as lucrative as software, a business should be profitable from day one. I have always regarded David and Jason highly for having a similar attitude.
It's not obvious to me. Can you explain your reasoning?
My first premise is that 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 I think there is 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.
My second premise is that 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.
I also see reasons to believe that we are getting worse at producing programmers. For example, software is become 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. The kids these days learn to use iPads long before they learn to speak, but they never get to see what's 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.
If programming were painting, it's probably easier to become a housepainter now, but the percentage of Picassos is probably the same.
Things like the Raspberry Pi is great for reaching the nerdy clique, but I agree that the latter does not seem to be growing. On the other hand, I hear autism rates are way up in the valley - perhaps we can increase the size of the clique by selective breeding? =)
They're going to become more scarce because computing is being used in more and more places. The demand for developers is increasing - not decreasing - and I don't see any change in that in the next decade minimum.
Yes there are more folk coming into the field. Yes there are more places where smart code is letting people do more with less. Despite that I think it's harder now to find good developers than it was ten years back because the spaces where you need developers us growing stupidly fast.
Glad to be a "just a programmer" right about now.
Today you don't need a programmer to setup your online website with a store attached to it (and that could be 100% of your business), imagine what you will be able to achieve in a couple of years by yourself.
I do have a bit of a biased perspective though, instead of looking for a non programming solution I just jump into the code an make it work the way I want. It is amazing sometimes to see what tools people have cobbled together on a website to get away without programming knowledge.