Artificial intelligence will replace you as a software engineer
The Status Quo.
Let’s face it: AI is better than us. Our first language is JavaScript: the concept of int
, double
, float
reduced to number
; initializing a variable with a string
and then reassigning it to a number
is expected; and why do we even need multithreading if users can just buy newer hardware?
Even before the whole AI thing, our code was already taken from StackOverflow, most of it we didn’t even understand, much less were capable of writing it ourselves. And now we simply copy paste whatever an LLM gives us and call ourselves “prompt engineers”.
This is the average “software engineer” of today, and it’s a shame that the title also encompasses this group of people.
The Proper Software Engineer.
The proper software engineer knows the foundations of computer science. They understand the low-level differences between 32-bit and 64-bit systems, how to efficiently manage memory, and the reasons why C is the best starter language (I confess this last statement can be controversial). But perhaps the most important characteristic of a proper software engineer is a simple one: the mindset.
It’s not about what one knows or doesn’t know, it’s about wanting to learn. The constant information gathering that never stops, the imposter syndrome, the necessity to truly understand how and why things work instead of just accepting the LLM’s solution. That state of constantly learning what’s left to be learned is what defines a proper software engineer.
If that’s who you are, then respect. If you’re more like the “status quo software engineer”, know that there’s still hope, as long as you adopt the mindset.
How LLMs Should Be Used.
This is not an LLM hate post. They complement our job instead of taking it, unless you’re a “status quo software engineer”.
Repetitive tasks, which we could finish with our eyes closed and proper touch typing, are where LLMs shine. With a simple prompt we get hundreds of lines in seconds, lines that even if we’re writing them for the hundredth time would take us a couple of minutes to complete. Nonetheless we can’t simply take whatever the LLM outputs. That’s where the proper software engineer steps in.
We don’t use AI to solve problems for us. We use it to write our own solutions faster, while knowing precisely what and how it’s needed. The best way to look at LLMs is as if they were software engineer interns. We point them in the right direction, wait for their solution, review it to make sure they’re not doing anything catastrophic, and then adjust as needed until it’s acceptable enough to integrate into the codebase.
That is the proper way to use LLMs.
Why You’re Getting Replaced.
In case you haven’t figured it out from my subtle foreshadowing, proper software engineers, which are the minority, are not getting replaced.
So who’s getting replaced? The “status quo software engineers”. These are the people who build entire projects through LLMs without a single critical thought. They act as little more than ctrl-c, ctrl-v robots for LLMs, stitching together code from different prompts. And if LLMs have already advanced this much, it’s only a matter of time before they no longer need these robots.
That said, not all hope is lost if you’re a “status quo software engineer”. As long as you adopt the right mindset, you can rest assured that you won’t be out of a job anytime soon.