Software programming is not for everyone, but among the careers that are mostly unregulated, and thus mostly free from rents, it has consistently been one of the best choices. You can earn more money if you embrace some professions that are regulated (e.g., medical professional), but if you are a recent immigrant, or someone who could not afford college education, programming is a decent and accessible choice.
I expect that what makes it a good avenue is a mix of different unique features:
- It is relatively easy to tell a good programmer from a bad one. It is hard to produce correct and efficient software “by accident”. Thus even if you lack the best credentials, you can still “prove” that you are good, quickly.
- It is one of the few industry that has been consistently innovating. Thus there are always new jobs created. Once we are done putting businesses online, mobile applications appear, and so forth.
So what happens when a pandemic happens and remote work becomes the norm all of a sudden? It is impossible to predict the future, but I like to put my views in concrete terms, with a time stamp on them.
I have been programming for decades and my impression is that you do not learn to program by taking classes. Not really. You can learn the basics that way, but nothing close to what you need to be a productive member of the industry. In this respect, programming is not unique. I do not think you can take Japanese classes and expect to show up in Tokyo and be a functional member of the city. Simply put, there is much that is not formalized.
In programming, there is also the additional problem that the best programmers are often doing something else besides teaching. It is entirely possible that the very best historians are also teaching, but the very best programmers are programming not teaching. You do not become a computer science professor based on your programming skills. In fact, most computer science professors have never released generally useful software.
Thankfully, you can learn to program on your own. My youngest son just finished a complete video game, written in C# using Unity. It should appear on Steam soon. I never taught my son any programming. Not really. He did take a few classes for fun, but he is almost entirely self-taught.
Yet, human beings are social creatures. If you want to “up your game”, you need to see what the very best people are doing, you need to be challenged from them. It is possible online.
My best advice to people who wanted to become good programmers was to go and work with a master. If you work with someone who is a very good programmer, you will learn. You will learn faster than you ever could on your own. I, myself, have learned a lot from the wide range of superb programmers I have had the pleasure of working with.
Of course, it is still possible for a junior programmer to work with an experience master despite the pandemic. However, my impression is that it has become harder. I can only base it on my limited view of the world, but I am much less interested in taking in new graduate students and research assistants today.
I had a “lab”: a room filled with graduate students and a few research assistant. These people would come work, I would come in at random times during the day, we would chat, we would look at code on the giant white board. Sometimes, on Fridays, we would play games. There are even rumours that beer was available at times. The room is still there. I am no longer showing up. The white board is probably blank (I don’t know). I use Zoom, extensively, but I cannot believe that it is the same effect. The camaraderie is gone.
My experience might be unique, but if it is at all representative of what is happening, I bet that many junior folks are getting much less personal training and coaching that they otherwise would. If that is correct…
I predict that there will be fewer new hires. I expect that unexperienced programmers will be less appealing than ever. Any challenge making training and coaching harder is bound to reduce their number.
Meanwhile, people who know what they are doing and can be relied to work well from home are going to be more in demand than ever. Since it describes the very best programmers earning the very best salaries, what this suggests is that the salary distribution will spread even more. A few top programmers will receive the salaries that would have otherwise gone to the younger programmers.
It may also lead to some industry concentration. If it is harder to find “fresh blood”, then it makes it harder to start a new company. Many of the local tech talks had less to do with the speakers and more to do with meeting new faces and discussing employment.
We have been told for years how the secret to the Silicon Valley was in the impromptu meeting by the local burger joint… What happens when people work from home? If the narrative about Silicon Valley was at all true, then you would expect fewer new companies.
Longer term, I do not believe that this should impact the innovation rate in the software industry. People will adjust. However, I think that short-term job prospects for the younger programmers are going to be difficult.
Credit: This blog post is motivated by an exchange on Twitter with Richard Startin and Ben Adams.