For those who have been in the industry longer, why do you think it’s still important to stay strong in CS fundamentals?
For those who have been in the industry longer, why do you think it’s still important to stay strong in CS fundamentals?
Knowledge is still power, even in the AI age. Arguably even moreso now than ever. Even if the AI can build impressive stuff it's your job to understand the stuff it builds. Also, it's your job to know what to ask the AI to build
So yes. Don't stop learning for yourself just because AI is around
Be selective with what you learn, be deliberate in your choices, but you can never really go wrong with building strong fundamentals
Edit: What I can tell you almost for certain is that offloading all of your knowledge and thinking to LLMs is not going to work out very well in your favor
In the AI era, is it still worth spending significant time reading deep CS books like Designing Data-Intensive Applications by Martin Kleppmann?
Part of my hesitation is that AI tools can generate implementations for many distributed system patterns now. At the same time, I suspect that without understanding the underlying ideas (replication, consistency, partitioning, event logs, etc.), it’s hard to judge whether the AI-generated solution is actually correct.
For those who’ve read DDIA or similar books, did the knowledge meaningfully change how you design systems in practice?
Longer answer: About 10 years I moved into leadership roles (VP Eng) and while I continued to write code for POCs, it hasn't been my primary role for quite some time. DDIA has been a book I pull out often when guiding leaders and members of my teams when it comes to building distributed systems. I'm writing more code these days because I can, and I still reference DDIA and have the second edition preordered.
It's not a failing of yours or anyone else's, but the idea that people will remain intellectually disciplined when they can use a shortcut machine is just not going to work.
If you haven't learned the fundamentals, you are not in a position to judge whether AI is correct or not. And this isn't limited to AI; you also can't judge whether a human colleague writing code manually has written the right code.
Does it work? How does it work? If you can't answer those questions, you should think carefully about what value you bring.
We're in this greenfield period where everybody's pet ideas can be brought to life. In other words...
Now anyone can make something nobody gives a shit about.
lol nice one
How can you be a good judge? You must have very strong foundations and fundamental understanding.
I'd also second bluefirebrand's point that "it's your job to know what to ask the AI to build" - https://news.ycombinator.com/item?id=47394349
Those are great answers to the question you did ask, but I'd also like to answer a question you didn't ask: whether AI can improve your learning, rather than diminish it, and the answer is absolutely a resounding yes. You have a world-class expert that you can ask to explain a difficult concept to you in a million different ways with a million different diagrams; you have a tool that will draft a syllabus for you; you have a partner you can have a conversation with to probe the depth of your understanding on a topic you think you know, help you find the edges of your own knowledge, can tell you what lies beyond those edges, can tell you what books to go check out at your library to study those advanced topics, and so much more.
AI might feel like it makes learning irrelevant, but I'd argue it actually makes learning more engaging, more effective, more impactful, more detailed, more personalized, and more in-depth than anyone's ever had access to in human history.
I was in middle and high school when calculators became the standard, but they were still expensive enough that we kept the Ti-80 calculators on a backroom shelf and checked them out when there was an overnight problem set or homework assignment. In a round about way, I think I ended up understanding more about the underlying maths because of this.
So, no, many did not actually learn arithmetic in school. This isn't necessarily because of the calculator, but if you don't get a student to understand what arithmetic even is then handing them a calculator may as well be like handing them a magic wand that "does numbers".
Because otherwise you are training to become a button pressing cocaine monkey?
If the best argument for going into CS is that LLMs sometimes make stuff up and will need human error checkers, I can see why people are less excited about that future. The cocaine monkey option might sound more fun.
https://bun.com/blog/behind-the-scenes-of-bun-install
Then look at how Anthropic basically Acquihired the entire Bun team. If the CS fundamentals didn't matter, why would they?
Even Anthropic needs people that understand CS fundamentals, even though pretty much their entire team now writes code using AI.
And since then, Jared Sumner has been relentlessly shaving performance bottlenecks from claude code. I have watched startup times come way down in the past couple months.
Sumner might be using CC all day too. But an understanding of those fundamentals (more a way of thinking rather than specific algorithms) still matter.
That'll always be useful.
What's less useful, and what's changed in my own behavior, is that I no longer read tool specific books. I used to devour books from Manning, O'reilly etc. I haven't read a single one since LLMs took off.
Either the AI doesn’t understand them, and you need to walk it down the correct path, or it does understand them, and you have to be able to have an intelligent conversation with it.
I'd say my ability to write code has stayed about the same, but my understanding of what's going on in the background has increased significantly.
Before someone comes in here and says "you are only getting what the LLM is interpreting from prior written documentation", sure, yeah, I understand that. But these things are writing code in production environments now are they not?
AI tools still don't care about the former most of the time (e.g. maybe we shouldn't do a loop inside of loop every time we need to find a matching record, maybe we should just build a hashmap once).
And I don't care if they care about the latter.
When AI handles the implementation, you skip from "I have a problem" to "it's solved" without the middle step where understanding forms. You can force yourself to study the output afterward, but reviewing someone else's solution is fundamentally different from the experience of building it yourself.
The honest answer is that some fundamentals will go the way of mental arithmetic -- still valuable to understand conceptually, rarely practiced manually. Others become more important because they're what you need to evaluate AI output. The skill is knowing which category each fundamental falls into, and nobody has a reliable answer to that yet because we're only a couple years into this shift.
We have seen so many massive changes to software engineering in the last 30 years that it is hard to argue the clear utility of any specific topic or tool. When I first started it really mattered that you understood bubble sort vs quicksort because you probably had to code it. Now very few people think twice about how sort happens in python or how hashing mechanism are implemented. It does, on occasion, help to know that but not like it used to.
So that brings it back to what I think is a fundamental question: If CS topics are less interesting now, are you shifting that curiosity to something else? If so then I wouldn't worry too much. If not then that is something to be concerned about. So you don't care about red black trees anymore but you are getting into auto-generating Zork like games with an LLM in your free time. You are probably on a good path if that is the case. If not, then find a new curiosity outlet and don't beat yourself up about not studying the limits of a single stack automata.
jbrozena22•1h ago
I don't think anyone at any level has any idea what the future is holding with this rapid pace of change. What some old timers think is going to be useful in a post-Claude world isn't really meaningful.
I think if I had limited time to prioritize learnings at the moment it would be prioritizing AI tooling comfort (e.g. getting comfortable doing 5 things shallowly in parallel) versus going super deep in understanding.