- Published on
Will AI replace my job as a Software Engineer?
- Authors
- Name
- Talha Tahir
- linkedin @thetalhatahir
If you're an engineer like me, you've likely witnessed the rise of AI. It makes you wonder if this could be your last job. You might imagine receiving an email from your boss, thanking you for your services, but unfortunately letting you go because they've found a much more capable engineer. This engineer is well-versed in multiple programming languages, can do documentation in a second, write code reports, optimizes code without having any peer discussions and never takes any sick leave or PTO. Plus, they require only a fraction of your salary.
Before delving into this topic further, I want to clarify that these are my own opinions, based on my industry experience.
The Emergence of Chat Models
Since the advent of ChatGPT, there have been multiple Large Language Modal (LLMs) like Google Gemini, Meta's Lama, Claude by Anthropic, and most recently, Devin AI. These models, like ChatGPT 4 and Google Gemini, have the capability to access the internet and provide concrete solutions for singular problems. For example, a very basic nightmare problem for an engineer is how to center a div in html, you can simply ask ChatGPT to provide you with the code, and it can do that for you in several ways.
Advancements in AI Capabilities
As more and more models started to appear, their capability of solving singular problems increased drastically. These models learn from their mistakes and refine themselves over time. For example, GPT-4, OpenAI's latest model, is much more capable of grasping context and providing valid solutions. Even with all these improvements, in my experience, these LLMs become more like friendly helpers. I started using ChatGPT more for basic solutions rather than googling them. If I face an error, I try asking ChatGPT for a solution first rather than googling it.
Gemini Ultra
In every field especially in tech, there is always room for improvement, and due to the popularity of AI, more money started to be invested in this field. All this is to build a much more enhanced and capable AI model, one such use-case is Google's Gemini Ultra model , which has access to a million tokens.
What is a token in terms of an LLM? A token is the smallest unit into which text data can be broken down for an AI model to process. Each chat model has a limit on the number of words you can type in one go for a LLM model to understand the grasp of the problem but with a limit of a million tokens, things got serious. Google's demo showed Gemini Ultra using a fully functional graphics library to write new code by understanding the overall context of the library provided to it. It's like providing a chat model with the React.js codebase and then asking it to build components for you.
With this capability, it would be possible for an AI modal to fully understand the overall context of a project or github code repo and then provide solutions or write software. This is a game-changer!
Devin AI
People were still talking about Gemini when a new player entered the field, introducing Devin AI. Devin AI is an all-in-one chat model with the impressive ability to access the internet, navigate and interact with websites, access the terminal, code, and debug to refine its solutions. In their demo, you'll witness Devin confidently tackling problems, from scouring Upwork for tasks to delivering final projects for clients. It navigates the terminal to execute commands, utilizes code editors to write and debug code, and runs it repeatedly until all errors are resolved, presenting a flawless final solution. This caused quite a stir in the industry, leaving many pondering if this marked the end of their careers.
However, it's important to note that both Devin AI and Gemini Ultra are still not publicly available and are in beta mode only.
Will AI Replace Software Engineers?
Overall, the situation appears much more serious now compared to when it all began. So, the burning question arises: will AI replace my job as a software engineer? The answer is both yes and no, and here's why.
First, let's understand what a software engineer truly is. A software engineer is a professional well-versed in engineering software, capable of analyzing, critiquing, and solving software-related issues. They possess a broad range of skills, including knowledge of software engineering concepts, architectural design, programming, and testing. They have an armada of tools at their disposal which they use to solve problems.
There's a significant disparity between a seasoned software engineer and someone who's completed a crash course or boot camp in JavaScript for six months. If you fall into the former category, you're likely safe. However, if you belong to the latter, it might be time to reconsider.
AI can indeed generate code more efficiently than humans, but it lacks the comprehensive understanding, problem-solving abilities, and critical thinking inherent to the human mind. Technology evolves rapidly, introducing new frameworks and tools regularly. However, the experience gained from using various tools and technologies stays with you and sets you apart.
There will be instances where you encounter a problem and recall a similar issue you've resolved in the past, applying a tried-and-tested solution. This innate human ability distinguishes us from AI models.
Conclusion: Embracing the Future
If you've solely completed a boot camp or some certifications and lack a deep understanding of software engineering principles, AI may indeed outperform you. But if you are someone with a deep knowledge of your field and have experience solving problems and can apply those experiences to current problems then AI will only make you more productive. AI would then become one of the tools in your arsenal that you can harness to solve problems more efficiently. Learn more about Using ChatGPT effectively as a Programmer to enhance your skills.