Ask HN: Does it still make sense to write code by hand?
FR version is available. Content is displayed in original English for accuracy.
First of all, I'm not talking about environments where you need to "move fast" or where your required to use LLMs. I'm referring more to an environment where you do it on your own terms, rather than on the terms of the employer.
Secondly, I'm not talking about prompting "Build me the next twitter clone", but rather prompting very small tasks after you have made the initial design, something along the lines of "Create a database migration that adds column [x], not null", "add a field to the this form that will accept string value, validate it on the backend against this format, and save it to column [x]". So basically, writing code in plain English.
Why do I ask? I believe that writing something yourself helps you learn it better, but at the same time, if you did all the thinking and now just prompting for a fancy auto-complete, we could argue that the hardest part (the design) was already done, and you skip the writing for the sake of writing. On the other hand, I am afraid that if I will stop writing code in environments where I can still do it, I will lose the ability to think about code and understand code.
Whats your take on this?

Discussion (23 Comments)Read Original on HackerNews
Merely completing the "design" is by far not "doing all the thinking," and this is really the core of the problem. When people code with LLMs, the LLMs are making nontrivial decisions and thus are replacing part of the programmer's intelligence. That's why calling LLMs "fancy autocomplete" is so misleading, because autocompletion isn't supposed to make decisions, just to facilitate typing out the code you already have in your head.
So yeah, I agree with the last sentence about losing the ability to understand code, and that's a sufficient reason to avoid AI assistance whenever possible. Since I prioritize education and learning above almost everything else, it's not a close call. Where the line gets blurry for me is when people say "I would never have learned the tech stack needed to make this tool myself, but I vibe-coded it and now it's mine." It's really difficult for me to argue with that, to tell someone simply to live without something that's potentially improving their day-to-day life. To be clear, there are many good reasons not to do that thing, but it's also not my place to judge people for doing it, since I don't live my own life perfectly either.
You don't need to change the way you do things because of some perceived thing you're missing out on. That is what the AI companies want you to feel and think because it benefits them.
This applies to more than AI, but programming language choices and more. Heck, it even applies to social issues and politics :)
Make your own choices and walk your own path.
We don't insist that HVAC installers use hand-powered drills to "feel closer to the work," but we also don't insist that they use battery-powered drills and impact drivers on every single task.
We don't insist that a chef use a Vitamix blender to chop a single onion when a couple seconds with a sharp knife will do, but we certainly wouldn't only use a sharp knife to create a salsa.
We don't insist that a carpenter use only hand-saws to build a house, but we also don't insist that they use a chainsaw to make a chair.
We don't insist that an accountant write out taxes by hand, but we also don't insist that they use a calculator to determine how old you are from your birthdate.
You use the power tools when appropriate, and you use more delicate, surgical tools when appropriate. It's not any more difficult than that.
Hiring a team of subcontractors carries risks unless you babysit the whole project.
You've setup a condition where essentially every answer is true. I know someone who spins wool and dyes it and makes socks. Does it still make sense? Only once you add in the fact she enjoys.
If you're real question is what can be done better by hand in July 2026?
afaik optimization problems are still getting superior results from humans. Things like if you do this algo you can loop the array once instead of 3x. If you align this struct like this it's faster on a certain arch + os. Or if we do these 2 steps in microservice A we can only touch the memory and network once instead of twice etc.
a 2x speed up is still meaningful at scale. (I'd bet there are 100s of software companies out there that would pay 7 to 8 figures if you could 1/2 their AWS bill)
The answer to that question is "everything". Humans are still noticeably better than LLMs at writing code, and just as fast once you factor in the time it takes to review and correct the LLM.
Are you presenting this as the option that allows you to have better understanding (smaller tasks, closer to the changes), or the option with which you don't have understanding (because you're still getting assistance, not solving every problem on your own and not typing the code out yourself)? I genuinely can't tell from your post, people can and do take both of these positions.
> I will lose the ability to think about code and understand code
If you lose it (whatever "it" is), it's because you don't use it. If you don't use it but you're still getting your job done, is that really a loss?
and occasionally manually writing out the code could be useful as a mental exercise to keep coding skills sharp?
There is also a question of enjoyment. While you enjoy it, and while you’re learning, write it yourself. If you’ve already done something many times, understand it well, and it’s become tedious in a bad way, maybe that’s where some strategic use of AI comes in. Of course, I tend to like a bit of tedium from time to time.
I still write code by hand because sometimes it's faster and cheaper.
The Rust compiler enforces many code style conditions that you most probably want in your finished program... Type checking, only one thread writing to memory at a time to avoid race conditions, etc.
It is possible to imagine an AI version of Rust that takes this even further in the future.
Maybe not to the detailed nitty-gritty level in a computer language that was needed pre-LLM era but nevertheless still a must.
In this context, it is good to revisit the practices from early days of programming where "System Analysts" and "System Designers" provided detailed specifications to "Programmers" who translated it into computer code. The key point to understand here is that the specifications were detailed i.e they were code just in a non-machine executable form.
So detailed Specifications followed by Verification is mandatory. Understanding the code implementation in-between has lesser need but still important.
See also my previous comment chains from here - https://news.ycombinator.com/item?id=48800484
Someone wants to give you a phone number. Does it make sense to still try to memorize it or must you hunt down paper and pen to write it down?
... you get the drift? Do what makes sense to you.
Configuring secrets for CICD, .env files, hosting configurations/backups.
Writing instructions files, specs, copy/pasting context, requirements, examples.
I see the argument here constantly "But ur skills!". OK. Well back to work actually shipping software using this new tool that is never going away. My client doesn't really care about my skills, just my speed and they have money for me.