Should We Learn Software Engineering in this "AI Age?"
Summary
My thoughts on whether it makes sense to invest our resources—time, money, effort—on computer programming and software engineering in this day and age when ‘AI assisted software development’ continues to reach greater and greater levels of maturity and sophistication. Should we continue to learn and teach these subjects, or should students and practitioners jump ship and look for alternative professions?A Common Concern
It’s a common concern these days with students and practitioners of software engineering. We are seeing unprecedented progress made by the popular large language models, or LLMs, in their ability to generate surprisingly accurate and high-quality computer code from high-level descriptions and requirements expressed in natural languages.
It’s as if anyone who can write in English can create software these days. Should we then stop learning how to program computers, and learn how to “prompt” the LLMs instead?1 If machines can generate good quality code at blazing speed—in mere seconds or minutes, in contrast to human programmers who might take hours, days or even weeks to generate similar volume and quality of code—is it the end of the line for most human programmers?
Several prominent figures in the tech industry seem to think so. In popular news feeds, you might have seen many influential personalities like CEOs and CTOs “advise” students not to bother learning to code anymore, and look for alternative career paths instead, because “AI will soon write all the code we need.”
Well, OK. This is clearly a very real concern now for students and professionals in computer science and software engineering—and in many other fields as well. We will try and find some “answers” to this dilemma. But before we do that, let’s hold these thoughts for a bit and look at the current situation and try to imagine what the future of software development might look like.
Evolution and Future
Let’s briefly trace the evolution of this AI assisted software development till date, and from there, try and extrapolate to possible future scenarios.
What Should We Do?
The rise and proliferation of AI assisted software developement seems fundamental and disruptive; it doesn’t look like a passing fad. Generative AI is very real. It’s here now, and it’s here to stay. It’s the future, whether we like it or not. In the face of such a disruptive change, it should be clear that we cannot keep doing things the old way. So the question naturally arises, “What should we do now? How should we respond to this change?”
More specifically, for students and practitioners, some relevant questions could be:
- Should we continue to stay invested in computer programming and software engineering, or should we look for alternative professions?
- How should we equip ourselves to stay relevant and competitive in an AI powered software engineering market?
What Do Experts Recommend?
Not a One Dimensional Change
-
“Prompt Engineering” is indeed a formal subject taught these days in many educational and professional settings. ↩︎