I am happier writing code by hand

Published: (February 8, 2026 at 09:12 AM EST)
3 min read

Source: Hacker News

Introduction

I felt the familiar wave of depression and lethargy creep in while my eyes darted between Claude‑code and my phone. “What’s the point of it all?” I wondered. LLMs can generate decent‑looking code, but what do I do with the extra time? Doom‑scroll? This was the third time I tried Claude‑code, and each time I ended up deleting it after a few weeks.

I rediscovered the joy of coding. Yes, coding isn’t the whole of software engineering, but for me it’s a fun and essential part of it.

Why Hand Coding Matters

To be effective at software engineering you must be familiar with the problem space, which requires thinking and wrestling with the problem. You can’t truly know the pain of using an API just by reading its documentation or implementation—you have to use it yourself.

The act of writing code, even though it’s slower, forces you to confront the problem space, discover that initial ideas don’t work, and think deeply. Vibe coding interferes with that. If you’re thinking without writing, you only think you’re thinking.

“If you are a knowledge worker, your core competency is your ability to think, and if a tool interferes with that, be afraid, be very afraid.” – Leslie Lamport

Ensuring Correctness

Verifying the correctness of code you didn’t write is much harder than verifying code you wrote yourself. Writing code helps internalize the context, making it easier for your brain to reason about it. Outsourcing this to an LLM skips the internalization step, leaving you uncertain about the generated code’s correctness.

The Downside of “Vibe” Coding

By design, vibe coding has an addictive nature: you write a prompt, the model spits out code that looks correct, and you get a dopamine hit. If the code isn’t correct, you assume a single prompt will fix it. This creates a passive mindset where your brain is turned off, making it harder to engage when real thinking is required.

At my lowest point I even asked the model to perform a simple find‑and‑replace in a file—something that should take seconds turned into minutes and a network call. Even if a 1,000‑line PR is generated in 30 minutes, I still need to understand and review it. Since I’m responsible for the code I ship, this makes me the bottleneck.

The common view is that vibe coding is a neutral tool, but tools shape workflow and thought processes. If a tool prevents deep thinking, it isn’t a good tool for a knowledge worker.

A Balanced Approach

I still use LLMs, but in a more controlled manner. I copy‑paste only the files that provide necessary context, then ask the model to make specific changes or write tests. This friction brings several benefits:

  • Limited scope: Changes are confined to a few files, keeping diffs manageable.
  • Active engagement: Manually providing context forces me to stay familiar with the codebase.
  • Deliberate generation: Code generation becomes a thoughtful action rather than a passive one.

This approach keeps my brain engaged, allowing me to enter the flow state.

Conclusion

Life is too short not to optimize for happiness. Generating entire features with an LLM might boost short‑term productivity, but if it induces existential dread and depression, it isn’t sustainable. Choose the workflow that preserves your well‑being, even if it means writing code by hand.

0 views
Back to Blog

Related posts

Read more »

Claude Code Is Being Dumbed Down

!Am I out of touch? No, it's the users who are wrong.https://symmetrybreak.ing/images/dont-worry-about-claude/am-i-out-of-touch.webp !Am I out of touch? No, it'...

NetNewsWire Turns 23

Release History NetNewsWire 1.0 for Mac shipped 23 years ago today! 🎸🎩🕶️ Current Work We just shipped 7.0 for Mac and iOS, and now we’re working on NetNewsW...