Discussion about this post

User's avatar
Minh's avatar

Speaking as a software engineer (albeit with only 3 years of experience, so I'm no CS professor):

Trust me, I absolutely hated it when the college professors forced us to study how to code in an assembly language that was already obsolete. And I used to think that studying how to implement a database is such a waste of time, given that modern databases already have such nice APIs and all you have to do to use them is just call those APIs.

But the more I've worked in this trade, the more I realize: Yes, you can create software without knowing CS. No, the software you create would not be as good as it could be, had you designed and created it with a fuller understanding of how the computer actually works (which is what you learn from CS). Correspondingly, you won't be able to command as high a salary as you could have, either. And yes, you'll be among one of the first ones to be replaced by AI (or more precisely, those who better understands how the computer actually works and knows how to use that understanding to command the AI accordingly).

This leads to a benefit of knowing how the computer actually works when working with AI coding agents: You know when the AI is bullshitting you (or when it makes a very subtle mistake). Some have likened the skills for working with AI coding agents as similar to the skills for managing human coders, and I agree: Managers of human coders who know how the computer actually works (or even just know how to code) get more respect from the coders and can better detect when the coders are bullshitting them too. Hence, they usually are more effective at their jobs than those who don't.

I reckon we can apply the car analogy here too: Do F1 cars make "normal" cars obsolete for professional racers? Maybe. Should those who wanna be professional racers learn how to drive using an F1 car instead of a "normal" car? Maybe not.

Expand full comment
RoyalScam's avatar

I think Professor Jain is right to be frustrated here, and your analogies miss something essential about the purpose of foundational education.

The calculator comparison makes his point well. Nobody disputes that professionals can and should use calculators, but children who skip arithmetic entirely never develop number sense. They become dependent, unable to catch errors, or to understand what the calculator is even doing. That is not horse and buggy thinking, it is scaffolding: you learn the basics so that you can later use tools wisely.

The same holds for computer science. A student who cannot reason about data structures, query optimization, or even basic logic gates is like an engineer who cannot read a blueprint. Sure, they might cobble something together in a high-level environment, but the moment they need to debug performance, integrate across systems, or evaluate the trustworthiness of AI outputs, they are lost. They do not know what they do not know.

Expand full comment
89 more comments...

No posts