7 ms·
747s and coding agents
- flyinglizard 7mo agoThis is why I still haven't embraced agents in my work but stick with halfway manual workflow using aider. It's the only way I can keep ownership of the codebase. Maybe this will change because code ownership will no longer have any value, but I don't feel like we're there yet.
- skepticATX 7mo agoReviewing code is absolutely different from writing it, and in my opinion much harder if the goal is more than surface level understanding. This is what I am still grappling with. Agents make more productive, but also probably worse at my job.
- MeanEYE 7mo agoThe biggest problem in my head with AI generated code is that its mistakes are subtle but can still be critical. There will be a point where people don't understand generated code and just leave it unmodified allowing other code to pile up and depend on it. At that point you no longer have a bug, but a new feature. Also, AI doesn't grasp things on a big scale, just shits out output with highest score. This doesn't mean output is a great fit for your project or for upcoming plans.
- omoikane 7mo ago> reviewing code is very different from producing it, and surely teaches you less Maybe he meant "reviewing code from coding agents"? Reviewing code from other humans is often a great way to learn.
- tass 7mo agoI interpreted this as not as good a way to learn. I learn the most from struggling through a problem, and reading someone’s code doesn’t teach me all the wrong ways they attempted before it looked like the way it now does.
- vorticalbox 7mo agoThis is why tutorials in programming don't really teach much because you get the finished version. Not all the wrong steps that were taken, why they failed, what else was tried. These steps are what help you solve other issues in the future.
- omoikane 7mo agoI was thinking in situations where a coworker might send me something to review, and I might have thought "hmm, I wouldn't have done it like that, but this is a great way to do it too". Also, a good source of teachable code is to participate in a programming contest, and then review the repositories of the teams who scored better than me after the contest. I agree that if I don't already know how to implement something, seeing a solution before trying it myself is not great, that's like skipping the homework exercises and copying straight from the answer books.
- tass 7mo agoYeah I learn from reading other work too, but it doesn’t stick as well as when I work through it. The problem now is the pressure to use llms means creating more code but understanding so much less.
- snackerblues 7mo agoExactly. And vice versa, one of the biggest benefits of code review is calling out pitfalls you, the reviewer have ran into that the reviewee isn't aware of. LLM addicts won't have any experience with what works/doesn't work, so their reviewing will be pretty useless
- thesz 7mo ago> I do read the code, but reviewing code is very different from producing it, and surely teaches you less. If you don’t believe this, I doubt you work in software. I work in software and for single line I write I read hundredths of them. If I am fixing bugs in my own (mostly self-education) programs, I read my program several times, over and over again. If writing programs taught me something, it is how to read programs most effectively. And also how to write programs to be most effectively read.
- dongguanxianhao 7mo ago>hundredths of them Man, it would rule so much if programmers were literate and knew how to actually communicate what they intend to say.
- Brian_K_White 7mo agoMan it would rule so much if programmers could manage not to be assholes by default so much of the time. It's ironic that the more ignorant one is the one calling another ignorant. Alright I've had my fun with the name-calling. I will now explain the stunningly obvious. Not a thing anyone should have to for someone so sharp as yourself but there we are... For someone to produce that text after growing up in an English speaking environment, they would indeed be comically inept communicators. Which is why the more reasonable assumption is that English is not in fact their native language. Not merely the more generous assumption. Being generous by default would be a better character trait than not, but still arguably a luxury. But also simply the more reasonable assumption by plain numbers and reasoning. So, not only were you a douche, you had to go out of your way to select a less likely possibility to make the douche you wanted to be fit the situation. Literate programmers indeed.
- epgui 7mo agoNot everyone has English as a first language.
- MDCore 7mo agoIt's obvious from the context here what the intended meaning was. Everyone makes typos sometimes.
- nimbus-hn-test 7mo ago[dead]
- borzi 7mo ago> For example, to add pagination to this website, I would read the Jekyll docs, find the right plugin to install, read the sample config, and make the change. Possibly this wouldn’t work, in which case I would Google it, read more, try more stuff, retest, etc. In this process it was hard not to learn things. How is this any different than building Ikea furniture? If I build my "Minska" cupboard using the step-by-step manual, did I learn something profound?
- skydhash 7mo agoIf you've never put a cupboard together, you would have learned what the different parts, what size of screws to use (in the rough sense),... You may have forget it right after, but when someone ask you to help them, you will be a bit more proficient than someone with no experience. But the nice thing about a cupboard and its components is that they are real objects, so the remembrance is done with the whole body (like the feeling of a screw not correctly inserted). Software development is 90% a mental activity.
- MrJohz 7mo agoFirstly, if you're doing those steps, you're building your own tutorial, not just following the exact steps in a manual provided with the software. The sample config won't be exact or perfect for your setup, so you'll need to say least figure out how to adjust it to your needs. That said, I think you're still leaning things building IKEA-style software. The first time I learned how to program, I learned from a book and I tried things out by copying listings from the book by hand into files on my computer and executing them. Essentially, it was programming-by-IKEA-manual, but it was valuable because I was trying things out with my own hands, even if I didn't fully understand every time why I needed the code I'd been told to write. From there I graduated to fiddling with those examples and making changes to make it do what I wanted, not what the book said. And over time I figured out how to write entirely new things, and so on and so forth. But the first step required following very simple instructions. The analogy isn't perfect, because my goal with IKEA furniture is usually not to learn how to build furniture, but to get a finished product. So I learn a little bit about using tools, but not a huge amount. Whereas when typing in that code as a kid, my goal was learning, and the finished product was basically useless outside of that. The author's example there feels like a bit of both worlds. The task requires more independent thought than an IKEA manual, so they need to learn and understand more. But the end goal is still practical.
- cortesoft 7mo agoI am not sure how many other people on here are old enough to remember, but I first learned to program before I had the internet. I had to read books, and then if I was trying to figure out how to do something, I would have to figure out which book to look it up in, and then figure out where in the book to find it and how to apply it to my situation. It made me learn a ton, because I would have to read a lot of books to even know where to look; I had to do my own ‘scraping and indexing’. I remember as the internet took off and you could just search for things, I thought it made programming too easy. You never had to actually learn how it worked, you can just search for the specific answer and someone else would do the hard work of figuring out how to use the tools available for your particular type of problem. Over the years, my feelings shifted, and I loved how the internet allowed me to accomplish so much more than I could have trying to figure it all out from books. I wonder if AI will feel similar.
- LatencyKills 7mo agoI've always felt a little odd saying, "Back in my day we had to understand the cpu, registers, etc." It's a true statement, but doesn't help in any way. Is that stuff still worth knowing, IMHO? Yes. Can you create incredibly useful code without that knowledge today? Absolutely.
- Skunkleton 7mo agoI don't think it's odd. Sacrificing deep understanding, and delegating that responsibility to others is risky. In more concrete terms, if your livelihood depends on application development, you have concrete dependencies on platforms, frameworks, compilers, operating systems, and other abstractions that without which you might not be able to perform your job. Fewer abstractions, deeper understanding, fewer dependencies on others. These concepts show up over and over and not just in software. It's about safety.
- manofmanysmiles 7mo agoThere are some people who still know these things, and are able to use LLMs far more effectively than those who do not. I've seen the following prediction by a few people and am starting to agree with it: software development (and possibly most knowledge work) will become like farming. A relatively smaller number of people will do with large machines what previously took armies of people. There will always be some people exploring the cutting edge of thought, and feeding their insights into the machine, just how I image there are biochemists and soil biology experts who produce knowledge to inform decisions made by the people running large farming operations. I imagine this will lead to profound shifts in the world that we can hardly predict. If we don't blow ourselves up, perhaps space exploration and colonization will become possible.
- aplomb1026 7mo ago[flagged]
- twodave 7mo agoI find the opposite is true for me. In my wheelhouse I can use an agent to do a thing, and I can be very critical of the implementation. Outside of my wheelhouse I actually learn quite a lot by watching the agent solve a problem. Since I do have a strong background I am still able to judge the overall approach and identify obvious stupid things the agent tries to do. I would say the code quality is probably a bit worse in those situations than I would have ended up with, but takes about 1/3 of the time. The most difficult part is opening a PR and worrying there might be a couple stupid blips left that I missed, didn’t affect the implementation, but my coworkers are going to look at and ask me wtf I was thinking
- Robdel12 7mo agoWhether we want to accept it or not, we’re now QA. That’s not derogatory, at all. But I don’t think the answer here is to double down on reading the code and understanding that deeply. We’re rapidly moving past this. I think the answer is to review the code for very obvious bad choices. But then it’s about proper validation. Check out the app, run the flows, use it for real. Does it _actually_ function? Or that’s what is working for me. I cannot review all the LOC and I’m starting to feel like I don’t want.
- LetsGetTechnicl 7mo ago[...] since I work at an AI lab and stand to gain a great deal if AI follows through on its economic promise. And there it is.
- cedws 7mo agoWe should be very concerned for the next generation. When you have the constant temptation of digging yourself out of a problem just by asking an LLM how will you ever learn anything? My biggest lessons were from hours of pain and toil, scouring the internet. When I finally found the solution, the dopamine hit ensured that lesson was burned into my neurons. There is no such dopamine hit with LLMs. You vaguely try to understand what it’s been doing for the last five minutes and try to steer it back on course. There is no strife. I’m only 24 and I think my career would be on a very different path if the LLMs of today were available just five years ago.
- eastbound 7mo agoAt the beginning of the internet, I used to save all webpages where I’d find info, just in case I would be stuck without a connection or if the website removed it. I had parts of the MDN. The internet never fell. I bet it’ll be the same with AI. You will never not have AI. The big difference is the internet was a liberation movement: Everything became open. And free. AI is the opposite: By design, everything is closed.
- MeanEYE 7mo agoNot only that. AI will have increasingly diminishing returns as it relies on good quality human written code. As that starts being less and less true, quality of generated code will also suffer since at some point AI will train from AI generated content.
- andoando 7mo agoOk imagine you went back 30 years and you had a swarm of experts around you who you could ask anything you wanted and they would even do the work for you if you wanted. Does this mean youd be incapable of learning anything? Or could you possibly learn way more because you had the innate desire to learn and understand along with the best tool possible to do it? Its the same thing here. How you use LLMs is all up to your mindset. Throughly review and ask questions on what it did, or why, ask if we could have done it some other way instead. Hell ask it just the questions you need and do it yourself, or dont use it at all. I was working on C++ for example with a heavy use of mutexs, shared and weak pointers which I havent done before. LLM fixed a race condition, and I got to ask it precisely what the issue was, to draw a diagram showing what was happening in this exact scenario before and after. I feel like Im learning more because I am doing way more high level things now, and spending way less time on the stuff I already know or dont care to know (non fundementals, like syntax and even libraries/frameworks). For example, I don't really give a fuck about being an expert in Spring Security. I care about how authentication works as a principal, what methods would be best for what, etc but do I want to spend 3 hours trying to debug the nuances of configuring the Spring security library for a small project I dont care about?
- archmaster 7mo agoI've seen a lot of posts like this one, but this is the first to encapsulate how I feel so well. Honestly, I don't really know what to do. I spent my whole life (so far; I'm still very young) falling in love with programming, and now I just don't find this agent thing fun at all. But I just don't know how to find my niche if using LLMs truly does end up being the only way for me to build valuable things with my only skills. It's pretty depressing and very scary. But I appreciate this article for at least conveying that so effectively...
- jeffrwells 7mo agoCould I ask, what did you love about programming that you now don't find this agent thing fun at all. I'm genuinely curious, I feel very differently and excited about this agent thing. Asking because unlike a lot of other commentary, this struck me as being more about the act itself than being depressed/anxious for financial reasons, etc
- archmaster 7mo agoI love the act of writing code, it clicks well with me. I love the feeling of my brain solving problems, figuring out how something works, and then finally understanding it. I love debugging. I love having built something that people love, solely wrought by my own fingers. I got into programming because the act of spinning a web of code just feels like what I'm designed to do. Vibe coding definitely has some of that, but it feels so detached from any understanding of the computer itself. I feel like I'm bossing someone around — and I would never want to be a non-coding manager. I'm curious, how/why do you feel so different? (Obviously the financial side is stressful too, but I feel like I'm in a good spot to figure that out either way.)
- shich 7mo agoThe pilot analogy hits different when you consider that pilots still train on simulators for exactly this reason — they're legally required to maintain proficiency even when autopilot handles 99% of flights. There's no equivalent mandate for software engineers. Nothing stops you from spending years as a pure "prompt pilot" and losing the ability to read a stack trace or reason about algorithmic complexity. The atrophy is silent and gradual. The author's suggestion to write code by hand as an educational exercise is right but will be ignored by most, because the feedback loop for skill atrophy is so delayed. You won't notice you've lost the skill until you're debugging something the agent made a mess of, under pressure, with no fallback.
- cjrp 7mo agoThe term "Children of the Magenta Line" has long been used in aviation to describe the over-reliance on automation. So even though they train to avoid losing manual skills, it's definitely still a concern.
- getnormality 7mo agoI think this author could consider thinking of the AI as more than just a task rabbit that allows us to not code, not think, not understand. If the LLM is indeed such a master at complex coding tasks that we don't understand, why not ask it some questions about how the code works? You can even ask directly about the concern. "I am worried that by letting you do everything I am not learning how the system works. Could you tell me more about what you did and how I might think through it if I needed to do it myself?"
- waygtdai 7mo ago[flagged]
- LtWorf 7mo ago[flagged]
- dh2022 7mo agoRe: "reviewing code is very different from producing it, and surely teaches you less" - I feel this so much when reviewing the code one of my coworkers writes. My coworker makes plenty of mistakes and I learned the hard way that reviewing his PRs in a web page is not enough. These days when I have to review his code I download his branch locally and load the entire solution in the IDE. I then track his changes and usually find a few things wrong. BTW - my coworker is not AI. It is a flesh-and-bones SWE.
- scuff3d 7mo agoWhat the fuck are people working on where it's possible for the LLM to just add entire features. Refactors and class/method level code can be impressive, anything highly structured with good guard rails. As soon as things start to reach beyond that it falls to absolute garbage.
- bitwize 7mo agoThere are companies building entire applications, indeed replicating the functionality of existing SaaS applications to test their original applications,with no humans in the development loop. We're looking at the twilight of programming as a human skill. The LLMs are just that good.
- rwyinuse 7mo agoThe end result is, and will always be garbage if there is no "human in the loop" to test whether the result meets the requirements, and telling LLM what to do if it doesn't. Like somebody else said, there is still a need for QA (and usually for requirements gathering too), that's a part of the development cycle. Developing software that is meant to be used by humans with zero humans involved isn't realistic.
- scuff3d 7mo agoI mean... It takes 10 minutes of testing to know this is bullshit. At least in the near term. I've sat with an agent and played the part of a vibe coder. Not looking at the code, frankly providing more guidance and feedback then a vibe coder could, and even in a thousand line app it falls to absolute shit fast. It does get something that "technically" works, but it will collapse in on itself in no time. The act of designing software might be changing, less writing the actual code, but someone who knows what the fuck they're doing still has to guide the ship.
- bitwize 7mo ago"Vibe coding" with a single agent is really only a thing for small-scale projects. Really you want to be orchestrating many agents: some generating code, some reviewing, and some testing, feeding back into the generators. Cloudflare developed a clone of Next.js this way and are putting it into production. No humans in the main development loop.
- bigbuppo 7mo agoWhat in the linkedin sudden b2b marketing insight was that.
- belZaah 7mo ago> I believe in coding primarily as a means to an end Yes. Absolutely. To what end, though? Is your end deterministic like a cryptographic protocol or loose like pagination of a web page? Is your end feature delivery or 30 years of rock solid service delivery at minimal cost? AI is a dangerous tool. It exposes fundamental questions by automating away the mundane. We have had the luxury of not thinking deep and hard about intent and value creation/capture and system architecture. AI is putting us face to face with our ineptitude: maybe it wasn’t the tech stack or the programmers or the whatnots? Maybe the idea was shait, maybe I had no understanding of the value added of my product? Maybe …? You get the best gear - musical instrument, bicycle, camera, etc - the pros have and still the results are not great. Gotta ask why. We are experiencing this at literally industrial scale.
- entrustai 7mo ago[dead]
- sarkarsh 7mo ago[dead]
- northfield27 7mo agoI have also felt something similar. A few days back, I tried to implement a PDF reader by pure vibe coding. I used all my free Antigravity, Cursor, and Co-pilot tokens to create a half-baked, but working Next.js PDF-reader that (to be honest) I wouldn't have glued together without 2 weeks of work. As an MLE, I have done negligible web development using JavaScript and have mostly worked with Python and C. But the struggle actually started after the free tokens were exhausted. I was feeling anxious to even look into those Next.js files. I am not able to describe, but it was probably some kind of fear - fear of either not being able to debug/implement a new feature, or not willing to put in precious hours (precious because of FOMO that I could do something cool with AI-paired vibe coding) to understand and build the feature myself. I abandoned that project since that day. Haven't opened it yet - partly because I am waiting for the renewal of free tokens.
- lowsong 7mo ago> Coding agents are here to stay, and you’re a fool if you don’t use them. Why would they be here to stay? The crux of the author's argument is that using them is detrimental in the long term. The correct response to that is not a lukewarm response of "maybe do some coding now and again", it is "don't use tools that make you worse".
- cadamsdotcom 7mo agoHave your agent do red/green TDD - its like double entry accounting, the tests and code mirror each other and the tests are an executable repository of docs of how the thing should behave, that helps immensely when you need to be an archaeologist and understand some deep corner of the system. Code reviews are a cinch because if you get confused by the real code you can switch to reviewing the tests and vice versa.