Nvidia CEO Jensen Huang caused a stir when he recently stated that children no longer need to learn to code – AI will do it for us.
“Over the last 10-15 years, almost anyone sitting on a stage like this would say that it’s crucial that your children learn computer science, that everyone should learn to code,” he said at the World Government Summit in Dubai earlier this year. . “In fact, it’s almost the opposite.”
Is he right?
Since OpenAI’s GPT-3 language model first raised eyebrows with its ability to create HTML web pages from simple written instructions, the field of artificial intelligence has seen a series of breakthroughs, with systems now able to write complete computer programs from natural language descriptions and automated assistants for coding developer productivity turbo charging.
The most surprising are AI coding agents such as Cognition AI’s Devin, which bills itself as a fully autonomous AI developer, and CodiumAI’s Codiumate, which generates code and has an “adversarial” component that critiques and improves the generated code.
Yet while coding as we know it is indeed facing disruption, the creative, problem-solving essence of computer programming is likely to remain a largely human endeavor for the foreseeable future. Rather than replacing developers entirely, AI-powered tools augment their capabilities, allowing them to write more code faster.
Code generation models may indeed take over the jobs of low-skilled coders, but experts are likely to become even more important, providing architectural vision and direction. Meanwhile, achieving that level of expertise could take longer as AI raises the bar.
AI-powered code generation tools like GitHub Copilot, CodiumAI Codiumate, and Amazon CodeWhisperer have already revolutionized the way developers write code. These tools speed up programming and get better and better at generating correct code that can be compiled and executed. The internet is full of stories of non-coders creating simple apps using AI-generated code. A recent GitHub survey of 500 US-based developers found that 92% of them are already using AI coding tools at work and outside.
Meanwhile, things are moving fast. Cognition’s agent, Devin, appears to be able to independently write and debug from developer-provided chat instructions. The product has not been released to the public, so it will take time to evaluate its capabilities. And Google DeepMind unveiled AlphaCode 2, a research project based on Google’s Gemini Pro model, which it says outperforms 85% of competitors in coding competitions.
But fluency in programming languages isn’t the only skill software developers need. The discipline of coding requires a strong foundation in logic, problem solving, and analytical thinking. Learning to code is an integral part of acquiring these other skills, just as arithmetic and algebra are building blocks for advanced math.
Microsoft founder Bill Gates claims that “learning to program expands your mind and helps you think better.”
While AI may eventually take over writing all the code, we’ll still need humans who understand that code to review and maintain it. Artificial intelligence can increase the amount of written code, but not necessarily the quality – someone must be able to assess the quality, or we will be overwhelmed by so-called spaghetti code, unstructured and hard-to-read code that has no defined flow or structure.
And as AI becomes more powerful and autonomous, there’s also a security reason why we need people who can code. “If you’re not the one driving the vehicle, the artificial intelligence is the one learning, and you’re just sitting in the passenger seat,” said Harvard University professor Jal Mehta recently. Garry Kasparov, chess champion and author of Deep Thinking: Where Machine Intelligence Ends and Human Creativity Begins, observes that “if a machine programs itself, who knows what it might do.”
So human oversight, by people who can code, will still be needed for quality assurance, testing, and cybersecurity even if AI is writing the code.
What AI-generated code will do—and is already doing—is increase the number of competent programmers and increase the amount of software written.
The future of programming will likely involve collaboration between human programmers and AI-powered tools. Developers will need to adapt their skills to effectively use these tools while maintaining a deep understanding of programming concepts and best practices.
So if someone wants to become a programmer ten or twenty years from now, they will still need to understand the semantics, concepts, and logical sequences of building a computer program, even if they don’t write the actual code. Most importantly, they will need to understand how to properly encourage AI coding systems to do what they want. Human language is notoriously imprecise, and programming languages are the opposite.
“Problem solving is a key skill,” recently noted coder John Carmack, founder of social media platform X, Keen Technologies. “The discipline and precision that traditional programming requires will remain valuable.”
For now, AI-assisted coding will free developers from mundane, repetitive tasks, allowing them to focus on creative, higher-level problem solving. Aspiring coders of the future may need to shift their focus from mastering specific programming languages to understanding basic programming concepts and learning to work effectively with artificial intelligence systems.
“The fundamental skill that you’re going to continue to need to be successful in building software is understanding what’s going on to understand when there are problems and security issues and when things don’t work,” said Randall Degges, an engineer at Snyk, a security platform for developers . “You’re still going to need a lot of technical knowledge to build things and connect them all in the right ways.”
But the path to fully automated code generation still has significant hurdles to overcome, chief among them the ambiguity of written language and the vagueness of software requirements. Researchers are exploring ways to improve these systems through human-machine collaboration and iterative feedback.
The demand for innovative software solutions will only grow. Although the tasks of low-level programmers will be increasingly automated, there will still be a demand for programmers who understand coding to run AI systems and make sure they do what we want them to do. Those who can adapt and take advantage of these powerful new tools will be well-positioned to thrive in the AI-powered future of programming.