Should I learn to code if AI will replace me?

In the past few years, AI has gone from a nerdy pipe dream to reality. Its use has become commonplace amongst professionals and enthusiasts alike. Some are using it to create art, write tweets or improve their appearance.

Although it was predicted that self-driving cars and menial work would be automated, instead it’s targeted a lot of creative pursuits. Already some sectors have seen layoffs as a result of automation.

As a software engineer, and I know I’m not the only one, I’ve been questioning whether I’ll have a job in 5 to 10 years. Will my job even exist? And for those new to software, what should they learn?

I don’t have a crystal ball but these are some personal musings on this topic. Hopefully, I can say “I told you so!” In 5 years. Or I’ll be writing a reflective piece on showing scepticism toward prediction pieces. Time will tell.

Will software engineering disappear in 5 years?

I highly doubt this one. One analogy of how I see software engineers in the future is to that of the draughtsman. Historically, a draughtsman was employed to create various technical drawings of various things - buildings, bridges etc.

In the 60’s CAD came along and changed the whole scene. Now draughtsman had a large portion of their work removed as it had been automated away. Nowadays the profession doesn’t exist per se but has in large part become “CAD Technicians”.

Now that sounds like I think software engineers are going to die out but I don’t! I instead think that, like draughtsmen, our role will change. We will work collaboratively with AI models to be more productive.

Again, the sceptic would say that more productivity means less need for people. But again, just as CAD opened up a world of careers, so too will AI. I can’t even imagine what these might be.

It’s important to note that AI (not AGI) will always need some kind of “prompt” - the instruction on what to do.

Software development is not just about writing the code. It’s about taking customer requirements, having them filter through a chain of product managers, and then translating that into functional and non-functional requirements that you can code.

For example, let’s say your manager comes to you and says he needs a new API point created to handle students' exam results. Now you know from experience that around 100,000 students are taking their exams - so you need scale. And you know the company is an educational institution so can't spend too much money. Based on these parameters (and doubtless countless others), you'd recommend using a serverless solution. This is just a small example, ask this same thing of Chatgpt and it quickly falls down.

Of course, this all changes if it becomes trivially cheap to train specific models for each business context. But there is still that translation layer. Often software needs multiple iterations. AI can write stuff but it can’t read people’s minds. It can’t think in abstract creative terms (yet).

This is all to say that the profession of software engineering will not disappear. Our role may however change to work collaboratively with AI. This will mean less coding and more prompt engineering.

Should I train to be a software developer?

If you’re new on the scene and learning traditional web development, you might wonder if you should continue. I’d emphatically say yes! Software is changing all the time. I’m quite new in my career but have still seen multiple technology changes - from frontend frameworks and languages. If you are learning, expect to keep learning and adapt as the market changes.

Many recommend becoming the "robot operators" rather than the people who are going to be replaced by robots. In other words, becoming an AI engineer. This is certainly a new growing career path - if it interests you, go for it. If not, then there will be plenty of career paths that remain in web development, backend development and more.

While learning, I've always recommended learning principles over frameworks. For example, all languages have a way to create loops, declare variables and call functions - these are the "principles" or building blocks of technology. This will help you to stay adaptable and not stuck to one way of thinking.

We're living through a very interesting time in technology, AI has become a reality and it presents a huge opportunity for working in tandem and increasing our productivity with it.