The claims.
Recently, I have seen more claims that AI will take all the ‘coding’ jobs. Almost every new AI model release or innovation in the field brings out the critics saying that programmers will no longer be needed in the near future. People seem to gravitate toward what Nvidia’s CEO, Jensen, outlined in a speech, saying that the newer generation of students should not learn to code.
Although I see his point, many people are taking the outlining aspects of his argument to the extreme, suggesting that there will be zero software engineers. When Jensen says that kids should stop learning to code, it may seem a little rattling. Why wouldn’t it raddle you? He leads one of the world's biggest and most prominent tech companies.
Other companies, like Cognition AI, have gone viral over their demo of Devon, an AI software engineer. Devon can supposedly do coding tasks independently with just a prompt. This demo was the only thing Tech Twitter talked about for almost a week. Ironically, Cognition was still hiring software engineers when they claimed to have a product that was a software engineer. How does that make sense? Well, it’s because it didn’t work well; it was faked.
More people are coding with AI. Is there some data that will highlight its usefulness? Yes, and many findings progressively show that AI-generated code is risky.
Does it actually help?
Software engineers in the industry see how AI is not so scary. The first time you used ChatGPT, it was super impressive. The engineer's mind gets flooded with all the implications of what will come of such a technology.
Oh my gosh, it can write a binary search in Rust from a single prompt?!
Naturally, the next thing to do is to put it to the test. You will quickly find it is mostly unhelpful for actual real-world use cases. Sometimes, it even gets simple things wrong. I find I often type more in the prompt than I would just code the implementation myself.
One of the main issues is AI doesn’t fully understand your project. It tends to mash together standards and setups that you are not using. It usually tries to generate code that is compliant with an older version of your framework or package.
Times I use it.
There are only a distinct handful of scenarios in which AI remotely is useful in my actual workflow.
I know exactly what to type, and it just does it for me. (definitely helpful)
I want some code that I know is in a million different places on the internet and is easier to generate than to look up. For example, I may need to get yesterday’s date in a language I’m unfamiliar with. I know that the code I want is super easy, and the AI will most likely get it on the first try 99% of the time.
I need a certain type of command to run. There are just some commands that you don’t use often, but you need them anyway. Recently, I asked for the command to do an interactive rebase in Git.
Model generation. For instance, I have a SQL table script and paste it into my code. It scaffolds the table into a class that I can use in my code.
Other than these scenarios, I catch myself wasting time trying to get it to work with AI when I could have done it myself. It is super rare when I get to write a prompt like “Do a,b, and c so that I can do x,y, and z.“and it just works. Yet people think AI will write entire complex systems that will need 0 human intervention.
Software Engineering is not coding.
Coding is a means to an end. It is a misconception that developers spend all day coding, and that is simply not the case. Increasing the rate at which code is produced (assuming it is of the same quality) will only increase the throughput of shipped features, not limit the need for developers. Every single “programmer killer” only increased the number of tech-savvy people needed to maintain those new systems. This dynamic is known as Jevon’s paradox.
C was supposed to make programming easier and faster, reducing the need for software engineers. We all know how that turned out.
Don’t worry about AI for now.
You should be more worried about Section 174 than AI. Next time you encounter an “AI is going to take your job” article, just ask yourself the following questions.
Is this person a software engineer?
Do they write complex software that has its grasp on multiple systems?
Have they written software in the last couple of years?
If none of the questions above are answered yes, then you should be cautious of absorbing that information.
When and if AI replaces software engineers, that isn’t AI, that’s AGI. At that point, we are all out of jobs.
Keep coding!