Will AI replace software developers? Learning to code in the AI era
Will AI will make software engineers obsolete? Your burning AI questions answered.
This blog was originally published on Substack. Subscribe to ‘Letters to New Coders’ to receive free weekly posts.
Note: This post is adapted from a blog I originally wrote over on educative.io, called Will AI replace programmers? A guide for Junior Developers. I still get asked this question frequently by aspiring programmers, so I want to take this opportunity to clear up some common misconceptions about the capabilities of generative AI and its potential impact on the software development industry.
My hope is that this post will answer your most burning questions about AI and coding — and even get you excited about the possibility of solving even more interesting and exciting problems in your future career.
Let’s dive in!
Aspiring developers are facing an unnerving tech climate.
Generative AI tools like ChatGPT have flourished, with specialized AI software engineers like Magic.dev and Cognition’s Devin on the horizon. At the same time, layoffs and hiring freezes have made finding a secure job difficult.
Recently, a reader wrote to me with a question that’s weighing on the minds of many new coders.
“Will the world stop needing junior developers?”
Many developers are worried that AI is a threat to their job security, but new coders are most vulnerable to this concern.
The possibility of AI replacing junior developers has massive implications. For that reason, many aspiring coders are wondering if it’s still worth learning to code. They also worry about how they could possibly compete in an AI-powered world, when the supply of junior developers exceeds the demand.
Today, I’ll talk about why the world still needs new coders, and why we should embrace Generative AI rather than fear it:
- If AI isn’t the end, what is it?
- Why we still need (human) junior devs
- What skills do junior devs need in the AI era?
- How to stand out in the job market
If AI isn’t the end, what is it?
For those feeling nervous about an AI takeover, let’s try a quick perspective shift.
Throughout programming history, the technologies we’ve used have changed immensely — and for the better. Before the 1970s, most computer programmers used punch cards to write and store computer programs. They then moved on to assembly language, and eventually modern programming languages, like C++, Python, Java, and so on.
Each advancement in technology has helped reduce tedium and made software engineers more productive. As a result, we were able to tackle bigger problems and build more complex and powerful solutions. Early technologies like punch cards and assembly languages were very difficult to work with — and we certainly couldn’t have built modern apps like Facebook with them.
These advancements in technology did not make programmers obsolete. In fact, they made learning programming accessible to more people.
Similarly, AI tools aren’t going to stop the demand for developers. They are just the next step in the evolution of programming technologies.
As AI integrates into more products and services, it’s going to create more jobs for developers. As advanced developers move into senior roles or AI roles, we still need entry-level developers to do more generalized tasks. Along the way, we’ll have to solve new problems. For example, Generative AI tools require close attention to matters of privacy and data integrity.
Having the option of using Generative AI tools is a luxury we should celebrate. But just like how power drills didn’t replace the need for a handyman, AI tools won’t replace the need for developers — they’ll only help you be more effective and efficient.
Let’s talk about why.
We still need (human) junior devs
While Generative AI tools will continue to be popular, they aren’t replacing the need for human developers. This is because these tools have several limitations.
AI lacks nuanced human judgment
Entry-level engineering tasks, like integrating APIs and UI components, may appear simple. However, creating a delightful experience that solves a problem for the user requires a human touch. And we can’t write optimized, maintainable, scalable code without human intelligence.
Writing software is a complex task that requires context. Incidentally, one of AI’s greatest limitations is its lack of context. The context for a given problem determines what will be a functional solution and impacts what code gets written and run. Without it, we can only get as far as writing small snippets of code. That necessary context can’t be found in the codebase itself, but is in the head of the human being.
For example, if we’re developing a health monitoring application, its success relies not just on the algorithms for monitoring health metrics, but also on understanding healthcare expertise, user diversity, cultural dietary norms, and privacy laws. These are all necessary details that AI can’t pull from the codebase itself.
While AI tools reduce the grunt work, they aren’t able to fully comprehend a problem or evaluate solutions. The real value of developers, including those at the junior level, lies in their ability to discern the best application of solutions in the context of a situation.
AI only performs one part of the developer’s core process
Underneath the programming syntax and algorithms, a developer’s core task lies in problem-solving.
We can break down problem-solving as 3 steps:
- Understanding the problems and the user’s needs
- Thinking of an approach to solving the problem
- Translating the problem into computer-readable form (writing code)
Of this process, AI can only help with the last step of writing code. In fact, in the latest Stack Overflow Developer Survey, 82.55% of developers reported using Generative AI for writing code. However, a developer’s work encompasses so many more tasks than writing code, from debugging to code documentation and so on.
Generative AI tools can’t help us solve problems without human supervision and guidance. They can take a prompt and generate code (which is great for streamlining your work). But they don’t have the full context and human judgment needed to reliably perform the steps that come before it. And even the AI-generated code needs careful review and edits.
AI is a closed loop
The key to good problem-solving is creativity, and for that, we need human imagination. Without human innovation and creativity, your code will be stuck in the patterns it has already seen.
As it turns out, Generative AI, and the Large Language Models (LLMs) that power them, are only able to generate code that reflects what they’ve seen before. They function by predicting the next word or sequence based on the data they’ve been trained on. For example, if a user inputs “file open,” the model predicts the next word based on the probability derived from its training data, which might include several instances where “file open” is followed by particular commands or phrases.
This ability to think outside the box is another skill with which Generative AI simply can’t compete with humans. Their underlying models operate within a “closed loop” of existing knowledge. On the other hand, human creativity isn’t as bound by patterns. In thinking of new approaches to problems, we can draw from various sources outside of existing codebases and documentation.
Human imagination is the same reason that great literature won’t die just because of AI. Even if you feed all literature books to an AI, it won’t generate anything new. It will be somewhat formulaic.
What skills do junior devs need in the AI era?
What’s new: AI readiness & prompt engineering
I’ve hired junior developers at Microsoft, Facebook, and now here at Educative. Over the last year alone, what makes junior developers stand out is signs that they’re “AI ready.” After all, the investment in AI initiatives isn’t going to go away anytime soon. If you’re someone who’s going to climb up the ladder in my company, you need to show that you’re willing to embrace these new technologies.
What I mean by “AI ready” is not that you’re ready to start working on AI models directly (especially if you’re entry-level). Rather, what I’m looking for is a curiosity and demonstrated willingness to learn how to leverage AI — especially Generative AI.
Every developer today eventually needs to learn AI skills. Beginners should be learning prompt engineering, so they can learn how to write effective prompts for Generative AI tools like ChatGPT to help write their code. But they should also be able to edit that AI-generated code… after all, we know these tools aren’t perfect.
That said, don’t jump to AI skills if you haven’t mastered programming fundamentals. After all, you can’t properly advise an AI tool on how to solve problems if you don’t have relevant experience yourself. Besides, you need to have the right expertise to edit that AI-generated code too… as we know, these tools are far from perfect.
All the other prerequisites still apply
The fundamentals of learning math didn’t change just because we were able to use calculators. So the rest of the junior developer skill set remains the same.
New coders still need a strong foundation on programming fundamentals. You still need to know how to write code, which data structures and algorithms to use for particular scenarios, and how to implement them.
So yes, for those wondering: It’s not only worth learning to code in the AI era — you also shouldn’t be skipping any steps. Even if tools like ChatGPT can technically help you, you shouldn’t rely on them. If the power goes out and you can’t access an AI assistant, you should still know what to do with a given problem.
Again, while you’ll likely use AI tools to be more productive in your job, you still need to instruct them on what to do. They are not self-driving vehicles, and they will go off-course if you’re not behind the wheel.
How to stand out in the job market
Generative AI tools are a great advancement, and we should celebrate them. By helping us with the tedious tasks, we’ll be able to focus more of our time and focus on problem-solving in new and effective ways.
No matter where you’re at, remember that the only threat to your job security is other developers who have AI skills.
Beginners should focus on prompt engineering to start, while more experienced developers can move on to learning about machine learning and LLMs to leverage other tools like LangChain.
And if you’re looking for your first dev job soon, you can’t afford to slack on job preparation in today’s market. You’ll need to prepare for your job hunt by building a strong portfolio of diverse projects and cracking down on interview prep. Participate in as many opportunities to showcase your work and meet new people — from open-source collaborations to coding competitions to networking events.
You can learn everything you need to know about writing your first program to acing your first System Design Interview with our hands-on courses and projects on programming foundations, interviews, and more:
Good luck out there, and remember — AI is a tool that will help you, rather than replace you.
As always, happy learning!
– Fahim