6 ms·
I feel in a really weird position where I both really dislike what AI is doing to the experience and practice of writing code, to the point where I want a job d
by charlotte-fyi 5mo ago
I feel in a really weird position where I both really dislike what AI is doing to the experience and practice of writing code, to the point where I want a job doing literally anything else besides using the computer, but also think that these tools are extremely powerful and only getting better.
I think Mitchell's point is well taken -- it's possible for these tools to introduce rotten foundations that will only be found out later when the whole structure collapsed. I don't want to be in the position of being on the hook when that happens and not having the deep understanding of the code base that I used to.
But humans have introduced subtle yet catastrophic bugs into code forever too... A lot of this feels like an open empirical question. Will we see many systems collapse in horrifying ways that they uniquely didn't before? Maybe some, but will we also not learn that we need to shift more to specification and validation? Idk, it just seems to me like this style of building systems is inevitable even as there may be some bumps along the way.
I feel like many in the anti camp have their own kind of reactionary psychosis. I want nothing to do with AI but I also can't deny my experience of using these tools. I wish there were more venues for this kind of realist but negative discussion of AI. Mitchell is a great dev for this reason.
- doginasuit 5mo agoI've never had more fun coding, but the key is actually still writing the code yourself. The LLM has terrible judgment but an encyclopedic knowledge and the ability to pick out important details in a sea of information. Their worse use is producing code, but somehow that gets all the energy. Being an LLM babysitter is energy draining and you feel less and less in control. No job is worth being miserable doing something that you used to enjoy.
- denkmoon 5mo agoWhat do you use an LLM for then? Or you’re saying just don’t use it at all?
- doginasuit 5mo agoI've used both ChatGPT and Claude, they seem interchangeable for my needs. I only use the web prompt interface except for the rare occasion that it is helpful for it to have the context of my entire project. I think less is more when it comes to LLM interaction, but sometimes they are exactly the right tool for the job.
- somewhatgoated 5mo agoWhat do you use it for then? “right tool for the job” - what job exactly, why so mysterious?
- doginasuit 5mo agoI didn't realize you wanted that information too, I could probably bore someone to death talking about it. Planning: I often ask it to help me plan an approach if we are dealing with something I don't have a lot of experience with, most recently working with the DOM. If there is a library or an API that is new to me, I ask for an overview and run my plan by it for comments. Feed it the documentation and it is like talking to author. Coding: I have a pretty reliable sense for when a section of code that I want to write is obvious enough for the LLM to one-shot based on the other code in the file, and on those occasions I call in completion. I do this with code that I can verify at a glance. Analysis: If I have any uncertainty at all about the code I've written, I run it by the LLM to find issues. Out of all the other uses, I think this is the most productive and time saving. If I run into a bug and I'm stumped, I show it the section of code. I'm amazed at how good it is at finding mistakes. I'm working solo as a full stack developer coming from a different background, so I sometimes find myself out of my depth. Having access to the breadth of knowledge that an LLM brings and its attention to detail has been game changing. I've tried a couple agents and configuring them to work competently seems like a rabbit hole, and I like the tight control over the context that chatting with the web prompt interface brings. It seems like half the value is putting into words my intent, it forces me to have a cohesive understanding myself. It is like rubber duck debugging where the duck can actually talk back and sometimes provide the critical part that I'm missing. I have it speak like a pirate which is just for fun but sometimes the sailing metaphors that it uses are really intuitive.
- IX-103 5mo agoIn my experience, its the opposite. The AI is very good at writing code, but it is unreliable at any kind of design. I use it as a fancy form of autocomplete. I give the broad strokes: "add a method here and change all but this one caller to use the new method", "Apply this design pattern here for this change but don't do this other thing". It completes the task reasonably well and sometimes even remembers to run the code formatter and check that tests pass. If I ask it to me produce a design, I'll almost always end up with something unworkable or inefficient. Though if you push it hard enough then it can sometimes give you a good description of what existing code does and how it does it (which can be easily verified).
- sph 5mo agoCan you pro-AI people at least agree on what is it even useful for? Every thread is endless back-and-forth between the "AI works great and vibe coding is the future" and "no, AI works great as long as you don't vibe code" camps.
- kasey_junk 5mo agoAI is in like year 4 of being useful for the task. And it’s changing rapidly. We don’t know what it’s good for yet! But pick a technology used to write code and you’ll see many of the same things. Broad unit test adoption happened more then 20 years ago and people still can’t decide what it’s good for or even if it is useful. That’s because it depends on the circumstances of the problem and the person solving it. So no, we can’t decide exactly what it’s good for and if we could there would be exceptions. But that’s not an indictment of any tool.
- daemin 5mo agoSo the solution is to wait and not use AI until people have spent all their money and actually figured out what the real use cases are. Good to know.
- kasey_junk 5mo ago
- mkhpalm 5mo agoMy biggest complaint about AI is getting it to lock onto current or specific information has been darn near impossible. Its definitely there in its training data but for the life of me I cannot get it to stop bleeding long outdated or external information into its responses.
- radlad 5mo agoI find in these cases the best option is to provide references, docs, etc. If you'll need them regularly, save them to Markdown files.
- globnomulous 5mo ago> The LLM has terrible judgment but an encyclopedic knowledge Bingo. Claude can bang out nearly correct code when I give it an idea, but it doesn't have the idea and repeatedly misjudges both how much work remains and what kind. On the other hand, I don't know all the ins or outs of macro expansion in yaml at compile time or when and where macros run, enabling us to conaume their results elsewhere in the yaml. Frankly, if I had time, I'd happily spend time on that and learn more about it. I don't, though. Claude knows and does the guessing and checking. So I provide the concept and it translates into a horrible soup of yaml. Clearly I'm able to press forward with ignorance, which is dangerous. There's a real risk that I'll wind up with the kinds of unhealthy work that worries the author of the tweet.
- renegade-otter 5mo agoAfter turning off my brain a few times and ending up in a place I don't want real fast, I am learning to ride this dragon. And, you are right - use it as a fast typer, not a fast thinkier. And for those who claim that AI is a good code writer - wrong. It can OUTPUT a wall of code, but it's overeager to flood you will legacy code on arrival to "solve a problem". It's harder to write LESS code, which is still the goal (even more true today).
- doginasuit 5mo ago> And, you are right - use it as a fast typer, not a fast thinkier. That's a great way to put it.
- zzrrt 5mo ago> But humans have introduced subtle yet catastrophic bugs into code forever So now the AIs will do more of that, at superhuman speed. > will we also not learn that we need to shift more to specification and validation We'll just quickly learn what we've been trying to do for decades, while also treading water in floods of more code than has ever been written before? And some of the motivations to write correct code are being deflated - "just vibecode it again and see if the bugs disappear, it only took a week and $200."
- DoctorOetker 5mo agoI think the commenter was referring to formal verification with "specification and validation": have the LLM emit formal proofs about invariants etc. Currently the bugs are found by people using LLM's but aren't the developers. As more projects start getting access to compute, they can run those LLM searches for bugs themselves, and can simply prevent shipping the bugs. I'm surprised no one has tried making any statistical analysis of bug densities, and "bug authors" in an attempt to identify untrustworthy developers, regardless of intent. Given a dataset of authors and prior bugs, it may help find more bugs by tracking their pull requests with higher scrutiny... Some people may end up with an eternal stain if they've been taking money to submit vulnerable code to code bases...
- johnnyanmac 5mo ago> I feel like many in the anti camp have their own kind of reactionary psychosis. You're using psychosis wrong. My literal reality is my entire industry trying to use Ai as an excuse to payoff hundreds of thousands, to millions of American engineers in lieu of outsourcing work overseas. It's having hostile promots to use AI that never truly go away (if you're even given an option to turn off the prompt). It's seeing an emerging generation completely stunted because AI's best use is to cheat the education system and ruin the youth's critical thinking. It's looking in apallment at proposals for data centers that take more energy than the state actually has. And while you can try to call these exaggerations, you're falling into the very psychosis of this article if you want to deny this reality as a whole. "but the tech is making us so productive" is not a valid justification to literally collapse human society as we know it.
- jiscariot 5mo agoNot FANG, but I work at a company that operates some infrastructure at scale. What I've seen is after we've rotated through a number of different tools, in different pilot groups, eventually converging on tool X (a custom, internal wrapper around opencode). Now every "working session" like meeting, at the team or dept level, has been around how to use tool X. Tricks using tool X. Problems using tool X. I can't help feeling if we had spent the same amount of time building up core knowledge/contempencies around say, design patterns, networking, specs, we'd be in a better place for building. Instead we are going to have a few thousand people who know a tool really well.