But rather find a solution to improve the quality of current software engineers.
How often do you see posts regarding the need for more software engineers and a huge increase in applications teaching people how to code? Are these apps really that helpful in the long run? Do they really create the engineers we need?
Here are my perspectives on a few common generalizations:
- The supply of engineers does not match the “demand” of engineers needed.
- If everybody was a programmer, technology would move much faster.
- Creating software to replace jobs is the way to go.
The supply of engineers does not match the demand of engineers needed.
If I were a grammar nazi, then yes the physical “supply” of human engineers does not match the demand. Everybody wants to go into tech because let’s be real, we are building software/hardware to essentially replace jobs and simplify life. However, does that necessarily mean that we are in short supply? I believe not. Rather we are in a short supply of talented engineers that many software engineers refer to as “rockstars”.
In software engineering, these “rockstars” are viewed at as “super” engineers that basically outperform most engineers. These are people who have so much experience that their knowledge and skill are ridiculously high.
In software engineering, there is no ceiling to how talented one can be at 1. coding, and 2. technology knowledge. These rockstar engineers are what I believe is the solution to the low “supply” of engineers. Having 4 mediocre engineers is not nearly as beneficial as hiring 1 rockstar engineer. In fact, having a ton of engineers that do not quite meet the standard of your company would in fact drag the company down. This is what startups do.
Getting to be a “rockstar” engineer is a totally different story and is totally out of the context of this post. However, as Malcolm Gladwell believes in his book Outliers, get in those 10,000 hours!
If everybody was a programmer, technology would move much faster.
No, not necessarily. If everybody was a rockstar programmer, technology would move much faster is the correct way to say it. However, if everybody was a rockstar programmer, technology would be much more different, which calls for a different blog post on this topic!
If everybody were to attempt to be a programmer, here is what I predict the world would look. We would have a massive overload on apps that are practically useless and the rare few “good” apps being well-known, but not as great as it would have been if it wasn’t for the useless apps.
What I mean by this is, imagine a world with tens of thousands of apps that does basically what Facebook does. These apps will have a a good amount of users for it to function, but is that what’s “better” in terms of technology advancement? Is reinventing the wheel tens of thousands of times, while potentially damaging the one product that should hold the place as the “token” application (in our example Facebook), the way to go? The obvious answer is no.
And I probably do not have enough business experience to predict what would happen if an app was practically reinvented many times, but it seems as if the way to go is to have a “token” application per functionality of an app. For example, it is great to have Facebook as our “token” application for social media/profiling or Twitter be our “token” application for following people.
Now let’s say instead of reinventing the wheel, people who were interested in the same area would just join the company instead. Like I mentioned above, having engineers that are not necessarily qualified to properly build the product of your vision will only drag the team down. So to wrap up this section, I believe having more programmers would only slow down technology. It would encourage more competition rather than actual solidly implemented ideas.
If the norm changes to parents practically forcing their children to become programmers, we would lose a bunch of natural creativity in this world. We would lose the diverse skill-set that we currently possess in this world. Who would be a talented artist, or a professional basketball player if they are spending all of their time training to be a programmer?
Creating software to replace jobs is the way to go
This does seem like the path we are heading towards. However, the question is, is it the way to go? Thinking about it, I would answer no. The reason is because there are very important tradeoffs to losing people to automated software/hardware.
For example,creating software to replace jobs will force people into a situation where they feel the need to be a programmer. Well I explained in the second section exactly what would happen in that case. Another tradeoff would be people would lose a significant amount of social interaction throughout their daily lives. Imagine a day without socially interacting with anybody or anything other than machines.
Please take a look at this video. Sometimes it may be convenient to not have to talk to waiters, but at the same time, you may lose a bit of the restaurant experience that you are used to. Imagine this, except not interacting with anybody no matter where you go.
In fact, imagine having everything done via the Internet through your phone where you basically don’t even have to leave the house for anything anymore. Another tradeoff I’d like to softly bring up but not dive deep in to is the economy. Who knows what would happen if unemployment rates go up because engineers are building things to replace jobs.
These are my two cents about what I feel the world would be like depending on the distribution of programmers and the skill of the average programmer.