6 ms·
Interestingly I’ve learned more about languages and systems and tools I use in the last few years working with agentic coding than I did in 35 years of artisana
by fnordpiglet 6mo ago
Interestingly I’ve learned more about languages and systems and tools I use in the last few years working with agentic coding than I did in 35 years of artisanal programming. I am still vastly superior at making decisions about systems and techniques and approaches than the agentic tools, but they are like a really really well read intern who knows a great deal of detail about errata but have very little experience. They enthusiastically make mistakes but take feedback - at least up front - even if they often forget because they don’t totally understand and haven’t internalized it.
The claim you should know everything about everything you work on is an intensely naive one. If you’ve worked on a team of more than one there’s a lot of stuff you don’t totally grok. If you work in an old code base there’s almost every bit of it that’s unfamiliar. If you work in a massive monorepo built over decades, you’re lucky if you even understand the parts everyone considers you an expert in it.
I often get the impression folks making these claims are either very junior themselves or work basically alone or on some project for 20 years. No one who works in a team or larger org can claim they know everything in their code base. No one doing agentic programming can either. But I can at least ask the agent a question and it will be able to answer it. And after reading other people’s code for most of my adult life, I absolutely can read the LLMs. The fact a machine wrote crappy code vs a human bothers me not in the least, and at least the machine will take my feedback and act on it.
- jmuguy 6mo agoThis post does not make the claim that "you should know everything about everything you work on" - its making the claim that writing code and being able to read code effectively are intrinsically linked.
- ray_v 6mo agoI wonder if it's not so much the coding that people don't want to write, but it's more about the weight of all the orchestration, data engineering and research that has to be done (or, understood in the first place) to get anything off the ground these days. It feels off the charts complicated, and of course is now shifting rapidly.
- larsfaye 6mo agoAuthor here. Thank you. I absolutely was not stating that, and I don't think its possible or necessary to "know everything", but there's certainly a movement in the industry (and not a small one) that is advocating to abandon even looking at code. It started with Karpathy's "vibe coding" tweet and has extended to now where entire teams are performing "LGTM" level code reviews, while simultaneously reporting that they are finding it difficult to remember how to read, nevertheless write, code properly. "Thinking in code" is a form of thinking that is distinctly different than staying at the higher engineering levels of planning and architecture, and yet they are completely intertwined and interdependent. I plan better when I am engaging with code, and I code better when I know how to plan properly.
- jmuguy 6mo agoI've been thinking about it as a sort of debt. My team sees AI as nothing but a positive. Work gets done faster, what's not to like. I think the piper will need to be paid at some point when we look back and realize how a) completely dependent we've become b) unable to reason about our own code base. I really hope I'm wrong but I can see it already happening.
- grogenaut 6mo agoAgreed. I don't know anything about turning sand into transistors or assembly but do well. So I don't know my full stack either. What is important is not being afraid to learn the rest of your system and keeping an index. Most importantly it's about being able to spin up on anything quickly. That's how you have wide reach. Digging in when you have to, gliding high when you have to. Appropriate level for the problem at hand. When I was in college eons ago they taught CS folks all of engineering. "When do I need to know chem-e or analog control systems?" We asked. "You won't. You just need to be able to spin up on it enough to code it and then forget it. We're providing you a strong base." That holds even within just large code bases.
- Terr_ 6mo ago[dead]
- beepbooptheory 6mo ago"Hey! Just popping in to say that agentic coding is actually pretty great and is making me better in all the ways; but also want to say at same time that it's actually not all that different from anything else, so we can chalk up any critique to it to individual naivety and bias."
- crjohns648 6mo agoI have also seen the learning acceleration, there's a significantly increased set of techniques and technologies I have learned how to apply. From a person perspective though, I'm apprehensive about the effect AI will have on the human "very well read intern." People who know a lot very deeply about specific areas are fascinating to talk to, but now almost everyone is able to at least emulate deep knowledge about an area through the use of AI. The productivity is there, but the human connection is missing.
- fnordpiglet 6mo agoI agree. I think this is personally very useful, but I think a great deal of what made computing an amazing industry to work in is going to or has already died. I suspect the general field as it existed will entirely cease to exist before the current set of well read interns have had much of a career chance. It is sad, but we have finally succeeded in programming ourselves out of jobs.
- rimliu 6mo agodid you try to apply anything you have "learned" without the help of LLMs?
- girvo 6mo ago> The claim you should know everything about everything you work on is an intensely naive one Nothing in the article made that claim.
- i_love_retros 6mo agoI think it's important to at least have a mental model of code you directly commit to the codebase, and that doesn't happen if it was written by an agent.
- byzantinegene 6mo agoyou have 35 years of experience and have already built up the learning capability and general framework to acquire new knowledge. you know how to use agentic coding as a tool to supplement your work. the juniors who start today don't have that, they overrely on agentic coding and do not know what they don't know
- ookblah 6mo agosomeone probably made this same argument against certain frameworks over the years and juniors still figured it out. we need to stop trying to babysit learning for hypothetical situations. the bar to "start" is lower and the bar to actually competency is higher now, juniors who want to actually learn instead of just pressing enter over and over again will do so regardless of whatever you do to "help" them.
- SpicyLemonZest 6mo agoIt's not really a hypothetical. I work with one junior who's submitted an incorrect bugfix 3 times and counting; he seems genuinely incapable of processing the idea that there's a correctness issue he has to resolve, rather than a prompt engineering issue that will allow Claude to figure it out if only he asks in the right way.
- throwaway041207 6mo agoIMO, by the time todays juniors would have 5-10 years of expected experience, the entire field will be something different altogether. Language choice distribution will collapse (if not change altogether), whole new modalities of monitoring and progressive delivery guardrails will come into play, essentially creating a 24/7 incremental rollout of pure agentic code, correctness will be determined by a mix of language features and self-monitoring by models in production and automated testing against production snapshots in pre-production, and deep debugging will the be province of a select group of engineers and there will be a pathway to those roles for juniors, but those roles will be coveted and difficult to break into (and probably will require education and maybe even informal accreditation).
- catlifeonmars 6mo ago> The claim you should know everything about everything you work on is an intensely naive one. I disagree with this take. Personally, I pride myself in learning the code bases I work on in detail, sometimes better than the leads for those code bases. I’m not saying that everyone should do so, but it’s achievable and not naive at all.
- fnordpiglet 6mo agoKnowing it better than the leads isn’t that hard - they spend most their life in meetings and teaching people how to think. Knowing the code base in detail is important - but I’m certain unless you wrote it all, there are parts you don’t know. I’m sure what you do is build enough scaffold understanding and depth in the core parts you can visit any part and understand it. But I’m also certain there are parts that based on pure recall you care unaware of the details. Someone else wrote it, you haven’t had to read it yet, and thus it’s a black box. Either that or your code base is quite small relative to the team size, or the team is very unproductive. The supposition one person is fully aware of any growing code base built by a team or organization - or a monorepo being built by 10,000 developers over 15 years - is prideful. A lot of it works because it works and you accept that unless you need to inspect a part because it’s not working. Whether a machine wrote it or an intern 10 years ago did, it’s a black box until it has to not be.
- wiieee 6mo agoThe question is one of is it easier to untangle llm code or human?
- bhagyeshsp 6mo agoThe answer is similar to: whose code is easier to untangle: human-A or human-B? "Depends".
- svnt 6mo agoEven if you did write it all, unless you are regularly in all of it (which sounds like a horrible job to me), or it is rather small, in my experience you will be at some point trying to git blame some section of code you don’t understand only to find the finger pointed at your ghost.
- nextaccountic 6mo ago> even if they often forget > But I can at least ask the agent a question and it will be able to answer it A problem here is that, in some sense, the agent that wrote the code is not the same agent that is answering questions about it. if the original agent didn't leave their reasoning, you are probably out of luck. There are tools like git-ai [0] that capture LLM sessions and associate each file edit to a specific agent action, and let agents query a given piece of code to read the conversation around it (what the user prompted, what was the reasoning of the LLM that created the code, etc). They could change the balance, but are not widely used [0] https://usegitai.com/ https://usegitai.com/
- adrian_b 6mo ago> The claim you should know everything about everything you work on is an intensely naive one. It is true that you normally do not need to know everything, or even most of it. Despite this, it is necessary to be able to discover and understand quickly anything about the project or system on which you work. I have seen plenty of software teams that became stuck at some point because they could not solve some trivial problem that required a zoom into the project where some extra skills were required for understanding what they saw, like understanding a lower-level language, or assembly language or some less usual algorithms or networking protocols and so on. Or otherwise they were stuck not because they lacked the skills to interpret what they saw, but because they used something that was a black box, like a proprietary library or a proprietary operating system, and it was impossible to determine what it really did instead of what it was expected to do, without being able to dive into its internals. So I believe that the environment should always enable you to know everything about everything you work on, even if this should be only very seldom necessary.
- Rekindle8090 6mo ago[dead]
- RHSeeger 6mo ago> The claim you should know everything about everything you work on is an intensely naive one This is a slight tangent from that, but I place a lot of value on the ability to offload some/most of the mental model to AI. I need to know less about everything (involved in this one task) when working on it, because a lot of the peripheral information can be handled by the AI. I find that _incredibly_ useful.
- valunlabs 6mo agoi agree with this. While refactoring the outdated code at my company, i realized that “you can’t know everything.” after the refactor, i can ask the LLM questions and get answers, but unfortunately, when integrating a new feature, it keeps treating it as a “new layer.”
- iusadfkjasdf 6mo ago[dead]
- larsfaye 6mo ago> The claim you should know everything about everything you work on is an intensely naive one. Author here. Where did you find I was stating that? As other users said, that's not at all found in my writing. The rest of your post goes on a tangent about this notion, but seems like its more of a personal pontification, rather than a critique of anything I wrote.