pull down to refresh

I’ve noticed a diminishing ability to code without AI since I started using Claude. I’m still adamant about retaining skills even with the use of AI. I’m wondering if anyone is trying to practise some “AI hygiene” by only offloading specific tasks to AI? If so what kind of tasks do you stick to yourself and what do you consider safe to offload to an AI coding assistant?

374 sats \ 1 reply \ @k00b 3h

I don't feel the need to code by hand, character for character, anymore, and enjoy being free to think at higher abstraction levels, and try random ideas out at low cost.

I'm also not yolo dev-ing. If the code is doing something important (low bar: I'll use it or give/ship it for other people to use), I'll painstakingly review the code that's generated (95% of my dev time is code review and QA now). Judging from what I see online and the chuckles (hut, skill issue) I get from programmer frens, that might make my situation odd and explain why I don't feel like I'm losing anything.


I’ve noticed a diminishing ability to code without AI since I started using Claude.

If you're anything like me, it's not diminished ability as much as it is diminished motivation. IME our feelings are smart. In particular, our feelings are smart about us. If you believe you'll never code by hand again, and don't find purpose or pleasure in by-hand coding, it's going to be hard to lift a finger to do it, let alone get your brain to cooperate when thinking through a one-shottable code generation problem.

I suspect this is why folks have zero reservations about sharing essay slop; they never understood why many people learned and continue to write by-hand: to think. If you enjoy thinking, you'll enjoy writing by hand and do it even without an external goal. Most of us write code for the output and you don't need to write code by-hand to get output anyone. However, if you write code for some reason other than output, for some reason that depends on you writing it by hand (e.g. learning a new programming language), I suspect you'll remain motivated and able to do that.


If you are a roofer, and the nail gun were invented, how often would you feel the need to use a hammer for practice's sake?

reply

I personally enjoy coding by hand still, but I do it much less often than I used to. Claude has gotten good enough at generating code I want it to generate that it is undoubtedly faster than writing it by hand, with generally speaking next to zero loss of context (for me) and understanding. If I don’t understand what it produces, I stop and review until I do. But there comes a point where you’ve seen most patterns in code and very few surprise you, at least with a language you’re familiar with. I would never use it so heavily for a new language - I need to know the language before I can become comfortable allowing Claude to write it for me. So then programming becomes more system design and less about actual writing code. Which is generally not bad - it allows you to experiment quicker and land on better solutions faster.

I would not recommend this approach to juniors though. You need to get in there and fuck some shit up and learn from mistakes. Then later on, you can defer the “grunt work” to an LLM.

Not long ago, I said I didn’t want to use an LLM for coding because I didn’t want to do more code review than I already did. But that has changed, because the quality of the code I’m reviewing from Claude is better. I’m sure that’s partly from Claude itself. But I think also having proper guidance in instruction MD files, and clear examples to follow in the codebase helps. LLMs are pattern matchers, after all.

reply
388 sats \ 0 replies \ @optimism 3h

I do everything that is cryptography / heavy on binary encoding and most c++ manually. Doesn't mean you can't get assistance on building test suites or docs and such, but even there, the resulting tests and docs are often sloppy af. For private stuff I vibe everything, and everything is either a poc or a working alpha.

I also don't merge anything from anyone that I don't trust they know what they're doing into libs/runtimes that are widely used and supposed to be reliable. I do accept trivial things that smell like Claude's unwashed feet nowadays. Docs are fine, comment fixes are fine. But most often I get 1700- 4800+ PRs with not even the markdown slop cleaned up, and those I deprioritize to a point that I will never get to them.

There are repos where everything is vibed now tho. I do my best to not give in. I may be slower than the yolo, but I'm still 2-3x faster than I used to be, and can operate with 10x more precision. This morning, I only had to binary -> hex -> manually TLV-tag a thing 3 times before I, with assistance, caught all the bugs i wrote - took 2 hours or so. Last year, would have taken up to full day and way more than 3 rounds.

I also test my solutions actively: how robust is this? Where are issues in what i just WIP'd? What's off-standard? Is it complete? I have "agents" (=prompts) for all this.

Between that, attention to detail, willingness to throw things away and never think about sunk cost, and everything I miss in tooling built on the spot... life is good. Also when writing code. It's just a matter of finding a balance between not being lazy and not burning out.

reply