Top
Best
New

Posted by evakhoury 11 hours ago

Spending 3 months coding by hand(miguelconner.substack.com)
138 points | 145 commentspage 3
fallingfrog 5 hours ago|
I mean, that's the only way I code. I don't use llm's to do my work for me. I'm perfectly capable of solving any sort of problem on my own, and then I'll understand it well enough to explain it to someone later.
delbronski 5 hours ago||
So we’ve already grown nostalgic for the old days… skimming through an alien looking codebase, scratching your head trying to figure what crazy abstraction the last person who touched this code had in mind. Oh shit it was me? That made so much more sense back then… but it’s been 6 hours and I can’t figure out why this does not work anymore. So you read some docs but they are poorly written. So you find something on Google and try to hack that into your solution. But nope, now more stuff broke. There goes your day.
AstroBen 4 hours ago||
> skimming through an alien looking codebase, scratching your head trying to figure what crazy abstraction the last person who touched this code had in mind. Oh shit it was me? That made so much more sense back then

This is exactly how you learn to create better abstractions and write clear code that future you will understand.

bluefirebrand 4 hours ago||
Yeah, why spend time puzzling over old, proven code that you wrote. Instead spend your time puzzling over new, unproven code that an LLM generated
pizzafeelsright 5 hours ago||
I like to write personal letters too. I also send emails.

I do the former for fun. The latter to provide for my family.

There is a reason old men take on hobbies like woodworking and fixing old cars and other stuff that has been replaced by technology.

daneel_w 4 hours ago||
Depressing. It's like reading has-been actors' stories about how they went to wellness retreats to "reconnect with themselves" to try get back on the job. I can't wait for the day when the same type of people as the author - or indeed, the author himself - start labeling plain regular programming as "artisanal" and "craft".
dang 3 hours ago||
[stub for offtopicness]

(I swapped the title for the subtitle earlier because I thought it was more informative. What I missed was the flamebaity effect that "the old way" would have. Obvious in hindsight!)

sho_hn 6 hours ago||
Remember the old days of our youth, i.e. last week Monday, when we still wrote code by hand?
justonceokay 5 hours ago|||
Well when the fashions change, the old ways are “old fashioned” but only literally
phoronixrly 6 hours ago|||
I can't tell if OP is satire... I've just seen so many unhiged takes that this article reads completely in line with the discourse...
tayo42 4 hours ago||
Taking 3 months off from work to do program some basic stuff is already kind of disconnected from reality.
SrslyJosh 4 hours ago|||
> "coding the old way"

You mean the way that the majority of code is still written by professionals?

sayYayToLife 3 hours ago||
[dead]
biglio23 4 hours ago|||
[flagged]
edjgeek 5 hours ago||
[flagged]
mchusma 6 hours ago||
You should do what you want, and as a break it’s fine. But IMO right now the most leverage for most people is learning how to effectively manage agents. It’s really hard. Not many are truly good with it. It will be relevant for a long time.
idle_zealot 6 hours ago||
> It will be relevant for a long time.

Why would you think that? The landscape is fast-moving. Prompting tricks and "AI skills" of yesterday are already dated and sometimes actively counterproductive. The explicit goal of the companies working on the tech is to lower the barriers to entry and make it easier to use, building harnesses and doing refinement that align LLMs to an intuitive mode of interaction.

Do you think they'll fail? Do you think we've plateaued in terms of what using a computer looks like and your learnings for wrangling the agents of this year will be relevant for whatever the new hotness is next year? It's a strong claim that demands similarly strong argument to support.

aerhardt 6 hours ago|||
> It’s really hard

How? I just open multiple terminal panes, use git tree, and then basically it’s good old software dev practices. What am I missing?

bensyverson 6 hours ago||
You're probably significantly underselling the value of your own "good old software dev practices."
LeCompteSftware 5 hours ago||
I believe the point (which you seem to tacitly agree with) is that a young dev's time is much better spent reading and writing code "the old-fashioned way" vs chasing the new SOTA in AI-assisted development. A competent dev can basically master agentic development in a few months. But it takes years to become competent.
baq 6 hours ago|||
The agents are already learning to manage agents, if it’s relevancy you’re looking for you might want to take up plumbing instead.
onair4you 6 hours ago|||
Not sure what you are using, but that’s easier said than done. I just set up an agent to ensure that my other agent would follow my coding guidelines by using hooks. The coding agent responded by switching to editing with `sed`, etc. to circumvent the hooks.

Claude Opus is going to give zero fucks about your attempts to manage it.

bdangubic 6 hours ago|||
this is exactly right, I don't manage agents anymore (and have spent countless hours before learning how to do so, now this is a skill like my microsoft access skills (which were amazing back in the day...)
sd9 6 hours ago|||
What has been most valuable for you?

It is hard indeed. I find it really quite exhausting.

Personally, I feel like I have always been a very competent programmer. I'm embracing the new way of working, but it seems like quite a different skillset. I somewhat believe that it will be relevant for a long time, because there is an incredibly large gap in outcomes between members of my team using AI. I've had good results so far, but I'm keen to improve.

sdevonoes 6 hours ago|||
For the average and mundane stuff, sure do whatever everyone is doing.

For the good stuff, there’s no alternative but to know and to have taste. Llms change nothing.

the_gipsy 5 hours ago|||
If they're so great, then we will end up somewhere where it's easy to pick up.
dyauspitr 5 hours ago|||
You will be relevant for 6 months until they manage themselves.
slopinthebag 6 hours ago|||
Yeah, it's really difficult to remember to tell it "make no mistakes". Typing a prompt is also really hard, especially when you have to remember the cli command to open the agent. Sometimes I even forget if I need to use "medium", "high", or "xhigh" for a task.
Marazan 6 hours ago|||
> It will be relevant for a long time.

Citation needed.

zingababba 6 hours ago||
I see you got downvoted by I agree. I went through a massive valley of despair and turned back to hand crafting only to realize that for me coding was always a means to an end and I really didn't care at all about how I got there. Now I'm having a lot of fun building out all kinds of wonky projects.
LeCompteSftware 5 hours ago||
This is ominous and very depressing given what we've recently learned / reconfirmed about LLMs sapping our ability to persist through difficult problems:

> There were 2 or 3 bugs that stumped me, and after 20 min or so of debugging I asked Claude for some advice. But most of the debugging was by hand!

Twenty whole minutes. Us old-timers (I am 39) are chortling.

I am not trying to knock the author specifically. But he was doing this for education, not for work. He should have spent more like 6 hours before desperately reaching for the LLM. I imagine after 1 hour he would have figured it out on his own.

Gigachad 5 hours ago||
Often when LLMs give me some command option or advice I haven’t seen before I try to independently verify it. And I’ve often been frustrated just how hard it is to find this info from the source documents.

Though a lot of the time this is more an inefficiency of the documentation and Google rather than something only LLMs could do.

nyarlathotep_ 4 hours ago||
As the rate of 'hallucinations' seems to have dropped dramatically (at least IME as regards non-existent flags and the like), I'm more concerned with usage. I often use grep.app/GH code search to look for usage examples as a sanity check when things look "off", for exactly the reason you described--there's often a total lack of good documentation on things like that, especially on "younger" tools/stuff.
alemwjsl 5 hours ago|||
Yep and after 6 hours don't reach for LLM, instead:

* Ask someone to come over and look

* Come back the next day, work on something else

* Add comment # KNOWN-ISSUE: ...., and move on and forget about it.

But year spent days on a bug at work before ha ha!

moregrist 5 hours ago|||
> Come back the next day, work on something else

This is a tried and true way of working on puzzles and other hard problems.

I generally have 2-4 important things in flight, so I find myself doing this a lot when I get stuck.

ignoramous 3 hours ago||
> This is a tried and true way of working on puzzles and other hard problems ... generally have 2-4 important things in flight

Just a note that, for chronic procrastinators, having 2 to 4 important things going on is a trigger & they'd rather not complete anything.

I wonder, for such folks, if SoTA LLMs help with procrastination?

justonceokay 5 hours ago||||
You say this as if the LLM isn’t committing things it doesn’t even recognize as bugs if you don’t babysit it. I’d rather have a codebase with a few very well marked evil zones, rather than a codebase no one has read. All code contains demons and it’s good to have an understanding of their locations and relative power
calvinmorrison 4 hours ago|||
so many eureka moments of mine were simply sitty on the MTA
Tanoc 2 hours ago|||
Often times the fastest way to debug is to write it wrong, write it wrong again, find an example where somebody wrote it right, write that wrong in your own file, then figure out what you changed to adapt it that made it go wrong.

If anyone remembers middleschool mathematics this is the coding example of the teacher making you write out the equations in their longest form instead of shortcutting. It's done this way because it shows you your exact train of thought and where you went wrong. That sticks in your head. You understand the problem by understanding yourself. Giving up after twenty minutes instead of stopping, clearing your active cognitive load, and then coming back erases your ability to understand that train of thought.

For a comparison it's like being in first person view in a videogame, and the only thing you have is the ability to look behind you, versus being able to bring up a map that has an overhead view. In first person you're likely to lose where exactly you went to get where you are, while with the overhead view map you can orient your traveled route according to landmarks and distance.

JuniperMesos 4 hours ago|||
Why shouldn't someone consult some kind of external resource for help, after struggling with a specific coding problem for 20 minutes? Why is 6 hours the right amount of time to timebox this to?
demorro 4 hours ago|||
20 minutes is not enough time to drive you into a state of desperation, where you may be forced to try something novel which will expand your mind and future capabilities in unknown and unexpected ways. You might be driven to contact another human being, for example.
YesBox 3 hours ago||
I was typing up a long and somewhat boring story.

So, the short of it is that this is a great insightful comment that I can back up with my own experience in making a game from scratch over the last 4+ years.

Jtarii 4 hours ago||||
It entirely depends on what your goals are.

If you want to solve the problem quickly then just use the resources you have, if you want to become someone who can solve problems quickly then you need to spend hundreds of hours banging your head against a wall.

bhelkey 4 hours ago||||
There wasn't always an external resource to go to for help. Especially for legacy pieces of software, it was easy to become the person with most context on the team.
noosphr 4 hours ago||
This is reaching "you won't always have a calculator" levels of cope.
bigfishrunning 34 minutes ago||
And yet doing arithmetic in your head is an extremely useful skill to this very day
thrance 4 hours ago||||
The struggle is the point, that's how you learn. If you offload your task to someone/something else after barely 20 minutes of head scratching, you've missed the plot entirely.
bsder 1 hour ago||||
1) 20 minutes is barely enough time to get into flow.

2) There are different levels of debugging. Are your eyes going to glaze over searching volumes of logs for the needle in a haystack with awk/grep/find? Fire up the LLM immediately; don't wait at all. Do the fixes seem to just be bouncing the bugs around your codebase? There is probably a conceptual fault and you should be thinking and talking to other people rather than an AI.

3) Debugging requires you to do a brain inload of a model of what you are trying to fix and then correct that model gradually with experiments until you isolate the bug. That takes time, discipline and practice. If you never practice, you won't be able to fix the problem when the LLM can't.

4) The LLM will often give you a very, very suboptimal solution when a really good one is right around the corner. However, you have to have the technical knowledge to identify that what the LLM handed you was suboptimal AND know the right magic technical words to push it down the right path. "Bad AI. No biscuit." on every response is NOT enough to make an LLM correct itself properly; it will always try to "correct" itself even if it makes things worse.

th0ma5 4 hours ago|||
[dead]
sho_hn 5 hours ago|||
Now imagine someone else reading this and genuinely considering 20 minutes a long time to wait :-)
j1elo 4 hours ago|||
I just grabbed an Android remaster of "Broken Sword: Shadow of the Templars", a 90's point-and-click adventure that has been added a hints system which pops up automatically after a timeout of the player not progressing.

This can be set as far as 1h of being stuck. Can also be 5 minutes. But by default it is 30 seconds.

My inner kid was screaming "that's cheating!" :-D but on second thought it is a very cool feature for us busy adults, however it's sad the extremes that gamedevs have to go in order to appease the short-term mindless consumers of today's tik-toks.

But more seriously, where's the joy of generating long-standing memories of being stuck for a while on a puzzle that will make you remember that scene for 30 years? An iconic experience that separates this genre from just being an animated movie with more steps.

I couldn't imagine "Monkey Island II but every 30 seconds we push you forward". Gimme that monkey wrench.

TFA and this comment just made me have this thought about today's pace of consumption, work, and even gaming.

usernametaken29 4 hours ago|||
I’ve worked in financial modelling before where you need to make sure results are correct, not approximate. One time there was a nasty bug in pandas multiindexes (admittedly we banned pandas for all new code because it just can’t do semver). Spent 9 days to debug three lines of code. Endurance and patience are learned skills and sometimes they’re the only way you can get a correct verifiable solution.
derangedHorse 4 hours ago|||
I'm sure the author will encounter problems where the only way to solve them will be the marginal effort provided by a human. At that point he won't be just be solving problems to work his brain, but also to accomplish a goal.
Trasmatta 5 hours ago|||
YES. I don't know how many multi WEEK sessions of debugging I've been through in my career. Frustrating, but so many valuable lessons learned in the process. LLMs are absolutely causing us to lose something very important.
encrux 5 hours ago|||
I don’t miss multi week debugging sessions.

Having a tool that instantly searches through the first 50 pages of google and comes up with a reasonable solution is just speeding up what I would have done manually anyways.

Would I have learned more about (and around) the system I‘m building? Absolutely. I just prefer making my system work over anything else, so I don’t mind losing that.

Trasmatta 5 hours ago||
The multi week debugging sessions weren't fun, but that doesn't mean they weren't valuable and important and a growth and learning opportunity that we now will no longer experience.
glhaynes 5 hours ago|||
Seems like there's a good argument to be made that we'll have plenty of opportunities for valuable growth and learning, just about different things. Just like it's always been with technology. The machine does some of the stuff I used to do so now I do some different stuff.
LeCompteSftware 5 hours ago|||
IMO the more salient point is that bugs requiring multiple weeks of human work aren't going away! Claude has actually not been trained on, say, a mystifying and still poorly-explained Java concurrency bug I experienced in 2012, which cost a customer $150,000. Now in 2026 we have language-side tooling that mitigates that bug and Claude can actually help a lot with the rewrite. But we certainly don't have language tooling around the mysterious (but now perfectly well-explained) bug I experienced in 2017 around daylight saving's time and power industry peak/off-peak hours. I guess I haven't asked, but I can almost guarantee Claude would be no help there whatsoever.

Just so many confusing things go wrong in real-world software, and it is asinine to think that Mythos finding a ton of convoluted memory errors in legacy native code means we've solved debugging. People should pay more attention to the conclusion of "Claude builds a C compiler" - eventually it wasn't able to make further progress, the code was too convoluted and the AI wasn't smart enough. What if that happens at your company in 2027, and all the devs are too atrophied to solve the problem themselves?

I don't think we're "doomed" like some anti-AI folks. But I think a lot of companies - potentially even Anthropic! - are going to collapse very quickly under LLM-assisted technical debt.

chasd00 4 hours ago||||
Geez you guys need to spend some time in orgs where your paycheck is depends on getting the bugs fixed and deployed. If your direct deposit happens whether you deliver or not then you’re missing the most valuable career lesson of all.
jjice 5 hours ago||||
But oh my god, do you remember how good it felt to finally fix it?

The euphoria I felt after fixing bugs that I stayed up late working on is like nothing else.

mapontosevenths 4 hours ago||
Debugging code is fun for the same reason hitting yourself in the head with a hammer is: It feels really good when you stop.
voidfunc 5 hours ago||||
If I told someone I spent a week debugging a problem these days I think I would get laughed out of the call. Even a day might hit somw chuckles.

If you cant fix the bug just slop some code over it so its more hidden.

This is all gonna be fascinating in 5-10 years.

seanw444 5 hours ago|||
This really does feel like a mass hysteria event. Bizarre to have to live through it.
SlinkyOnStairs 5 hours ago|||
This does depend on who you are; If you're a senior with 10+ years of experience, it's a failure of your abilities to cut your losses or know when to seek help if you take far too long debugging something.

But for juniors, it's invaluable experience. And as a field we're already seeing problems resulting from the new generations of juniors being taught with modern web development, whose complexity is very obstructing of debugging.

badc0ffee 4 hours ago||
There are definitely situations where you can't ask for help and you can't turn your back on the bug.

I worked on a project that depended on an open source but deprecated/unmaintained Linux kernel module that we used for customers running RHEL[1]. There were a number of serious bugs causing panics that we encountered, but only for certain customers with high VFS workloads. I spent days to a week+ on each one, reading kernel code, writing userland utilities to repro the problem, and finally committing fixes to the module. I was the only one on the team up to the task.

We couldn't tell the customers to upgrade, we couldn't write an alternative module in a reasonable timeframe, and they paid us a lot of money, so I did what I had to do.

I'm sure there are lots of other examples like this out there.

[1] Known for its use of ancient kernels with 10000 patches hand-picked by Red Hat. At least at the time (5-10 years ago).

z500 4 hours ago||
Thank you for injecting some perspective into the thread of AI hysteria. I feel like everyone is imagining a bug in a CRUD app.
echelon 5 hours ago||||
> LLMs are absolutely causing us to lose something very important

The time wasted thinking our craft matters more than solving real world problems?

The amount of ceremony we're giving bugs here is insane.

Paraphrasing some of y'all,

> "I don't have to spend a day stepping through with a debugger hoping to repro"

THAT IS NOT A PROBLEM!

We're turning sand into magic, making the universe come alive. It's as if we just got electricity and the internet and some of us are still reminiscing about whale blubber smells and chemical extraction of kerosene.

The job is to deliver value. Not miss how hard it used to be and how much time we wasted finding obscure cache invalidation bugs.

Only algorithms and data structures are pure. Your business logic does not deserve the same reverence. It will not live forever - it's ephemeral, to solve a problem for now. In a hundred years, we'll have all new code. So stop worrying and embrace the tools and the speed up.

Trasmatta 5 hours ago||
> The time wasted thinking our craft matters more than solving real world problems?

This is both a strawman and a false dichotomy.

echelon 4 hours ago||
I mean to cause a stir! Let me invoke every logical fallacy and dirty rhetorical device I can if it draws attention.

Too many of our engineering conversations are dominated by veneration of the old. Let me be hyperbolic so that I can interrupt your train of thought and say this:

We're starting to live in the future.

Let go of your old assumptions. Maybe they still matter, but it's also likely some of them will change.

The old ways of doing things should be put under scrutiny.

In ten years we might be writing in new languages that are better suited for LLMs to manipulate. Frameworks and libraries and languages we use today might get tossed out the door.

All energy devoted to the old way of doing things is perhaps malinvested into a temporary state of affairs. Don't over-index on that.

i2km 3 hours ago|||
Please keep this slop off HN
raw_anon_1111 4 hours ago|||
And if I were your boss you would immediately be fired if you spent weeks trying to debug an issue a junior developer solved just by launching Claude and telling it the symptoms of the issue because you refused to use an LLM.
raw_anon_1111 4 hours ago||
Why? I’m as old timer as old timer can get - started programming as a hobby in 1986 in assembly on an Apple //e in 65C02 assembly language.

But just today a bug was reported by a customer (we are still in testing not a production bug). I implemented this project myself from an empty git repo and an empty AWS account including 3 weeks of pre implementation discovery.

I reproduced the issue and through the problem at Claude with nothing but two pieces of information - the ID of the event showing the bug and the description.

It worked backwards looking at the event stream in the database, looking at the code that stored the event stream, looking at the code that generated the event stream (separate Lambda), looking at the actual config table and found the root cause in 3 minutes.

After looking at the code locally, it even looked at the cached artifacts of my build and verified that what was deployed was the same thing that I had locally (same lambda deployment version in AWS as my artifacts). I had it document the debug steps it took in an md file.

Why make life harder on myself? Even if it were something I was doing as a hobby, I have a wife who I want to spend time with, I’m a gym rat and I’m learning Spanish. Why would I waste 6 hours doing something that a computer could do for me in 5 minutes?

Assuming he has a day job and gets off at 6, he would be spending all of his off time chasing down a bug that he could be using doing something else.

grebc 4 hours ago|||
It’s always the journey that matters.

If you’re experienced as you are, you’re not learning the same way a junior assigned this might learn from it.

raw_anon_1111 4 hours ago||
So the project I mentioned while I did write every single line of app code and IAC, made every architectural decision, etc., I did come on an off the project over the course of a year and I couldn’t even remember some of the decisions I made.

I also used Codex and asked questions about how the codebase worked to refresh my own memory. Why wouldn’t a junior developer do the same?

I mentioned that I had Codex describe in detail how it debugged it. It walked through each query it did, the lines of code it looked at and the IAC. It jogged my memory about code I wrote a year ago and after being on other projects

grebc 2 hours ago||
If you’re 50+ as you intimated in your first post then you have a wealth of knowledge that juniors don’t.

Just because it worked this time doesn’t mean it always will.

If you need further explanation of why you might want to spend more time resolving a bug to learn about the systems you’re tasked with maintaining then I’m at a loss sorry.

scarface_74 1 hour ago||
And then as experience developer you would have to try one of the other tools in your toolbox. Why should someone tie a hand behind their back and not use an LLM out of some sense of nerd pride?
LeCompteSftware 4 hours ago|||
Did you miss this part?

   But he was doing this for education, not for work.
That's why he should spend 6 hours on it, and not give up and run to the gym. That's like saying "I shouldn't spend an hour at the gym this week, lifting weights is hard and I want to watch TV. I'll just get my forklift to lift the weights for me!"
raw_anon_1111 3 hours ago||
With his experience, I seriously doubt that he is trying to compete in the job market based on his ability to “codez real gud”. At his (and my) experience level he is more than likely going to get his next job based on a higher level of “scope” and “impact” (yes I’m using BigTech promo docs BS).
fsckboy 4 hours ago||
how about the whole thing was written by an AI as satire, mocking human "coding retreat"
einpoklum 5 hours ago|
[flagged]
dang 3 hours ago|
Please don't cross into personal attack on HN. You can make your substantive points without that.