Hacker News new | ask | show | jobs
by janalsncm 5 days ago
Either you need to understand how your codebase works or you don’t.

Claude can write the code for you but it can’t understand it for you. That part has to happen at human speeds.

There are cases where you don’t have to understand everything, but I think that’s a more nuanced question.

All of the above is true even if Claude writes perfect code.

3 comments

> Claude can write the code for you but it can’t understand it for you

Part of the problem is that Claude can go spelunking in a spaghetti codebase far faster than us humans. It doesn't necessarily help you understand the project, but if you farm that understanding out to Claude, you can keep working long after the codebase has become unusable for humans...

Ive often wondered what people do when the mess is so bad that Claude hits a wall and nothing works.
Apparently, from what I usually see, they start a completely new project every couple of days. Some revibe their older projects from scratch, with "better" prompts (surely that was the problem).
can't do that with a project in production users are depending on
My experience conflicts with this assertion. I've used Claude to achieve an understanding of two large codebases (that I mostly wrote, and certainly came up with most of the concepts therein) to the point that it's far superior to my understanding. I now get it to explain things to me that I have long forgotten.
> Either you need to understand how your codebase works or you don’t.

It's an interesting point. We can also think about it perhaps as a non binary thing - you need X amount of understanding in a specific codebase to be effective. Even before LLMs in large codebases no one understood it all; but we at least mostly understood our own PRs and our own areas of expertise in the codebase.

I have a very good mental model in my head of each and every codebase I have ever worked on. Nothing to do with my PRs or even my team’s direct responsibilities. I could always direct a thought provoking idea to challenge the existing status quo and get a reasonable nuanced answer from code owners on slack or during a water-cooler talk. I build that mental model also by reading the code. This is my job, so I know when to tear down what or how to respond to a random product idea immediately on a meeting to asses complexity.
Before LLMs you either built good abstractions to make it possible to not understand large chunks of the code base or you flailed.

A lot of the time people flailed.

The one thing Ive never seen an LLM do well is shape clean, coherent abstractions. To be fair it's a rare human skill as well but in LLMs if they don't have a direct analog in their training data they flail.

Maybe I'm doing something wrong, but the code I get from LLMs would not be considered acceptable to merge before we collectively stopped having standards. People are committing 900 line functions with sprinkled return statements and it's getting into production. If there are productivity gains to be had I haven't seen them yet