In the ever-evolving world of technology, it's easy to feel overwhelmed by new developments like AI and generative coding tools. With all this rapid progress, you might wonder—what knowledge and skills are still essential, and which are becoming obsolete?
In a recent Stanford Online Webinar, two leading voices in AI and computer science, Andrew Ng and Mehran Sahami, discussed exactly this. Their conversation explored the foundational knowledge that remains crucial, even as AI transforms coding, and they also pointed out areas where technology is helping us move past traditional practices. Here’s what I learned from their insights.
Despite the rise of generative AI, there are fundamental concepts in computer science that will remain timeless. According to Ng and Sahami, if you’re learning to code or teaching computer science, these should always be in focus:
Programming Fundamentals
Problem Decomposition: Breaking a large problem into smaller, manageable pieces is foundational for efficient coding. Whether you're using Python, Java, or another language, the concepts of modular design and problem-solving stay the same.
Algorithms and Data Structures: Understanding how to build and work with algorithms and data structures remains vital. Even as AI systems like GitHub Copilot can generate code, having a firm grasp of algorithms ensures you can verify and optimize that code.
Code Debugging and Verification: AI tools can assist in writing code, but knowing how to debug and ensure the correctness of generated code is a skill that won’t fade. Developers still need to evaluate whether the code solves the right problem, which requires a deeper understanding of programming logic.
Architectural Patterns (e.g., Factory Method): Concepts like the factory method in object-oriented programming are enduring. Ng shared how even AI tools can suggest design patterns, but the underlying knowledge of these patterns helps developers write better, more efficient code.
Caching and Parallelization: Foundational techniques like caching and parallelization will always be relevant. These methods have significant impacts on performance optimization, especially in large-scale applications.
As AI tools evolve, certain aspects of coding are becoming less essential. Here’s what Ng and Sahami suggest might fade in importance:
Coding Syntax
With AI tools like GitHub Copilot and OpenAI’s Codex, the need to remember specific syntax is diminishing. While developers still need to understand programming concepts, AI can now generate syntax, allowing coders to focus more on problem-solving than memorizing commands.
Low-Level Programming
Machine language and assembly coding, which were once fundamental, are now handled by compilers and optimized by specialized teams. As coding moves to higher levels of abstraction, most developers no longer need these low-level skills.
Ng and Sahami highlighted several exciting trends in how AI is reshaping not just coding, but the entire technology stack:
AI as a Learning Companion
Generative AI tools are not only making experienced developers more productive—they’re also serving as learning tools. For example, a programmer working with a new language can ask AI to generate code snippets or comments, effectively learning through interaction with the tool. This creates a feedback loop where AI both accelerates productivity and enhances learning.
Higher Levels of Abstraction
Computer science is moving toward higher levels of abstraction, with developers focusing more on high-level design and less on lower-level optimizations. But understanding what’s happening at those lower levels can still provide valuable insights. For example, sorting large files or handling memory swaps still requires some knowledge of lower-level processes.
The Role of Domain Knowledge
While coding is important, domain expertise is becoming critical in applying AI effectively. Ng emphasized that some of the most exciting projects come from collaborations between AI experts and domain specialists—whether in healthcare, finance, or education. Having deep knowledge of a specific industry allows AI practitioners to identify compelling use cases and develop solutions that matter.
In particular, Ng pointed out how healthcare professionals and AI experts can work together to apply technology in transformative ways. In these collaborations, the domain expert’s insight is just as crucial as the coder’s ability to build systems.
Ng and Sahami agree that AI is accelerating the pace of software development, allowing developers—both experts and novices—to achieve in weeks what would have taken months or even years before. But this speed brings challenges, especially in industries like healthcare or manufacturing, where processes traditionally take longer.
As Ng put it, the real challenge for many industries is moving fast responsibly. It’s not just about coding faster; it’s about understanding the implications of your code and applying it ethically and safely.
While tools like generative AI are changing the game, learning to code is still essential. As Ng pointed out, “Everyone should learn to code.” Why? Because coding teaches you to think systematically, to break down problems, and to communicate instructions clearly to a machine. And this kind of computational thinking will always be valuable, no matter what new technologies emerge.
If you’re looking to stay ahead in the world of tech, mastering the foundational concepts—from algorithms to debugging—and keeping up with how AI can enhance your skills will ensure you're prepared for whatever comes next.
Stanford Online Webinar with Andrew Ng and Mehran Sahami: Stanford AI and Coding.