I'm going back to coding by hand
ZH version is available. Content is displayed in original English for accuracy.
In work we use LLMs exclusively. Nobody writes code anymore. It's all hands off and we have a high level understanding of how things work but no more than that.
When it comes to my side project, I was adding features at breakneck speed with Claude but I realized I have no clue how the new code works or what it changes or breaks. I spent many years of my life working on this project and I don't want to turn it into another vibe coded black box, especially without an org of other engineers to help.
So last night, I abandoned my Claude branch with all the fancy new things and started hand coding again.
It was very very satisfying. Sure, there was monotony. I changed some variable names and I had to chase down all the places they were referenced, comment out tons of stuff to get things working and then slowly bring it back in, but it felt like coming home to an untidy house after living in hotels for half a year, and starting to clean up. Yeah there's work to do, but this place is mine. My own. I know where things live.
It's given me love and energy for the project again (at least for now, I hope it continues!) and I'm delighted to say I took a good look at code I myself had written pre Claude and I still found many ways to write it better, refactor, make it more readable and efficient. I haven't forgotten.
If anyone is feeling the despair of not coding anymore, stairs you're losing your edge, I would suggest you ditch Claude for a few days at least and see how you feel. Your mileage may vary, but it's given me back something I thought was gone forever

Discussion (27 Comments)Read Original on HackerNews
That is how I think it should be done.
I've had tremendous success with this approach as well.
It’s like using a linter: you do it because it’s the right thing to do and doing it without the tool confers no benefit and is prone to error.
I started building a Claude which retains some brain power. After each pass it ablates a function or a portion of code and forces you to write it out by hand. My hope is that I can get something that deals with boilerplate and makes me focus on the interesting stuff. We'll see.
You can still very much get ahead by working smarter not harder, even when working with your hands
You don't have to just give it a task, let it do whatever it wants, then accept the result. You can tell it how to do things. You can read the changes. You can ask it to do things differently.
You choose to relinquish all control and then complain that you don't like not being in control. It's all about the level of involvement you choose for yourself. It's not all or nothing, you don't have to go full vibe coder it's a spectrum and you choose where you want to be on that spectrum.
And then you look up one day and you don't recognise the codebase
For me it works great. My judgement is that I get things done significantly faster, and generally with comparable or better quality than I would doing it manually. It's important to lay a good foundation, if you are careful with the broad strokes it helps the LLM lay the rest down more consistently. It's also a lot easier to refactor things when the need becomes apparent.
"I can quit any time I want to."
But the right move is to find a way to increase the rate at which you generate ideas and offload the coding almost entirely to AI. Because if you’re not doing that, someone else is. They’ll eventually build something better than your app.
And when people stop choosing your product, if you can’t come up with the next idea and this is your only source of income... well, good luck.
For me, it definitely is. Hell, my idea generation outpaces my ability to delegate it to agents. I can't do all the things I want to do because I don't have enough time in the day to vocalise them all, let alone hand code.
But in my case, I choose to handcode sometimes because I value the certainty of the results more than the speed of development.
It's the choice between a well-engineered application that does a handful of things reliably through a well-tested UI, or a rough-around-the-edges app that does 50 different things passably well, most of the time, with an inconsistent UI and lots of small bugs
People here might question the "lots of small bugs" but I have developed some apps solely with LLMs and despite using test-suites and spec-driven development I still face constant regression and UI bugs creeping in with every revision.
A good example - in React Native, in Android, Claude cannot keep the controls above where the onscreen nav appears, no matter how many times I ask it to. It'll solve it until three iterations later when the issue will return on another screen.