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.
In my current company, we kept hiring developers, experienced or not. And we successfully integrated them. And we continue to hire.
So, it definitely is possible. It seems to me that it highly depends on the team culture. If everyone is remote friendly, if you have all the tools needed (some chat software like slack, some video software like zoom, etc.), it just works. Since March 2020, I went two days at my former desk at my company. Two (2) days. Yet, we delivered new features, etc.
In a typical day of work, the colleague I will interact with the most will typically be a TSE in Toronto I like to chat with. A person having a 6 hours time difference, and that I will see IRL maybe once a year…
But I have been convinced for a very long time that it is possible. I had a lot of social experience online starting in 1995. I met a tremendous lot of people this way. Very different people, from very different backgrounds. I feel good this way. This is not the same for everyone.
The COVID had this benefit : make fulltime remoting for software developers (and other similar crafts, like sysadmin, architecture, field engineering, etc.) an obvious choice. Free software developers knew it for a long time…
A colleague had however a nice expression. There are two different things:
working remotely ;
never meeting each other.
Having meaningful time on a regular basis would be great. I bet it will come.
Professional meetings should also be organized “as much as required”. In my experience, there can be some weeks of intensive IRL exchanges. And months of normal relations that can go fully online. Cost should not be an issue, as a company can afford ponctual accomodation of someone it does not have to let expensive office space for.
So, well, it is a cultural change… for some people. As all cultural changes, it will be difficult… for some. But the benefits are also real. No more daily commuting. No more overexpensive housing. An ability to hire anyone from everywhere (but being on the same time still is important), that will open new opportunities.
I find it great and I do not see a reduction of hirings. For developers, companies accept just everything. But even those who were forced to go full remote, because developers just no longer all live next to your office, are happy of this change now, I think.
My experience has been a little different. Although good programmers can tell who can code and who cannot, managers and bad programmers can’t. They try to measure code by metrics like lines, commits, files etc. Then they try to measure quality by releases, bugs discovered, bug fixes, tests (written by the same coders).
What they end up with is sprawling code bases with massive structural duplication, where bugs get geometrically harder to fix with each new feature glommed onto the base.
I have been repeatedly ignored during the architecture and design phases, and then pushed to rush code out the door in the end phases, when my predictions have been proven right. And then the next project starts out late, and the process starts again.
Long story short – I get edged out the door and they have almost exclusively young, naive programmers, and I predict that releases will continue to be late and poor quality – but at least they will not have a “nay sayer” telling them they are doing it the hard way.
There are some contexts where the quality of the software is not relevant, in the sense that if it is poor, then the organization will not lose money. In such cases, there is no selective pressure on the quality of the programmers. There is also no pressure upward on the salaries.
I’m sure you don’t have to worry about it because digital tools are becoming more popular every day. Last year, our company didn’t care about employee monitoring software. But today, we have a few of them, including https:/zoom.us/, https:/www.atlassian.com/software/jira. https:/www.worktime.com/employee-monitoring, and more. 2020 is a year for the employee monitoring software, best believe.