I became a software engineer because writing code is fun. Thinking through hard problems, designing elegant solutions, seeing the things you’ve built working for the first time… these moments are all deeply satisfying, so why in the world would I ever surrender them to AI?

https://davidcel.is/articles/writing-code-is-fun

Writing Code Is Fun

I became a software engineer because writing code is fun. Thinking through hard problems, designing elegant solutions, seeing the things you’ve built working for the first time… these moments are all deeply satisfying, so why in the world would I ever surrender them to AI?

@davidcelis this matches my experience.

The thing that particularly made me realise the speed up was illusory was realising I didn’t actually understand the code it had generated. At least, not to the same level I would have done if I’d written it myself: I could see what it did but I don’t think I could have written the same code myself in future.

(Maybe that’s fine if you anticipate using the LLM in future too? 🤷)

@benjamineskola
Reading “The thing that particularly made me realise the speed up was illusory was realising I didn’t actually understand the code it had generated.”
This experience of “not understanding the code generated” is the experience of the majority of people-everyone else, in a business depending on that code you wrote.

“So how hard can it be to outsource generating code words”? It’s been done in marketing copy, HR, etc. Why not resource expensive & limited code “copy”?

@davidcelis

@dahukanna @davidcelis I think there's a difference between not understanding other people's work and not understanding one's own work.

@benjamineskola @davidcelis

I agree but the experience is similar - an outsider’s incomprehensible cognitive experience.

@dahukanna @benjamineskola @davidcelis

This is really fascinating. Every single person in a company that ships AI-emitted code, policy, product, and so on will be an outsider. The managerial experience of having first hand knowledge of exactly none of the work going on and still being accountable but for every employee.

@dahukanna @benjamineskola @davidcelis there is a difference. Code you have not written is supposed to have been written by *someone else who did*. So there is a logic to it, and you can trust that.

When a devslops vomits "code" no one knows when this stuff comes from and it has no logical structure.

@benjamineskola @dahukanna @davidcelis yes there is. You cant code if you dont understand.
@f4grx that’s what I said.
@benjamineskola yes. That comment was not very much informative.
@davidcelis @benjamineskola I was thinking this today, thank you for posting
@davidcelis @aburka great read, I particularly appreciate that you point out that baby-sitting a model is more like project/product management AND that there's nothing wrong with that, but it's an entirely different craft.
@SnoopJ @aburka thank you! i think that’s the bit that’s most likely to upset people so i’m glad you recognized my full point
@davidcelis @aburka it's something that has been floating around in the back of my mind, but I feel like now I actually have the words to express it
@davidcelis thank you. the attitude of like "thank god we don't have to write code any more" is so baffling. why are you doing this in the first place then??
@eevee thank you for reading and appreciating it, that really made my day!
@eevee @davidcelis some people have low desire for code or abstraction. i see them daily. and they love llms .. to them it's just less efforts .. :/
@eevee @davidcelis Writing code was my hobby before it was my profession. The enjoyment I get from it is the writing code part.

@davidcelis I hold the same belief that writing code is fun (including unit tests :-). But I've been repeatedly surprised by colleagues who didn't, at a rather deep level, that I came to accept it's not fun *for everyone*.

(And those folks tend to move to managerial positions, "coding" being deemed junior-level work. They'll be in a position to influence the use of AI.)

@davidcelis dead-on; AI assistants steal the fun portion of the job and leave you holding the bag for all the hard and tedious parts.
@davidcelis I started coding because it was fun, too. I then started using ai, it made stuff boring, then returned to doing stuff myself
@davidcelis boiler plate is usually a symptom of badly designed languages/frameworks/libraries.
Creating tools to write boilerplate faster is a stupid goal.
We should work on reducing the need for boilerplate by improving languages/frameworks/libraries...
@thinkb4coding @davidcelis In my years in this space I heard this so many times, and people usually nod, yet I can’t see any meaningful change. The people who like the coding part still rather build shiny new toys, mostly for themselves. And I mean, sure, you do you, but this isn’t driving adoption for people that try to solve their everyday problems.
@cryptix @davidcelis I understand, but this is still optimizing for solving the wrong problem.
@thinkb4coding @davidcelis I could have made this clearer but I agree that Silicon Valley fueled AI brings out the worst. Yet I also think the problem you outlined was a a thing before llms and vibe coding and we didn’t tackle it then because it’s more of an organizational then technical one. Now people actually have a toy to circumvent the problem, probably making it even worse. See linked in “vibe coding fixers”

@davidcelis @otfrom I look at this from a different angle. AI helps me solve bigger or different problems that I couldn't have solved on my own, or solve them more efficiently - it's not doing the fun parts, it's doing the boring drudgery parts.

That said I respect everyone's choices and preferences in this space!

@davidcelis The same is true for translating, which is a craft that has already been taken over by AI. The real joy comes from decoding the meaning in the source language and then finding an equivalent that uses an appropriate register, style and tone to encode it in the target language. Unfortunately, the only jobs left nowadays are proofreading of AI output, and your are not allowed to change translations if you feel you could do it better. Only remove hallucinations and correct mistakes.
@davidcelis will we really be able to do this in 2 years ? business pressure, market competition .. this may naturally diffuse (psi) llm just about everywhere. and so much management only care about getting more customers, regardless how the product is made...
@davidcelis Nice piece. My experience is different - for me using Claude Code has made coding fun again. I got to the stage in my career where I was overwhelmed by the accidental complexity of programming. Claude's raised the proportion of my time engaged in what I regard as the essential complexity of problems I'm trying to solve.
@davidcelis I was thinking like you until I understand how to use claude code efficiently
@jb i know how to use these tools.

@davidcelis I'm not a software engineer, even though I did once attempt to work in that field, and even I can't understand how people can be happy with simply...surrendering all knowledge and control over their machines to "AI".

I can only surmise that this stratum of computer professional has been so completely corrupted by the business world, locked into thinking of their computers merely as devices that extrude marketable or tradable stuff of some sort, that now (even if they're still crowing about their coding excellence) they've forgotten that there's hardware under all the accumulated layers of software abstraction.

I'm reminded of the TSLA crowd who have an amazing habit of chattering about "the best car in the world" in a way that suggests TSLA cars aren't actually meant to be driven. They're meant to be shown off in parking lots, or being used to eat and drink and trade crypto while the car is driving itself, or whatever. They're cars for people who actually hate driving (and are probably wretched at it) but absolutely need a car as a status symbol and personal refuge.

~Chara

@davidcelis
My colleagues say that AI helps with boring boilerplate… but I’d rather they used their meaty brains to remove the need for boilerplate, not instruct their clunkers to automate it.

Great blogpost. 100% agree.

@matthew Yah, if AI is actually helpful with "boring boilerplate", then a non-AI tool can do the same, more safely and with way less resources.

If not, it isn't really boileplate.

The more complex frameworks become, the more useful AI can seem, when the true value would be to pick less complex frameworks.

One of my worries is that AI can make people put up with crap complexity we do not need, simply because they feel more powerful having a tool that makes them feel like they master this complexity, rather than trying going for something simpler and better.

@davidcelis

@lettosprey @matthew @davidcelis 100% - it's a much bigger version of the problem "why bother understanding how to do this effectively when I can just add 5 more useEffects and some extra state variables" and instead of figuring out what you need where, you end up getting the same data 3 different times and making the client side experience awful and buggy. Now you don't even have to figure out how to do it wrong, you don't have to figure out anything

@davidcelis Not only is thinking through hard problems, and getting more and more the understanding on how to write elegant solutions fun, it is also the essential part of learning how to write quality code.

This is how "senior software developers" become "senior software developers", and I dread to think how the future will if developers do not go through this learning process...

@davidcelis I'm a believer in handwritten code and the models we build of them, and think LLM generated text is an erosion of both skills and mental models of a project... but sometimes I feel my limiting factor is frustration and burnout rather than technical skill... and even though AI coding will produce worse results with more energy, I still wonder if it could help me be less overwhelmed debugging a massive unfamiliar codebase (I run into bugs often and try to solve them myself, because I've seen that the majority of my bug reports never get fixed).

(I suppose if the LLM results are useless enough I spend as much emotional capacity trying to make sense of the results, it's a pure negative because it still causes environmental harm and feeds predatory companies. Another argument is that you "should" instead set the code aside and find some way to self-care, though it seems a bit dogmatic about the "right" way to do things vs. what helps. And it's frustrating to put down code when there's nothing else that feels worth doing...)
@nyanpasu64 as someone who struggles fairly consistently with burnout in this industry, i definitely see where you’re coming from… but my own take is that reliance on LLMs is a really bad solution. it is, at best, a bandaid that’s environmentally unsafe and overall unethical. we would do better by combatting the actual source of burnout by having better working arrangements and worker protections
@davidcelis worker protections? i broke myself debugging GPU VRAM sleep-wake on my home desktop and drive mounting on my Wii U... maybe this is just a "i need help" thing

I trust that you have a more solid idea about how to manage workplace safety than I do.. What are your ideas on workplace or open-source sustainability?

@nyanpasu64 oh i heard burnout and immediately assumed you meant because of your job lol

and i don’t really have a lot of solid ideas beyond unions are good regardless of the industry

@davidcelis I don't work in tech (though I thoroughly enjoy learning how to code and coding, badly, my own website) but I feel this can apply to any field, and specifically art. Why in hell would you "subcontract" the creative part of your work to an AI? If you consider yourself an artist, then the creative part is what you live for. And if not, then you're not an artist, period.
@davidcelis And I really liked "Just to chase the increasingly demanding productivity requirements of the ruling class? Just to produce a bit more in a shorter amount of time?". That's always what I ask people using AI: what are you actually using the little bit of time saved for?
I'm aware that in some cases (more rare than we want to think), AI is a real help. But most of the time, it's just an illusion, and as you said, it takes the fun out of life.

@davidcelis

These articles miss the point I think. You see it as something lost. These poor people missing out on the fun of a complex and intellectually satisfying profession.

But... most of these millions people who have now experienced "vibe-coding" aren't *trying* to be software professionals and don't miss the satisfaction. They are just suddenly able to do things they couldn't. They're proud of running their first scripts! That's really fun.

#coding #AI

@TheServitor you missed the point I think. enjoyment is obviously personal. people enjoy different things and this is not something i should have to litigate in the comments, but my article even pretty clearly calls out “for people who enjoy being a software engineer”

@TheServitor @davidcelis

At the root of it, vibe-coding is fun like watching hurled spaghetti form shapes is.

@ojrask

And yet a search for "art inspired by spaghetti" would return hundreds of images (much of it pre-AI), and Jackson Pollock inspired a whole aesthetic.

@TheServitor

"Art inspired by spaghetti" and "watching actual hurled spaghetti form random shapes" are two different contexts.

@TheServitor

Jackson Pollock is a pretty interesting example to choose here. Did you know most people disliked their art and style (among other modern artists of the time), but it was artificially promoted by cold war CIA to make the US seem more culturally versatile when compared to USSR and their allies?

Sounds like a similar situation with certain kind of slop that has been doing the rounds lately.

@davidcelis I fully agree with you. I mostly used AI tools to ask questions and to search the web because the current state of search engines is lacking :(
@davidcelis I fully agree with you. I mostly used AI tools to ask questions and to search the web because the current state of search engines is lacking or it get slow to find something meaningful

@davidcelis i dont agree at all:

i had a lot of fun doing advent of code.

but i dont feel any fun in:
doing modern UIs whether they are mobile, flutter, typescript, react, vite whatever;

maintaining tens if not hunderds of templated yaml files to instruct k8s how to deploy my app

instructing CICD how to behave with dumb shell scripts in yaml files.

mapping cli args to fn handlers
mapping fn handlers to parametized sql requests.

writing mock scenarios for my tests with mocked data..

and so on..

@davidcelis dont mean to be rude, but most of our day to day work is not fun anymore 90% of the time.
and i've been in the game since 2000.
@yanndegat what do you want me to say, dude? enjoyment is obviously personal. maybe, just maybe, my article was about me and people like me and not about you?

@davidcelis well. it's simply that there's been a lot of AI Coding Assistants bashing recently. and frankly, IMHO there are issues with power consumption, giving more empowerment to already too much powerful GAFAMs, serious jobs cutting side effects.

but on a day to day basis, these tools can be superpowerful to get most of the boring jobs done.

there are many aspects behind the coding game, from designing / POCing, to maintaining processes up in production. nowadays, most of this job has become kind of boring. and i personnally find that AI coding assistants can free a lot of time si i can be able to do the cool stuff again.

@yanndegat i don’t agree at all

@yanndegat i don’t want to seem like im only being petty/dismissive so let me try to elaborate. i wrote an article about how i don’t like using AI, so “i don’t agree at all” is just a really weird response and a weird way to start a conversation. if i said something like “i don’t really like playing chess” would you jump in with an “i don’t really agree at all”?

but since you brought up energy, yeah, i morally oppose AI too. i think using it is deeply unethical and an abandonment of the craft!

@yanndegat but like, im not gonna sit here and outright tell people not to use these tools. i only wrote this to say “this shit isn’t fun for me.” but yes, i also just think that the tools are bad. they are far too costly for what they produce. they hallucinate and introduce nearly twice as many issues as humans. i worry that people are abandoning learning for an easy way out. but many other people are writing about AI ethics more eloquently than i can. my focus is enjoyment, and that’s personal
@davidcelis well, i wouldnt be that pessimist about people abandonning learning. lastly i've been experimenting a lot of stuff on my own, using coding assistants and i think it helped my learn a lot. i think i wouldnt have even tried to begin some experiments if i hadnt have an assistant to help me bootstrap and prototype quickly, on fields very new to me i didnt even know where to begin. fields such as p2p networks, or how to interact with terminal primitives/ansi codes and stuff like that. emojis rendering.
the very same way: i've always been terrible an at UI stuff, and even more since the JS fwks era, even for TUIs.