Artificial intelligence (AI) has taken the world by storm, and its impact on the software development industry is undeniable. The recent news and development of Large Language Model (LLM) algorithms and other forms of AI have made people realize that computers are beginning to code. Some have speculated that AI will eventually replace developers altogether, rendering their skills and expertise obsolete. There is a lot of fear, uncertainty, and doubt around this. As LLMs become more powerful, and AI assistants like copilot start to write more code, developers fear if they, in fact, are still relevant. Will the demand for one of the most advanced skills of the modern age suddenly go away? No. It won't.
The Programming Evolution
In 1972, Dennis Ritchie released the first "high-level programming language": C. As a successor to B, C was one of the first widely used "human-readable" programming languages. It changed the world. For the first time, programmers no longer needed to think about machine code. They could think about overall data and instructions, and let the language compile it into machine code. Up until that point, programmers had to know the instruction set of the specific CPU they were programming on. They had to understand how the hardware worked. Of course, further down the road C++, and Java in turn also revolutionized the software development industry by allowing developers to write code more efficiently and with greater ease. The development of all these higher level languages sparked the question of whether high-level programming languages would eventually replace the need for developers, as assembly language was gradually phased out of use. It is true that developers today, write code at a significantly faster rate than developers in the days before C. Higher level programming languages have certainly changed the game! In fact, while C was once considered a "high level programming language", it is often referred to today as "low level". C is now being replaced by rust, and starting to enter the way of assembly. What was once our herald, is now our legacy.
The reality is that high-level programming languages did not eliminate the need for developers. Look around, there are more developers and "code-adjacent" jobs than ever before. As software becomes easier to write, difficult analytical problems surface more. New achievements unlock new challenges. As computers got better and cheaper, we started storing more data. Eventually we had so much data, we needed to create new ways to deal with it. New databases, new hardware. This follows the theory of induced demand.
Induced demand is a concept in economics where increased supply can lead to increased demand. The best way to look at this is, over the years, electricity has gotten cheaper and cheaper. And yet, governments and companies have never spent more on electricity than now. As prices fall, their budgets increase. Induced demand says that as things such as electricity become cheaper (or, more readily available), then more people use it as it becomes less cost-prohibitive, and demand actually increases beyond the original level.
We can see this same pattern through software. When software was in its infancy, only governments and large organizations could afford it. As software became cheaper to produce, we saw more and more solutions being solved by software, and more users than before. As our ability to produce high quality software improves, so does demand. When the cost per line of code goes down, the desire to purchase code goes up.
So, if cost goes down, will my salary drop?
We have been talking about the cost of software going down over time, but have developer salaries dropped over the years? No, they have continued to grow. If we were to compare you to electricity as mentioned above, the cost of electricity goes down, but the budget for power goes up. In other words, you are the power plant. As code becomes easier to write, you don't get paid less, you produce more, thus, increasing your own value further. Improvements in the industry improve your output, thus increasing your value.
Code is not the "bottleneck"
Just as high-level programming languages did not replace the need for critical thinking and problem-solving abilities, AI will not replace skills that are required to develop complex software applications. The ability to analyze complex problems, develop innovative solutions, and collaborate with others is a key aspect of software development that cannot be replaced by any AI. AI can certainly automate certain tasks, but it cannot replace the creativity and intuition that are required to develop innovative software solutions.
Writing code is simply a means to an end, not an end in itself.
Software development is not just about writing code, but about creating solutions to complex problems. Writing code is simply a means to an end, not an end in itself. The ability to solve complex problems and create innovative solutions is a critical aspect of software development. Programming requires creativity, insight, and intuition, all of which are uniquely human characteristics that cannot be replicated by machines.
That is to say that writing software is a process of designing simple interfaces for complex, robust solutions. It's a process of exploring. Of debugging. Of empathy.
You have a brain
AI does not think. It simply produces the most statistically likely response based on previous training. The inherit flaw with AI, is that it can only make decisions as good as the training data it has.
I should think that you Jedi would have more respect for the difference between knowledge and wisdom.
―Dexter Jettster
Amazon did a study where they created an AI platform to screen resumes. They had to eventually scrap it because it was shown that the AI was biased towards males They problem with their resume screener is that it used current Amazon employee resumes as training data. Amazon was already a biased place with too many males. They were actually aware of that problem, which is why they created the AI. But AI cannot perform better than its training data.
Now think about your code. Is it perfect? Is it flawless? Does it pass all the test cases? It's it bug free the first time, every time? If you answered yes to these, please reach out, because I will hire you in a flash. The reality is that software is buggy. Like, really buggy. If you look at open source projects, chances are you will notice that the higher the amount of stars on a project, the higher the amount of bug reports it has. Software is often so buggy, that as software engineers, we have backlogs and ticket systems with labels such as "won't fix". Issues so hairy, or so rare, we decide they aren't worth our time. The training data for AI is bug laden software. The quality of the code AI writes can never be better than the quality of software it is given.
You are safe
Might your job change as AI becomes more prevalent? Yes. Might you have to learn some new ways of working, new languages, new skills? Yes. Might you have to increase the amount of analytical and intuitive work you do every day? Yes.
But the need for a "programmer" is not going away.
Just as we couldn't anticipate assembly going the way of the dodo, it's too early to tell what will happen to programming as we know it today. But your job, your livelihood, your brain, are not obsolete. They will be more needed than ever.
Top comments (0)