Speculations that artificial intelligence (AI) will one day replace software engineers are not new. However, since ChatGPT became public, these conversations have intensified. After all, ChatGPT can seemingly already do what junior programmers can do.
Since then, even more AI tolls have become available. There’s GitHub Copilot that was specifically designed to assist developers with coding. There’s Devin made by Cognition Labs which can supposedly do a wide range of tasks that software developers do today.
Well, the good news is that none of the existing or upcoming large language models (LLMs) are good enough to fully replace the software development job. On the contrary, they will unlock many new opportunities.
However, these LLMs are changing the software development profession forever. There will be the winners and the losers. And yes, some programming jobs will probably be at risk.
In today’s article, I will explain what the actual dangers of AI are and what concrete steps you can take to adapt to this new era.
The actual dangers of AI
While LLMs like ChatGPT and Devin look intelligent, they aren’t anywhere near as intelligent as they seem. LLMs of today aren’t self-aware. While they can do their best to provide answers to a problem, they aren’t good at understanding the nuances. Without understanding these nuances, they can’t fully understand the context.
For these reasons, LLMs can’t replace software engineers. After all, experienced software engineers don't jump straight to code. Before writing any code, they speak to various stakeholders to understand the problem. Sometimes, they have to deal with a lot of contradictory information before even a single line of code is written. This is precisely one of such nuances LLMs aren’t good at.
However, what LLMs can do (and definitely will do) is commodify the role of a junior software developer and significantly reduce the demand for it.
Reduced demand for junior developers
Junior developers don’t typically speak to the stakeholders to understand the problem. A senior engineer would assign a ticket to them. The ticket would already have a fairly well-outlined description of the piece of code they need to write.
Since writing code to solve a well-described problem is precisely what LLMs are good at, more and more organizations will start using LLMs to solve such problems instead of hiring junior developers. The same will happen to cheap software development outsourcing companies because the nature of their work is often very similar.
Lower salaries for junior developers
For those junior developers who will remain in the market, the salaries will probably go down. This is because of the three factors that determine one’s pay in a free market:
The need for what you do
Your ability to do it
How difficult it is to replace you
Let’s see how LLMs affect each of these factors.
The need for what you do
We already covered how the demand for junior software developers will go down, as the tasks junior developers typically do can be done by the LLMs. The salaries will follow the demand on its way down.
Your ability to do it
LLMs make it easier to write good code. Even if you don’t know the principles of clean code and other best practices, you can still use LLMs to write well-structured and well-maintainable code. Even bad developers can now produce good code.
Since LLMs equalize the skills between good and bad programmers, this is another reason the salaries of junior developers will go down.
How difficult it is to replace you
LLMs make it way easier to learn how to code, which lowers the barrier to entry into the profession. Because it’s much easier to enter the profession, it’s much easier to get replaced as a junior developer. Therefore, there are fewer incentives for employers to keep junior programmers’ salaries high.
The opportunities created by AI
It’s not all doom and gloom. Almost every innovation in human history brought with it more opportunities than it destroyed. There is no reason for AI to be any different, as it shares many characteristics with these innovations.
The invention of the car made the whole industry of horse breeding all but obsolete. However, it created many new industries such as logistics, public transport, etc. This resulted in a huge demand for many new professions.
“Computer” and “calculator” used to be job titles. People used to get paid for performing calculations by using pen and paper. These calculations are now done by electronic devices. In turn, these electronic devices created many new industries and professions that nobody could have even imagined, such as search engine optimization specialists.
There is no doubt that AI will create many such opportunities too. Some of these opportunities are obvious today, as a single senior engineer can now do what required a team of engineers just a few years ago. However, some of these new opportunities will come from many new inventions that AI will facilitate.
To make sure you don’t miss out, you will need to take active steps to prepare yourself.
Three steps to thrive in the age of AI
There are some concrete things you can do to maximize your chances of thriving in the age of AI and LLMs. Here is what they are:
1. Think beyond the code
As we already discussed, the developers most negatively affected by AI are those who primarily write code to solve well-defined problems. Therefore, you can no longer be such a developer. You have to think beyond the code.
Be less of a programmer and more of an engineer. Learn the business domain you are in. Get into the habit of speaking to the non-technical stakeholders to understand what their business requirements are. Start practicing turning vague business requirements into concrete atomic problem descriptions solvable by writing code.
Also, learn how to observe your applications once they have been deployed to production. Learn how to read metrics to identify performance bottlenecks. Learn how to identify blind spots that aren’t covered by metrics, especially regarding the things that may affect user experience even if the application is seemingly working correctly.
While LLMs can read metrics, they can’t empathize with the users. LLMs deal with calculatable numbers and not a messy world of human emotions.
In short, become good at things that AI cannot do and is unlikely to learn to do well any time in the near future.
2. Learn how to use the popular AI tools
As a programmer, you can think of AI tools as yet another level of abstraction. It’s a good thing because each new level of abstraction makes you exponentially more productive compared to the previous one.
The original programmers didn’t write code in human-readable languages like C# and Go. They wrote low-level instructions directly for the CPU. The process of writing software was tedious and slow.
Eventually, new human-readable languages were created that made the process of writing software way more intuitive. The code could be written and read relatively easily. The compiler would then convert this human-readable code into a low-level set of CPU instructions without any human involvement. The process of writing software became much faster.
The languages kept evolving and new levels of abstraction kept being added to them. These days, it will take minutes to write a basic single-page web application, a task that would have taken days (or even weeks) if high-level human-readable languages didn’t exist.
AI tools, like ChatGPT, Copilot, and Devin, unlock yet another layer of abstraction. By mastering these tools, you can write large quantities of good-quality code very quickly. This will make you more valuable as a software engineer and put you well ahead of your competition who are still thinking that AI and LLMs are just temporary fad.
Knowing how to use the AI tool well makes you the equivalent of a programmer who mastered a high-level programming language while everyone else was still writing direct CPU instructions.
3. Think of yourself as a “problem solver” rather than a “developer”
I admit that I may be completely wrong about all of it. Maybe some new AI tool will indeed make even the senior software engineers obsolete.
However, there is still a way to emerge as a winner out of this situation. That is to disassociate yourself from being a software engineer. Start thinking of yourself as a problem solver who is capable of solving any difficult technical problems. It just happens that the problems you are solving at the moment happen to be inside the software engineering domain.
This was the attitude that helped me transition from an environmental scientist to a software engineer. While my colleagues complained about how they struggled to find jobs in the industry that paid reasonably well and expressed their regret about choosing the profession that they are now “stuck in”, I saw none of such issues.
I didn’t attach myself to either the profession or the industry. I saw myself simply as a problem solver who happened to be solving environmental problems at that particular moment in time.
When I was dissatisfied with the low pay, I immediately started looking for other in-demand fields that I could transition in. Software engineering happened to be the most interesting and the most viable field.
Once I learned how to code, I still did what I loved. I was still doing the same thing I always wanted to do, which was to solve complex technical problems. The only thing that changed was a specific problem domain.
There is absolutely no doubt that AI will create many new opportunities that we can’t even imagine yet. So be prepared to take advantage of these opportunities when they appear.
Wrapping up
While you can’t guarantee that AI will not take your job, you can maximize your chances of making this irrelevant. You can prepare yourself and emerge as a winner. You can become a master of AI rather than its slave.
AI is not just a temporary fad as some people say. AI is here to stay. ChatGPT is only the beginning and we will be seeing more and more such tools. And, since you can’t stop the AI revolution, your best bet is to take advantage of it.
Until next time!