3 ms·
While that may be true, you can be confident that it works in a way you personally understand. Because you understood it in the past. Also, if you finish your
by gridspy 1mo ago
While that may be true, you can be confident that it works in a way you personally understand. Because you understood it in the past.
Also, if you finish your work on a module with care - you return to a module you can trust with clear boundraries and known flaws. This is not true of AI output.
- youre-wrong3 1mo agoNo. You can absolutely build things with AI small or large and understand it. If you don’t understand it. Then you’re not caring about the output to begin with and not guiding it to build the solution you want.
- gridspy 1mo agoThe word "understand" seems to mean something different to you. If I understand something, I could write it in assembly if I wanted to. It might take a long time, but I know every level of the stack under my code down to bare metal. Maybe an AI level of "understand" i.e the same understanding a Senior has of a Junior's code based on daily check-ins is enough for 95% of "boring" programming. But for some tasks you need to either fully understand the code or just tolerate bugs. At the level of complexity I work at, it's (often) faster to just code it myself than to expect AI to converge on a result I like and then hand check it.
- rsalus 1mo agowhat a patronizing response. I'd be embarrassed.
- gridspy 1mo agoI guess you didn't understand my comment ;) Look, goals can differ. If you don't need to understand and predict every part of the code the AI is generating and you just need it to meet a "sketch" of what you want - by all means use AI. I do use AI in that situation for related or unimportant code. But if you need full understanding, in my experience the only way to get that is to program it yourself. Unless what the AI is generating is so trivial you already understand it and it's grunt work, you will learn the detail by doing it yourself. Controlling the approach here is important. However often the best way to handle grunt work is to write better abstractions, something AI sucks at. It's the programming equivalent of many PG essays. https://www.paulgraham.com/useful.html https://www.paulgraham.com/useful.html for instance. There was one on how PG refined their thoughts via writing. It's in there somewhere.
- youre-wrong3 1mo ago> However often the best way to handle grunt work is to write better abstractions, something AI sucks at. If you checked out of ai in 2023 then this is true. It’s simply not true anymore. If you struggle then it’s a skill issue not an AI issue
- jbeninger 1mo agoAs someone who spends way too much time searching for the best abstractions, absolutely this is still true. I often have a long back and forth with codex to explore the problem space and settle on the best abstractions. Occasionally it will make a suggestion that helps me, but for the most part it's reviewing while I'm in the driver's seat. Contrast this to simply giving it a function name and a vague description of what the function will do. I'll generally accept its output with a few refinements. But for larger project structure and metaphors, it falls flat, and often lands on a solution that's going to be a maintenance nightmare or result in endless repetition across not-quite-the-same cases. I've never seen it happen upon an appropriate abstraction that can cleanly cut through the nonsense.
- gridspy 1mo agoThat's my experience too. Its unfair to expect current AI to do this - since good abstractions are extremely task specific. Hard to train on that. What's also annoying is that AI's approach is not consistent within a project, a different sort of complexity.
- rsalus 1mo ago> I guess you didn't understand my comment ;) yeah, touch grass buddy.
- youre-wrong3 1mo ago> At the level of complexity I work at, it's (often) faster to just code it myself than to expect AI to converge on a result I like and then hand check it. Would love an example because no one has ever been able to give a coding example that AI isn’t helpful for. I had one person on linked in try claim their undocumented audio hardware won’t work with ai but when we got ai to probe it and build docs it ended up solving a bunch of complex bugs they couldn’t fix.
- gridspy 1mo agoImpressive, also horrifying. I love what I do and if AI can do it better than that sucks. Anyway the use case for me is to realize a new visual style through graphics programming. It's a lot less measurable for an interative AI agent than "Meet this hardware specification from a device with a discoverable API" I have no doubt AI could create a LOT of variations on "a new visual style" but it's less controllable than just doing it yourself. Btw, did you "understand" the sound driver after the AI coded it? Could you modify it without further help?
- deleted 1mo ago[deleted]
- ThunderSizzle 1mo agoRight now, at least, I haven't found an AI capable of replacing a software engineer. Ive seen AI that can easily replace basic programmers, however. I also think AI can replace non-coding artitects, and probably most middle management type jobs (my company has 6 levels of management between the CEO and "individual contributors" in my area (8 counting inclusivity)). That's a lot of management levels, and every level has to be paid more than the level they manage as a fraud disincentive. So that's a lot of money...
- names_are_hard 1mo agoCan you explain the fraud disincentive bit? I feel like there's something obvious I'm missing, but why would a manager earning less than their reports make fraud more likely?
- csallen 1mo agoI'm skeptical of this. I have yet to build a codebase using AI that I wasn't able to subsequently understand after taking the time to do so, esp. when aided by AI that will tirelessly answer my questions. I mean, LLMs don't always code the exact way I do, but it's not writing totally alien code that's incomprehensible to the human mind here.
- rsalus 1mo agoexactly, and realistically if you test the crap out of a given module, you'll have a pretty damn accurate idea of how it behaves.
- bogdanoff_2 1mo agoI'm curious, what programming language and model/harness do you use, and are there some specific practices that you use?
- csallen 1mo agoI use Claude Code, primarily writing web applications and JavaScript. I'll have it use various frameworks. It's built apps for me using React, Ember, Astro, etc. I don't restrict myself to frameworks I'm particularly familiar with, since it's easy for the AI to teach me the basics whenever I would like to dig in. As for specific practices, these are my main ones: - I have a gotchas-log.md file that acts as a log of gotchas likely to trip up future runs. I have the AI write to this occasionally when things go haywire in the same way multiple times. And I have it read it as part of its iterative reviews, described below. - I have a good-code-guidelines.md file where I write my preferences for code. I have the AI read this as part of iterative reviews, described below. - I have a plan-and-execute.md file that prompts the LLM to make a plan, and then to review and iterate on that plan repeatedly (while reading gotchas-log.md and good-code-guidelines.md) until its reviews stop finding issues. I tag this file to implement almost every non-trivial change. - I have other various helper prompts. For example, I can simply tag @make-a-git-commit.md and it tells the LLM to make a commit and write the message the way I like it. I have @simplify.md, which I can tag to have the LLM explain whatever it just did to me using simple language that makes it easier for me to understand, and using concentric circles of explanation that go from broad to specific so I'll repeatedly encounter important topics; this makes it much more bearable for me to read its responses. - Occasionally, whenever a particular system of my codebase starts to get hairy, I spawn a Claude Code session to read through and trace all the relevant code paths, then write a short guide to that system in a markdown file that lives in the codebase. IT's useful for me to read and also useful to tag for future prompts to get the LLM up to speed quickly. Only challenge here is that these guides go stale and require updating, so it's important to prompt the AI to write them at the appropriate level (not to specific) that prevents them from being overly brittle and getting out of date with every little change. They're mostly high-level guides.