There have been a lot of headlines recently proclaiming the end of software engineering as a profession thanks to AI, and current and prospective computer science and software engineering students are understandably concerned about their careers. We sat down with Dr. Mei Nagappan, associate professor in the Cheriton School of Computer Science, to separate fact from fiction.
Nagappan’s recent research applies machine learning and large language models to core software engineering challenges, including bug localization, vulnerability detection and automated test generation. His work critically examines the real-world effectiveness of AI-powered developer tools. His papers have been published in top venues including ICSE, ASE, FSE, and IEEE Transactions on Software Engineering.
Is AI ready to replace software engineers? Is this all hype?
The first thing to know is that there’s a lot of hyperbole on both ends of the spectrum: from the skeptics who say AI is a scam that’s going to go away, and from the businesspeople and frontier model companies who say AI will replace everyone’s jobs and run every aspect of society.
The truth, of course, is somewhere in the middle. These are very impressive tools, and in the last decade there have been exponential jumps in their abilities. But we have reasons to believe those abilities are plateauing, and the large language models we have right now are far from being able to replace humans.
Partially, this is because software development is an inherently human endeavour. Software is being built for humans, and humans are often not very good at knowing what they want. The model might follow instructions 100%, but still produce bad results.
For example, a yoga instructor might use AI to create a scheduling app, but they might not think about edge cases like cancellations, multiple accounts, or protecting the privacy of their clients. And then you need to think about priorities and make choices about how your software runs: the software for a phone game might make occasional mistakes, and that’s fine as long as it’s fast and smooth. For a nuclear reactor, on the other hand, the software can be as slow and inefficient as it needs to be as long as it is correct 100% of the time!
You can’t just prompt and vibe code your way into building a robust, enduring piece of software. It’s like handing me a chainsaw and expecting me to be able to build a house. Without a deep understanding of building, I will make huge mistakes and anything I create will be faulty and dangerous. That’s why having the training and comprehensive knowledge of a software engineer is still vital.
There’s also the fact that humans have a very low tolerance for error, so we still need human oversight for these models. Creating a model that is accurate 90% of the time is very exciting for researchers who were achieving 30% accuracy a few years ago, but it’s not good enough for regular people relying on this technology. If your bank lost your money 10% of the time, you would never bank with them!
Are there still jobs out there?
These tech CEOs are great at building models, but terrible at making predictions. They keep making these statements about the end of software engineering to impress their investors, but if you go to their LinkedIn pages, they’re still hiring engineers!
There are a lot of layoffs happening across the tech industry, but it’s not because AI is actually replacing those jobs. Companies are just looking for a convenient excuse to lay people off and save money, and then blaming AI.
I do think that there is less hiring of junior employees going on, and that’s very short-sighted. Ten years from now, companies will still need experienced software developers, but they won’t have developed that junior talent.
Despite the headlines, however, we know that our students are still doing very well. Ninety-six percent of Computer Science graduates have a job six months after graduation.
Is it still worth it to get a degree in computer science? What sets Waterloo apart?
Ideally, in university, you’re not just learning skills or programming languages: you’re learning the principles and logic behind them. Universities teach students to think, to be creative, to ask the right questions, to iterate and problem solve. They are also where the fundamental research happens regarding how to actually create AI and make it better.
Computer Science at Waterloo provides two major advantages. First, our program has a depth and breadth that most schools cannot provide. If you want to specialize in security, or UX, or databases, you can. But a general computer science degree will give you an incredible breadth of knowledge and skills.
The second advantage is the co-op program: our students gain valuable on-the-job experience, and are recognized as talented, hard-working and innovative problem solvers. Anywhere you go in Silicon Valley, if you say you’re from Waterloo, they know what that means. We have a kickass reputation! That still matters.