I'm spending 3 months coding the old way (miguelconner.substack.com)

105 points by evakhoury 7 hours ago

LeCompteSftware 2 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.

alemwjsl 2 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 an hour 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.

justonceokay an hour 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

Gigachad an hour 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_ an hour 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.

JuniperMesos 33 minutes 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?

Jtarii 6 minutes 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.

demorro 23 minutes 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.

bhelkey 17 minutes 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 7 minutes ago

thrance 27 minutes 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.

sho_hn 2 hours ago

Now imagine someone else reading this and genuinely considering 20 minutes a long time to wait :-)

usernametaken29 42 minutes 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 an hour 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 2 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 an hour 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 an hour ago

chasd00 13 minutes 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 an hour 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 35 minutes ago

raw_anon_1111 27 minutes 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.

echelon an hour 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 an hour ago

voidfunc an hour 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 an hour ago

SlinkyOnStairs an hour ago

raw_anon_1111 31 minutes 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 25 minutes 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 a minute ago

LeCompteSftware 23 minutes 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!"

daneel_w 40 minutes 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".

sho_hn 2 hours ago

Remember the old days of our youth, i.e. last week Monday, when we still wrote code by hand?

justonceokay an hour ago

Well when the fashions change, the old ways are “old fashioned” but only literally

phoronixrly 2 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 21 minutes ago

Taking 3 months off from work to do program some basic stuff is already kind of disconnected from reality.

apricot 30 minutes ago

I am this very term teaching 18-year-old students 6502 assembly programming using an emulated Apple II Plus. They've had intro to Python, data structures, and OO programming courses using a modern programming environment.

Now, they are programming a chip from the seventies using an editor/assembler that was written in 1983 and has a line editor, not a full-screen one.

We had a total of 10 hours of class + lab where I taught them about assembly language and told them about the registers, instructions, and addressing modes of the chip, memory map and monitor routines of the Apple, and after that we went and wrote a few programs together, mostly using the low-resolution graphics mode (40x40): a drawing program, a bouncing ball, culminating in hand-rolled sprites with simple collision detection.

Their assignment is to write a simple program (I suggested a low-res game like Snake or Tetris but they can do whatever they want provided they tell me about it and I okay it), demo their program, and then explain to the class how it works.

At first they hated the line editor. But then a very interesting thing happened. They started thinking about their code before writing it. Planning. Discussing things in advance. Everything we told them they should do before coding in previous classes, but they didn't do because a powerful editor was right there so why not use it?...

And then they started to get used to the line editor. They told me they didn't need to really see the code on the screen, it was in their head.

They will of course go back to modern tools after class is finished, but I think it's good for them to have this kind of experience.

flawn 4 minutes ago

Is this course online available? Sounds like great fun.

AstroBen an hour ago

I wish more was being invested in AI autocomplete workflows. That was a nice middle-ground.

But yeah my hunch is "the old way" - although not sure we can even call it that - is likely still on par with an "agentic" workflow if you view it through a wider lens. You retain much better knowledge of the codebase. You improve your understanding over coding concepts (active recall is far stronger than passive recognition).

delbronski an hour 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 8 minutes 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 16 minutes 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

birdfood 30 minutes ago

Getting to spend 3 months on a self learning journey sounds wonderful. My hunch is that these deep skills will be valuable long term and that this new abstraction is not the same as moving from assembly to c, but I am not completely sure. Lately most of my code has been llm generated and I can’t say I feel any sense of enjoyment, accomplishment, or satisfaction at the end of a work day. But I’ve also come to realise I really only enjoy 5-10% of the coding anyway and the rest is all the tedious semi-mechanical changes that support that small interesting core. On the scale of human history working with computers is a blip in time and I wonder how the period of hand writing code will be viewed in a hundred years, perhaps as a footnote or simply bundled as ‘everything before machines were self automating’.

SrslyJosh 41 minutes ago

> "coding the old way"

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

derangedHorse 32 minutes ago

> We don’t have teachers or a curriculum, and there’s very little required structure beyond making a full-time commitment during your retreat

I saw this quote when looking at the Recurse Center website. How does one usually go about something like this if they work full time? Does this mainly target those who are just entering the industry or between jobs?

I know the article is mostly about what the author built at the coding retreat, but now he has me interested in trying to attend one!

tossandthrow 2 hours ago

I love being able to put my brain cells at lean, coq, haskell. All the fun stuff. And have my money job taken care of mostly with agents.

pizzafeelsright an hour 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.

brianjlogan an hour ago

I started using Zed as a half measure. I think I'll start using AI for planning and suggested implementation steps.

I am seeing non technical people getting involved building apps with Claude. After the Openclaw and other Agentic obsession trends I just don't see it pragmatic to continue down the road of AI obsession.

In most other aspects of life my skills were valuated because of my ability to care about details under the hood and the ability to get my hands dirty on new problems.

Curious to see how the market adapts and how people find ways to communicate this ability for nuance.

fsckboy 8 minutes ago

how about the whole thing was written by an AI as satire, mocking human "coding retreat"

fouronnes3 2 hours ago

This is awesome! I myself did a 12 weeks batch at RC (W1'24) and had an absolute blast. Happy coding! Stay curious.

culi an hour ago

Huge fan of RC. Have a close friend that did it. I've been so close to applying multiple times in my life but the timing just never quite works out

gregsadetsky 2 hours ago

fellow RC'er here - hi! I was Fall 2 '23.

epx 6 minutes ago

It is all a conspiracy, now that mechanical keyboards are affordable and available and so many shapes and switches, they want to take this last pleasure (typing) from us

ludr an hour ago

I've settled into a pattern of using agents for work (where throughput/results are the most important) and doing things the hard way for personal or learning projects (where the learning is more important).

linkregister an hour ago

It's easy to take for granted lots of experience programming before the advent of LLMs. This seems like a good strategy to develop understanding of software engineering.

I remember writing BASIC on the Apple II back when it wasn't retro to do so!

abcde666777 19 minutes ago

Personally I haven't stopped doing things the old way. I haven't had any issues using LLMs as rubber ducks or brain storming assistants - they can be particularly useful for identifying algorithms which might solve a given problem you're unfamiliar with. Basically a variant on google searching.

But when it comes to the final act I find myself unwilling to let an LLM write the actual code - I still do it myself.

Perhaps because my main project at the moment is a game I've been working on for four years, so the codebase is sizable, non-trivial, and all written by me. My strong sense even since coding LLMs showed up has been that continuing to write the code is important for keeping it coherent and manageable as a whole, including my mental model of it.

And also: for keeping myself happy working on it. The enjoyment would be gone if I leaned that far into LLMs.

phaser an hour ago

Here’s how i do it: I create a lot of stuff using AI to the max, but I also spend the necessary of time on reviewing that the AI is producing code that passes my cognitive load standards. this involves some tokens spent on grooming code and documenting well. Most of this is effortless thanks to an AGENTS.md based on this: https://github.com/zakirullin/cognitive-load/blob/main/READM... but i have a good sense of catching when things are getting weird and i steer back.

Then, when credits run out. It’s show time! The code is neatly organized, abstractions make sense, comments are helpful so I have a solid ground to do some good old organic human coding. I make sure that when i’m approaching limits I’m asking the AI to set the stage.

I used to get frustrated when credits ran out because the AI was making something I would need to study to comprehend. Now I’m eager to the next “brain time hand-out”

It sounds weird but it’s a form of teamwork. I have the means to pay for a larger plan but i’d rather keep my brain active.

flawn 2 minutes ago

Thanks for sharing. I have thought about approaches by deliberately leaving tasks to me while the agent does something to keep my brain active & prevent atrophy. Maybe I should work on a Claude Code skill/hook for that :)

bitwize 35 minutes ago

The fact that with AI development, your brain is no longer in a tight feedback loop with the codebase, leading to a significant drift between your model and reality, is still a sticking point with me and agentic development. It feels like trying to eat with silicone rubber chopsticks. I lose all precision and dexterity.

I still keep hoping there'll be a glut of demand for traditional software engineers once the bibbi in the babka goes boom in production systems in a big way:

https://m.youtube.com/watch?v=J1W1CHhxDSk

But agentic workflows are so good now—and bound to get better with things like Claude Mythos—that programming without LLMs looks more and more cooked as a professional technique (rather than a curiosity or exercise) with each passing day. Human software engineers may well end up out of the loop completely except for the endpoints in a few years.

moomin an hour ago

Not the point of the article but

> 15 years of Clojure experience

My God I’m old.

mattdecker100 43 minutes ago

Old? OP showed a pic of an Apple IIe. I bought one for a few thousand bucks (I forget exactly how much). I've been an SE for 44 years. We just added the final abstraction layer.

einpoklum an hour ago

That guy sounds so full of it just after reading the first few paragraphs... if had anywhere near this attitude before he got into LLMs, I would probably not have liked to be on a development team with him.

lrvick 2 hours ago

I did things the old way for 25 years and my carpal tunnels are wearing out. LLMs let me produce the same quality I always have with a lot less typing so not mad at that at all. I review and own every line I commit, and feel no desire to go back to the old way.

What scares the shit out of me are all these new CS grads that admit they have never coded anything more complex than basic class assignments by hand, and just let LLMs push straight to main for everything and they get hired as senior engineers.

It is like hiring an army of accountants that have never done math on paper and exclusively let turbotax do all the work.

If you have never written and maintained a complex project by hand, you should not be allowed to be involved in the development of production bound code.

But also, I feel this way about the industry long before LLMs. If you are not confident enough to run Linux on the computer in front of you, no senior sysadmin will hire you to go near their production systems.

Job one of everyone I mentor is to build Linux from scratch, and if you want an LLM build all the tools to run one locally for yourself. You will be way more capable and employable if you do not skip straight to using magic you do not understand.

adamddev1 2 hours ago

> It is like hiring an army of accountants that have never done math on paper and exclusively let turbotax do all the work.

It's not though. It's fundamentally different because TurboTax will still work with clear deterministic algorithms. We need to see that the jump to AI is not a jump from hand written math to calculators. It's a jump from understanding how the math works to another world of depending on magic machines that spit out numbers that sort of work 90% of the time.

bluefirebrand 9 minutes ago

Imagine if Math calculators were just subtly wrong some percentage of the time for use cases that people use dozens or hundreds of times a day. If you could punch in the same math formula 100 times and get more than 1 answer on a calculator, most people wouldn't trust those for serious work.

They probably wouldn't think that the calculator makes them faster either

thesz 2 hours ago

From what I remember, typical new C++ debugged code speed is about 20-25K lines per year, lines that are non-blank, non-comment and not completely verifiable by compiler. E.g., standalone bracket or comma or semicolon are not lines of code, function header is too not a line of code, but computation, conditions and loops are. This is from old IBM statistics, I learned about it circa 2007.

If we assume that there are 50 weeks per year, this gives us about 400-500 lines of code per week. Even at long average 65 chars per line, it goes not higher than 33K bytes per week. Your comment is about 1250 bytes long, if you write four such comments per day whole week, you would exceed that 33K bytes limit.

I find this amusing.

slopinthebag an hour ago

LOL. If you look at their comment history, they sure are typing a lot of characters for their wrists.

thesz 31 minutes ago

sho_hn 2 hours ago

> If you have never written and maintained a complex project by hand, you should not be allowed to be involved in the development of production bound code.

So only the old hands allowed from now on, or how are we going to provide these learning opportunities at scale for new developers?

Serious question.

hallway_monitor 2 hours ago

Junior developers have always been a lot less effective than senior developers. We will need new senior developers so we will need to train junior developers. Maybe we train them by forcing them to do things the hard way. The slow way. By hand. Because if we let them do things the fast way they are going to cause some serious damage.

SlinkyOnStairs an hour ago

lrvick 2 hours ago

The same way I learned 25 years ago still works today. Volunteer on open source projects.

Always happy to mentor people at stagex and hashbang (orgs I founded).

Also being a maintainer of an influential open source project goes on a resume, and helps you get seen in a crowded market while boosting your skills and making the world better. Win/win all around.

sho_hn 2 hours ago

rafaelmn 2 hours ago

Even by pessimistic progress projections AI will be better than most at coding before this is a long term issue. And the output multiplier I'm seeing I suspect the number of SWEs needed to achieve the same task is going to start shrinking fast.

I don't think SWE is a promising career to get started in today.

mwwaters an hour ago

lrvick 2 hours ago

8note 44 minutes ago

jazz9k 13 minutes ago

teruakohatu 2 hours ago

> It is like hiring an army of accountants that have never done math on paper and exclusively let turbotax do all the work.

That is exactly been the situation for years. Once graduated accountants are not doing maths. They are using software (Exel, Xero etc.). They do need to know some basic formulas eg. NPV.

What they need to know is the law, current business practices etc.

einpoklum an hour ago

> LLMs let me produce the same quality I always have with a lot less typing

If that's true, then you likely used to produce slop for code. :-(

> I did things the old way for 25 years and my carpal tunnels are wearing out.

You wrote so much code as to wear out your carpal tunner? Are you sure it isn't the documentation and the online chatter with your peers? :-(

... anyway, I know it's corny to say, but - you should have, and shoudl now, improve the ergonomics of your setup. Play with things like the depth of your keyboard on your desk, the height of the chair and the desk, with/without chair handrests, keyboard angle, etc.

> Job one of everyone I mentor is to build Linux from scratch

"from scratch" can mean any number of things.

fallingfrog 2 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.

mchusma 2 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 2 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 2 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 2 hours ago

You're probably significantly underselling the value of your own "good old software dev practices."

LeCompteSftware an hour ago

baq 2 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 2 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 2 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 2 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 2 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 2 hours ago

If they're so great, then we will end up somewhere where it's easy to pick up.

dyauspitr 2 hours ago

You will be relevant for 6 months until they manage themselves.

slopinthebag 2 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 2 hours ago

> It will be relevant for a long time.

Citation needed.

zingababba 2 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.