Discussion
pkulak: I find I'm going even deeper lately. I, obviously, have to completely and _totally_ understand every line written before I will commit it, so if AI spits something out that I haven't seen before, I will generally get nerd sniped pretty good.
anonym29: babas03 put it best IMO - https://news.ycombinator.com/item?id=47394432I'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=47394349Those 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.
j3k3: Ultimately humans are the judge of reality, not LLMs.How can you be a good judge? You must have very strong foundations and fundamental understanding.
royal__: These tools actually make me more interested in CS fundamentals. Having strong conceptual understanding is as relevant as ever for making good judgement calls and staying connected with your work.
kccqzy: Because AI still hallucinates. Today for fun I decided to ask Claude a pretty difficult algorithm question. Claude confidently told me a greedy solution is enough, before I told Claude a counterexample that made Claude use dynamic programming instead.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.
add-sub-mul-div: It reminds me of the situation with self-driving that expects you to keep your full attention on the road while not driving so that you can take over at any time. It's clearly unrealistic.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.
ankurdhama: Did you learn arithmetic in school even though calculator exist?
wayfwdmachine: "With powerful computers, I sometimes feel less motivated to study deep mathematical topics like differential equations and statistics. Computers can math quickly, which makes the effort of learning the fundamentals feel less urgent. For those who have been in the industry longer, why do you think it’s still important to stay strong in mathematical fundamentals?"Because otherwise you are training to become a button pressing cocaine monkey?
geokon: If you don't have an intellectual curiosity about what you're doing, maybe you should find something that actually interests you?To me this is absolutely unrelatable. Before you'd have to read a Wiki article or textbook. You'd get stumped and confused on some point and then you'd have to Google around and struggle. Often you end up either handwaving away the points you don't get, or in the extreme giving up entirely.Now you just spend 5 minutes discussing it with an AI and it'll break it all down using simple understandable language. You can drill down on anything that is still confusing. The pace of my learning and "skill acquisition" has sky rocketed in the past year. I feel kind of annoyed this didn't exist when I was in college. I would have learned so much more back then. It's really some scifi stuff.. It's the Primer from Diamond Age. I'd have never guessing in a million years we'd have a tool like this in my lifetime
atonse: Read this article from the Bun people about how they used CS fundamentals (and that way of thinking) to improve Bun install's performance.https://bun.com/blog/behind-the-scenes-of-bun-installThen 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.
hedora: Fundamentals are the only thing left to learn in our field.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.
nilirl: CS fundamentals is about framing an information problem to be solvable.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.
petersonh: if you really love CS - there's a future in it. If AI becomes the new substrate for civilization, we'll always need people who fundamentally understand how these systems works to some degree.
rossjudson: This is the right answer. AI writing code for you? Then spend that time understanding what it is writing and the fundamentals behind it.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.
j3k3: "Now anyone can make something nobody gives a shit about."lol nice one
Ycros: How can you possibly make any informed statement about the solutions AI generates for you if you don't understand them?
TehShrike: There are two types of CS fundamentals: the ones that help in making useful software, and the rest of them.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.
remarkEon: I was wondering about this. I do not write software to pay the mortgage, I just write the occasional python script, some SQL stuff to update various dashboards, R in my spare time when I'm getting ready for looking at baseball stats or something. AI has had pretty much the opposite effect for me. Watching it write something has made me ask questions, get answers, dig into more details about things I never had the time to google on my own or spend an hour or several looking through stackoverflow.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?
diven_rastdus: The motivation loop breaking is the real problem, not the fundamentals themselves becoming less useful. Fundamentals feel rewarding to learn when you immediately apply them — you learn how a hash map works, you write one, you feel the difference. AI short-circuits that feedback loop by giving you the answer before you've built the intuition. The fix isn't to avoid AI tools; it's to deliberately impose a delay — implement the thing yourself first, then compare with what the model produces. The gap between the two is where the learning still happens.
jmward01: There are two aspects to this. The desire to learn and the utility of learning. These are two very different things. Arguably the best programmers I have known have been explorers and hopped around a lot. Their primary skills have been flexibility and curiosity. The point here was their curiosity, not what they were curious about. Curiosity enabled them to attack new problems quickly and find solutions when others couldn't. Very often those solutions had nothing to do with skip lists or bubble sort. Studying algorithms is useful for general problem solving and hey, as a bonus, it helps sometimes when you are solving a real world problem, but staying curious is what really matters.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.
nvme0n1p1: ai slop account
skybrian: I think it's important to stay curious and keep learning, but there's a lot to be curious about and all sorts of different skills you could work on improving. Going deep on algorithms or distributed systems are two possible directions, but there are others.
jorl17: Exactly this. Couldn't have said it better.Do you feel yourself losing interest, curiosity, "spark"? If so, then maybe worrying is right.If you're just (hyper?)focused on something else, then, congrats! Our amazing new tools are letting us focus on even more things -- I, for one, am loving it.
kevv: That is correct. But for how long ? How long would it take for AI to learn all of this too ? AI sure does learn faster than humans and even though it will never degrade the relevance of fundamentals, don't you think that the bar for someone beginning to learn about the fundamentals, would just keep increase exponentially.
rishabhaiover: I'm curious, what was the algorithm problem?
wcfrobert: To borrow a concept from Simon Willison: you need to "hoard things you know how to do”. You need to know what is possible; you need to be able to articulate what you want. AI is a fast car, but it’s empty and still needs a driver. As long as humans are still in the loop, the quality of the driver matters.
takwatanabe: Knowing fundamentals gives you deeper intuition about the technology, at every layer. When compilers appeared, you no longer needed to understand assembly and registers. But knowing how assembly and registers actually work makes you better at C. When Python came along, low-level languages felt unnecessary. But understanding C's memory management is what lets you understand Python's limitations. Now LLMs write the implementation. LLMs abstract away the code. But knowing how algorithms work, even in a high-level language like Python, is exactly how you catch LLM mistakes and inefficiencies.Knowledge builds on knowledge. We learn basic math before advanced math for a reason. The pyramid keeps accumulating from what came before. Understanding the fundamentals still matters, I think.
esafak: So you know how a bad idea when you see one, and to be able to ask it to do it the good way?
Designing Data-Intensive Applications
Tim25659: One follow-up question I’ve been thinking about: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?
mbernstein: Short answer: yes.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.