Nvidia CEO Advises Against Learning to Code: Is Coding Still a Worthwhile Skill to Learn?
Here are my thoughts on whether learning to code is still relevant.
Many technologies that emerged 50 years ago have followed one of two trajectories: they've either evolved to keep pace with modern times or have vanished into obscurity. A case in point is the first programmable mechanical computer, introduced in 1938. Given its limited operational capabilities due to memory constraints and its hefty weight, it's hard to imagine housing such a device in our homes or workplaces today.
Indeed, there were numerous tech visionaries who speculated about the future of computing and its interaction with humanity. This practice isn't novel—it has a long history, continues in the present, and is expected to persist into the future. The prospect of shaping the future always captivates us, sparking endless debates among proponents and detractors alike. Ultimately, these speculations boil down to what Arthur C. Clarke described as a “discouraging and hazardous ocupation.”
Here are the words of NVIDIA's CEO, Jensen Huang, at the event titled “Who Will Shape the Future of AI?”
“It's going to sound completely opposite of what people feel. You probably recall over the course of the last 10-15 years, almost everybody who sits on a stage like this would tell you it is vital that your children learn computer science … everybody should learn how to program. In fact, it's almost exactly the opposite. It is our job to create computing technology such that nobody has to program and that the programming language is human. Everybody in the world is now a programmer. This is the miracle of artificial intelligence”
I don't entirely agree with Jensen (at least not initially), as studying programming in itself is a way to uncover basic solutions until we can develop lines of code focused on resolving real business scenarios. What I mean is that programming, like studying any other subject or discipline, nurtures our judgment on decision-making. It's challenging to try to build an entire mobile application just by instructing ChatGPT to do it. It might manage to do so, but understanding the entire code without knowing the logical sequence it should follow would be difficult. Moreover, the process could be biased and encounter errors along the way.
Like other sciences, technologies, or disciplines, programming will inevitably be impacted by AI, but there will still be a need for developers to continue building more and superior models or software, such as those NVIDIA sells.
For 90% of people, prompts will become increasingly user-friendly, thanks to teams of artificial intelligence engineers and prompt engineers who work behind all those lines of code to ultimately optimize the chat interface we interact with, whether we're using ChatGPT, Gemini, Claude 3, Copilot, etc. The point is, while it may seem that the main protagonist (AI) apparently does everything, the reality is that behind that screen we look at, there are human developers continuing to invest time and knowledge through code.
Reading Between the Lines
Jensen's remarks point to a fundamental notion: the role of AI in programming is poised for transformation from various perspectives, ranging from the learning process to its implementation (potentially needing only a prompt). Sam Altman, in numerous interviews, has emphasized that programming will retain its significance in the future, but in a form distinct from what we're accustomed to today. This change is largely due to AI serving as a catalyst for progress in this arena.
On the other hand, there are voices like Emad Mostaque, CEO and Co-Founder of Stability AI, who argue that within about 5 years, programmers as we know them may no longer exist.
This may come across as a daunting and uncertain situation for those aspiring to delve into programming. Yet, the reality is that a large portion of future code development is likely to be powered by AI rather than by human-written code. This leads me to the following question:
Isn’t one of the objectives of programming languages to evolve in a way that makes them more accessible and comprehensible, thereby enabling a broader range of people to craft solutions through coding?
Reflecting on history, especially the 1950s, we see that programming languages were intricate and demanded extensive specialization for mastery. Yet, over time, this barrier to entry has progressively become more accessible to future programmers, making the act of coding more inclusive and enticing.
Nowadays we're obtaining code through an AI assistant. So, it's likely that many non-programmers or beginners are now creating their first lines of code in a way that's certainly different from how it was done in the past. Yet, in terms of functionality, they have the potential to reach the same solutions or goals.
Programming as we know it is unlikely to disappear in the next 3 to 5 years, but some of us might wonder what will happen in 20 years. Will we still be coding? In response, I'd question whether we'll even be using a computer by then.
The Next Layer of Abstraction
In a standard computer, we typically encounter both a software layer and a hardware layer. The communication between these layers is facilitated by what's known as machine language, which is often represented in a binary system—a format that can be complex for humans to grasp. Upon a detailed examination of the architecture, it becomes apparent that the elements of abstraction and complexity are, to varying degrees, associated with each abstraction layer. Over time, these layers have accumulated to give us the modern computer, which has significantly improved the ease of communication between humans and machines, enabling us to execute a wide array of tasks using simpler instructions.
The concept of the AI assistant would be an additional layer, one that would be added on top of the diagram. This represents an opportunity for humans to communicate more easily with computers. It's not surprising that currently multimodal is playing a significant role in capturing as much information as we want to provide (audio, images, text) which AIs take as prompts to start generating responses that come close to our expectations.
In this sense, right now, we are experiencing a wave of code AI assistants, such as GitHub Copilot, CodiumAI, AWS Code Whisperer, Tabnine that are definitely setting the trend in the transformation of how people write code.
However, even though it might seem like AI will overshadow programmers, the reality is that many of the current models are still prone to errors. Also, there’s a lack of control over the chatbot responses. One example is the latest viral incident with Google Gemini, which refused to generate images of white people and overemphasized inclusion. This backfired, as it began to stereotype people, leading to a lot of controversy related to racial topics.
If you regularly use AI to generate code, you've likely noticed that producing high-quality code on the first try is naturally a challenge due to its complexity or the volume of code required for the project.
Now, the truth is that AI is a fantastic coding assistant that will help us write and debug code more quickly, but its capabilities are still limited if we expect it to start building software from scratch by itself. Inevitably, it will do so in the future, perhaps sooner than we expect, but does that mean we should stop learning to program?
Certainly not.
AI art hasn't stopped enthusiasts in this field from painting, drawing, or creating. Similarly, AI will not make programmers obsolete but represent the next layer of abstraction in coding, making the interaction between humans and machines even smoother.
Das ist nichts ein schnitzelbank. Statistics does not solve all problems.