Learning Computer Programming in an AI-Driven World
Summary
With the code-generation capabilities of popular LLMs reaching greater and greater levels of maturity and sophistication, many people are justifiably worried about pursuing a career in computer programming and software engineering. Should students and professionals be spending their valuable time, money and effort in learning and honing their skills in software engineering in an AI-driven world?
My thinking—not wholly original—is that the practice of software engineering has been irrevocably changed by the advent of AI assisted software development and agentic workflows. The profession hasn’t reached—and I think will not reach anytime soon in the foreseeable future—a dead-end, but we as a “professional species” need to adapt and evolve if we are to stay relevant.
The World is Changed
Of course it is—it’s changing all the time. But OK, dud jokes aside, you know what I’m talking about: the “AI revolution” that’s taking place in the world of computer programming and software engineering. (In the rest of this article, we will abbreviate the phrase “computer programming and software engineering” to ‘CPSE’. We will also use ‘CS’ for “computer science.”)
If you have seen the fantastic “Lord of the Rings” (LOTR) series of movies, you may remember this opening narration:1
The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air. Much that once was, is lost; for none now live who remember it.
We need not worry about reaching such a state in CPSE and CS just yet. But some people would have us believe that something like that is nearer than we may care to admit. If you, like me, have the enviable habit of scrolling through news feeds, you might have seen influential CEOs, CTOs, and C-what-not-Os “advising” students not to learn to code in this day and age because “AI will soon write all the code we need.”
(My Sarcastic Self: “Hah, right! Thank you for that precious nugget of wisdom: that’s exactly what our starry-eyed future engineers needed to hear!”)
It’s not just the C-dash-Os though. If the countless articles on this topic published in popular technological forums are anything to go by, every seasoned CPSE professional—at least the ones that care to publish those articles—seems to have suddenly found the holygrail of hyper-productivity in software development: an AI “copilot.” That enables them to do the work of myriad other engineers by using “AI coding assistants” and “agentic workflows.”
But what’s the situation, actually? How worried should we be? Have CPSE and CS reached, or will soon reach, dead-ends? Should we stop teaching CPSE to students and practitioners? Should they stop learning? In the rest of this post, we will try and get some clarity into these and other relevant questions.
Before we dive in though, let’s acknowledge what is already quite evident: agentic code generation has reached unbelievable levels of maturity, competence and sophistication. And it will only keep getting better. It’s here to stay. It’s the future, whether we like it or not. And it would be foolish to fight it and not adapt to it.
Food for Thought
So we do have some serious, very concerning questions to think about and answer. I’m not going to pretend to have all the answers. Instead of me giving answers, it may be more fruitful to explore this together. So instead of answers, let’s first look for the right questions to ask. Let’s try and remove the fluff and the hype, cut to the chase, and simplify things. And be as direct as we can. Let’s also remember to use a dash of common sense when we can.
Here are some high-level, relevant questions that I can think of:
- Should we learn to code in this day and age, if AI is going to write all the code we need? In other words, is the current “AI revolution,” and its future development, going to render human programmers unnecessary?
- If not completely unnecessary, will it drastically reduce the demand for human programmers? In other words, will we soon have a small number of “super programmers,” armed with sophisticated, AI-powered code assistants, do the work of an army of “ordinary programmers?”
- Is it necessary to study the fundamentals of CPSE and CS if we have access to highly evolved and powerful AI coding agents? In other words, should we bother teaching the basics to future practitioners, or should we just hand them “AI power tools” and tell them to “go forth and produce?”
- Are there good and bad ways of using AI for software development? The answer to this question should be obvious. Like any other tool, there should definitely be good, effective ways to use AI for CPSE, and there should also be ways of using it that are detrimental, and even downright harmful. The more useful, follow-up question then would be: what are some good ways of using AI that we should adopt in CPSE, and what other ways we should avoid?
Last Words
It’s fair to say that the “AI revolution” has fundamentally changed the practices and workflows in CPSE and CS—and, I’m sure, in many other fields as well. And it will continue to do so. But is it a positive change or a cause for concern? Like in many other things, it depends. Approached and used rightly, AI is here to empower us, not destroy us. On the other hand, if we use it wrongly or ignore it, we run real risks of becoming irrelevant.
This is a period of an unprecedented “AI transition.” But I’m willing to wager that instead of a “none now live who remember” kind of scenario, we will live to tell the tale of the transition. If we are to do that though, we must learn to adapt to, and navigate, this brave new world.
-
If you haven’t seen the LOTR movies, stop reading this now and go watch them! ↩︎