(Hidden) Inequality among Programmers
Code is eating the world — we have heard it a hundred times. Programmers are the ones producing this code, so a logical question is: what is happening to them? As usual, the answer depends on the subject but I will argue that some are getting fat while most are starting to starve. I don’t mean physical starvation because they don’t have money to buy food — I’m talking about intellectual starvation in the style of the famous Buridan’s ass paradox.
Most of those professional developers with more than 15+ years of experience in some set of technologies are now in the funemployment mode. They decide which projects they want to work on and typically move to a semi-management position. Obviously, there are exceptions — genuine technical leaders. I’m sure you know them in your company and they are vital to attract and retain new talent. They are like the high school teachers that have inspired you so much that you hear them in your head from time to time throughout your life. The other ones are like the uninspiring teachers except they drive a Tesla.
In my previous story, I mention three types of communication when someone is coding: 1) upwards to higher specifications, 2) sideways to the future maintainers of the code and 3) downwards when you are actually trying to work things out with the machine.
Senior professionals that continue in the technical track start at some point the move from thinking in code to thinking about code. When you can afford to think about code, you’re mostly doing the first type of communication and life is good — you have interacted a lot with developers and clients to understand requirement specification and how long it takes to actually get things done in some organization. Going back to my initial analogy, you are already fat and wouldn’t change much in the current processes (even if you know they are totally broken).
However, the other two types of communications actually involve thinking in code —this is quite literally binary thinking: either your code runs as intended or it doesn’t. If it doesn’t, you need to go deep and understand why to fix it. Being successful at this task in the beginning of your career is key, otherwise you’re slowing the world domination aspiration of some company and lagging behind. This understanding of the code requires a lot of brain power and dedication but it is fundamental to the actual execution of the product — you are in the grinding mode! This is typically done by those developers with less than 15 years of experience. Industry brands junior the ones with less than 5 years and senior-ish between 5 and 15 years.
Assuming that someone graduates college in their early/mid 20s, a senior-ish programmer is between 26–40 years old. I see in those developers, which includes my generation, a strong hope that life will soon be great. For those in the high spectrum, you have mastered some technology, you have a well paid job and you are starting to feel the pressure of the execution going away — you are starting to become comfortable and fat. There are a lot of people in this situation and they have a nice platform in social media to boast about their accomplishments — kudos! However, it is at this stage that something dangerous happens: you think you know best and you start thinking about code in code. As a consequence, you start developing a new framework, a new programming language, adapting a toolchain to another domain, etc. Some of this is necessary — unfortunately, most of it not only is unnecessary but it should be discouraged.
From conversations with professional developers, I find that there is only one thing that is more annoying/depressing than finding out that the project they have been working for the last two years is going to be cancelled: it is when they realise that the perfectly reasonable technology they have been using for most of their career is losing market value. Imagine yourself in their situation — you quickly start looking around for what is trending and understand that in fact many things are trending for reasons you, an expert, cannot even understand. Of course, you have heard those names before so it’s not a complete surprise — still it really hurts. These developers are in a tough spot — if they made sound financial decisions they have a second chance to re-invent themselves, if they didn’t, then they are probably going to have a cut in their lifestyle with unforeseen consequences.
Now, imagine that you have just left college or are in your first job — you think you already know how to code but you also know you don’t. You don’t even know what to hope for — you just want to experience life. You are equally hungry, thirsty, hopefully and excited in this adventure. And then, for example, you are given 30+ amazing node.js frameworks to solve those challenges. You are a rational person, yet you cannot make a rational decision — deep down you feel that this lottery is intellectually starving you. If this is your situation, you are not alone and you are first handedly experiencing Buridan’s ass paradox.
According to the 2019 Stackoverflow Developer Survey, from 79,854 responses:
Over half of the respondents on our survey have taken a new job within the past two years; frequent job changes are the norm for software developers.
These are mostly developers with less than 10 years of coding experience. There are many reasons for this but I would like you to think that perhaps one reason is that these developers are simply lost in a sea of possibilities. Should this even be a norm?
Things will work out for everyone while the market allows it — but once the market stabilises, this hidden inequality that is only widening between young and not so young developers will be exposed.
Technology is moving fast and senior-ish developers are contributing a lot to this and to a wide diversity of platforms and tools. Some of it is great — still, don’t forget that adding a new brand of cereal to a shelf already filled with other brands might not be the best use of your time if you’re trying to make a positive difference in the world.