Is the craft of writing code dead?
Posted by Toxin_Snake@reddit | ExperiencedDevs | View on Reddit | 51 comments
I need a reality check guys. I've been in this field for 10 years now. Started as a sys admin, then studied CS and now I am a senior SWE in a big corporate environment.
I used to take pride in the process of writing code. Thinking hard about a problem, proper testing, finding all the edge cases and so on. I used to spend a lot of my free time learning more and more skills and always felt they benefit my career. So in a classic corporate move, I am now writing less code because I am being used as a kind of hybrid of lead developer and product owner so I see a lot of Pull Requests.
Pull Requests that are almost entirely AI generated, being reviewed at first by GitHub Copilot. And the PR is implementing a feature that was designed with Figma Make.
It's especially the juniors code that I can immediately spot as 100% AI generated but guess what: most of the time it does what it needs to do. I know this person wouldn't be able to write this without AI but at the end of the day, he delivered what he was asked to do. These AI models have become so ridiculously good over the last few years, I begin to question what my skill as a developer is even worth anymore, the skill I spent so much time building up. This junior can deliver the same product at the end of the day. Frankly, it's probably also because I write good tickets for them that are well defined enough to be understood by an AI but is this what my job will be in the future? Just writing tickets and then overseeing an AI implementing it?
Every colleague I ask tells me they do almost everything with AI, like 95% of code is generated. And everyone hates it. But they have to do it in order to compete. I know we like to shit on Dario and his stupid predictions that no human is going to write code in 6 months but it feels like he might be right.
And don't get me started on outsourcing. Management loves outsourcing to India and AI could be the great equalizer here. We could always tell them that "they can't do it as well as we do" but if we all just use the same LLMs, they can in fact do it as well as we do but for 1/10 of the cost.
I do still see a big gap between me and a fresh junior. They don't know how shit works but I wonder if this even matters anymore if models get better and better.
tl;dr: are we all devolving into prompt engineers?
Technical-Fruit-2482@reddit
Considering how bad AI is at programming, no, it's not dead. It is unfortunately going through a hype phase where people think it is though.
I'm reality if you want decent output from AI in your project you still have to review, understand, and fix what it generates, and if you're doing it properly it will take you just as much time as writing it yourself.
Writing code isn't really the bottleneck, and people caught up in the hype seem to be pretending it was by lowering the quality of all the other steps in the process.
ninetofivedev@reddit
I don't really understand this take. AI, by all measures, is at the very least half decent at programming.
Like give me the option to work with AI, or another engineer. For each engineer I've ever worked with, I'm taking AI at least half the time.
Technical-Fruit-2482@reddit
The reason I say AI is bad at programming is because after years now of trying to use it in my own side projects and professional work I haven't been able to get it to output anything I would consider just letting through as a PR, for example.
I've tried using it from the first appearance of ChatGPT, things like Copilot in VSCode, more AI focused editors like Cursor, more agent-based workflows with things like Claude Code at the center.
With all of these tools I've worked on a wide range of things from static websites, more dynamic web apps with SSE and websockets, audio mixers, GPU code, video games, compilers (specifically register allocation, machine code gen, and IR optimisation passes).
Every single time I've used all of these tools in all of these areas, without fail, I've had to always refactor and more importantly fix the code they're output for me; it's particularly bad with outputting security vulns all over the place, especially in web code. I don't have to do that even with a junior programmer at my work. Like sure, I'll have to tell a junior to fix a few things here and there, or refactor a bit, but not with every single change they've ever made.
All of this reviewing, understanding, and fixing of absolute trash code is so time consuming and exhausting that I have the opposite feeling where I don't understand anyone who has the take that it can at the very least produce half decent code. I just haven't seen it.
SlipParticular1888@reddit
Sounds like you suck at prompting
Technical-Fruit-2482@reddit
Funny way to out yourself as a bad programmer, but ok.
CodelinesNL@reddit
You absolutely did not use Claude Code in the past few months, otherwise you would not be saying this.
Copilot? Sure. It's crap. But you can't bunch all the tooling together. Both the model and the harness you use, have a massive impact.
Technical-Fruit-2482@reddit
Imagine being such a bad programmer that you think Claude Code is actually any good.
Well, I suppose in your case you don't have to imagine, but still, sucks to suck I guess...
CodelinesNL@reddit
Ah yes, the personal attack. The tool of choice for the unintelligent.
Technical-Fruit-2482@reddit
I can only assume you aren't actually interested in intelligent discussion if your immediate reaction was to discount my own experience with Claude Code and accuse me of not even using it, so you brought it on yourself.
As far as keeping posts hidden, it's because creeps like you try to dive into people's history as soon as you have a disagreement.
sass_muffin@reddit
Yeah , kinda wild when you push back here all the vitriol you get. Claude makes mistakes constantly , I don't see how so many people are so blind to them?
Technical-Fruit-2482@reddit
Yea I don't get it. People talk as if we've reached human-level skill in just the past few months. Trouble is that I bet people talking like that were saying roughly the same thing each time they perceived a new tiny increment in whatever they think is quality.
Oh well, sometimes I just wonder if it's people being lazy about their work and lying to themselves that it's good enough under the guise of "it's basically writing what I what write" but not checking it properly.
ninetofivedev@reddit
Buddy, AI didn't really get good until last December. If you didn't notice that, I think this is a you problem.
Technical-Fruit-2482@reddit
Mate, I'm still using AI tools because I still want to know if it's gotten good or not. It still hasn't. If you didn't notice that, I think this is a you problem.
Pleasant-Cellist-927@reddit
Dude is known for being thin skinned. He spends an egregious amount of time posting LinkedIn style nothingburger articles on here that were clearly AI assisted, so should come as no surprise he's in every AI thread fighting like his life depends on it.
ninetofivedev@reddit
Mate, you claim not to use it at all in other comments, quit larping.
CodelinesNL@reddit
These people obviously are extremely behind the curve. If you haven't used Claude Code in the past months to build something, should not be commenting on this.
CodelinesNL@reddit
You obviously never build anything with for example Claude Code.
Technical-Fruit-2482@reddit
Thanks for telling me what I do with my time?
I could easily say the same thing about you.
pr0cess1ng@reddit
The craft is in the comprehension now. The same skill ceiling and skill gaps exist. Do not let the AI moron crew convince you otherwise.
ninetofivedev@reddit
AI moron crew meme er here. We don’t disagree?
I treat ai as if I have 8 mid level engineers who I can give a task with specifics and expect them to come back to me with their best guess at solution.
I then multiplex the conversations, review their implementations as they go, correct any bad behavior, ensure that we’re testing the behavior with valid use-cases, digging into anything that may be potentially overlooked, have them submit a PR, and then I review it all again. And then I have another agent review it with no memory of it.
And then I have teammates review it, and they’re probably using AI to help them review it as well.
Working diligently with ai is still time consuming and I still feel drained at the end of the day.
But I’m also accomplishing 4-8 tasks in parallel.
mxldevs@reddit
Prior to AI, seniors would be solving problems and then writing tickets and assigning them to juniors and reviewing their work.
Now, those juniors either don't exist, or have no idea what the code they submitted does, and seniors are stuck figuring out what the code is even doing.
People can talk about how we're paid to deliver results, and there are plenty of devs saying they are delivering 10x faster than before, but they don't really talk about who has to clean up their mess. Just like the 10x engineers from before AI.
CodelinesNL@reddit
These same developers would also produce crap code before AI. Shit they copied from SO they don't understand.
This isn't an 'AI' problem, it's a culture problem. Going 'faster' just makes it more evident.
We all use Claude Code here and everyone is responsible for the code they produce with the help of their tooling.
ninetofivedev@reddit
The way my day went today, working with "Seniors" sometimes is a complete pain in the ass.
I've been trying to get a PR approved that accomplishes a very basic thing and I'm dealing with some very opinionated engineers who, quite honestly, only have any authority because they've been at the company for nearly a decade.
Seriously, I forgot how painful it can be to work with these clowns sometimes. One of the "architects" is all over my ass because code that I didn't even touch is adjacent to something I'm fixing, he asked me to fix in the 18th round of PR review, I resolved the comment, and he went complaining to his boss that I'm resolving comments without addressing them.
Fuck right off.
CodelinesNL@reddit
Our job was never to "write code". The code is an unfortunate side-effect of how we solve problems. And frankly; a lot of the developers who put waaaaay too much stock in the importance of "code" can often be the most problematic in teams. Devs who are extremely dogmatic, devs who are personally attached to 'their code', devs who think that the more code and complexity they produce, the 'smarter' they are.
AI is a better developer than those developers. So I personally don't mind this change at all.
uniquesnowflake8@reddit
This subreddit is pretty conservative and skeptical which I understand. But it’s like the difference between having a forklift vs a team of really strong guys. The forklift is eventually going to be the way it’s done pretty much everywhere
HoratioWobble@reddit
In the last 20-30 years there's never been a craft at a business level.
A lot of developers insist on some artisan esoteric approach, and then just write shit code, often slowly. They become the bottle neck of most teams.
Now outside of business there has been an "art form" and there still is, equally new art forms are coming out of the use of AI.
At the end of the day your job is your job. You gotta do what the business wants to the best of your ability and as far as they enable you.
Most businesses are paying you for product, not quality.
Outside of work is your time to explore programming as an art form, a craft.
Toxin_Snake@reddit (OP)
Caring about the craft is not just some esoteric bs. It's important to write maintainable and performance critical code imo. You saying business is not paying for that is just not true, that stuff is important. It's not unlike a carpenter that needs to know all kinds of details about his craft to deliver a good product and not just duct tape together a few board to build a table.
Far_Tangerine9150@reddit
Personally this feels akin to something like artists wondering if the age of the artist is dead due to things like photoshop. I feel like every industry evolves, and with SWE our expected output is going to increase significantly, but just as always there will be a spectrum of quality and care that everyone puts into their work that will set them apart from others.
JeggerAgain@reddit
I don’t think so. Art is non-functional. People love art for a wide array of reasons but functionality is usually not one. Code is almost entirely functional. When I use a product I want it to work. I don’t care if it’s hand crafted code or not. Once it works.
Far_Tangerine9150@reddit
That's a great insight into your process, however, my point is that there is a market for people for whom the whole point isn't that it's ideal, but the opposite.
It's a much smaller, and less commercially viable market for sure, but plenty of non-functional projects see a lot of traction. I'm talking in the vein of creative coding, where people are using coding more as a means of artistic expression.
Is some product you depend on daily going to be programmed this way? Probably not, but the innovations that stem from some person creatively coded outside of the engineering cycle who thought to include some feature may see that feature someday make its way toward your program.
JeggerAgain@reddit
I get your point and have thought about this over the past while. If we are all using AI to build our code does anyone get to a deep enough level of understanding to build something novel like a new framework anymore. For example no one who AI codes with JavaScript is creating the next React etc
Far_Tangerine9150@reddit
No, and some things will be lost along the way. At the risk of sounding like a boomerism, I feel this way about Gen Z and their newfound availability of AI, as when people confuse "I know this" with "I know where I can find this information" we lose the internal subliminal processing that comes with it.
To some extent this already happens with people, myself included, who sometimes mistake knowing something with knowing that I can check wikipedia or google.
Far_Tangerine9150@reddit
Note that I thought you were only referencing the last bit of my post, not the whole thing, which may be confusing.
originalchronoguy@reddit
Craft isnt as important as final deliverable. Our job is build something that solves a problem. First and foremost. Does it make it make money, save money, improve efficiency, or make people's lives better.
That is all that matters. The final widget.
When I buy a lunch box, does it make my kid happy? Or does the details of how the designer mixed the paint, chose which plastic handle, and which interior dimensions matter? No. what matter is the final widget delivered to the customer.
JeggerAgain@reddit
I agree. And using your analogy I would say code is the plastic itself rather than the lunch box design. Does the plastic work; I don’t care if the plastic is hand poured or machine moulded
TheBoringDev@reddit
It does if the metal is sharp and cuts your kid's hand, or if it's covered in lead paint that's touching the food. We've always been an industry that's chosen speed over quality, but the final deliverable still has to work. It feels like we're in an era where asking for a baseline of "does this do the thing it was designed to do" is written off as ivory tower nonsense, because "providing value" doesn't contribute to the grift economy.
Sensitive-Ear-3896@reddit
I am an SDET by trade, it's been a while since I've had to test manually, but now I am a developer, and have a few products under my belt, AI makes mistakes all the time, double down on architecture, code review and test design review, learn the subject matter better. Roles are definately converging, but the clankers still need the meatbags.
Adept-Result-67@reddit
I’m loving it. For personal projects i now can work in parallel rather than limited typing in a single file at a time.
When jumping into a new service or repo thanks to ai tools that have context across our documentation, previous commits, JIRA, slack and meeting notes i can get up to date and across the codebase i need to work in within a few minutes without having to pester my colleagues with noob questions.
The work has shifted from typing, to reviewing, guiding and product design. I know some devs hate that, but for me personally i’m loving it.
I think we’re entering the stage of the ‘Product Engineer’
WiseHalmon@reddit
Search for similar posts
Tired__Dev@reddit
I have zero idea how some of you loved writing code in the codebases some of you do. My personal projects, sure. Big corporate codebases? No
Fabulous-Possible758@reddit
"I think that I shall never see / A poem as lovely as an enterprise Java codebase."
Hefty_Breadfruit@reddit
I’ve been working on a large, multi-component issue for over two weeks. I’m still relatively new at 3 years but this issue even has our senior devs stumped. It’s actually been fun to work on a genuine, logical, ticket again.
I’d say they are and fewer in between these days. I can’t foresee a future where that kind of work goes away completely, personally. But without the senior devs I would have passed in code that was sub par and caused bugs.
What I can see happening is more little things getting pushed to main that less knowledgeable devs catch. Then something breaking and it taking a monumental effort to refactor and find the root cause. All AI is doing is creating fewer people who will be able to solve the problems AI creates.
mxldevs@reddit
Prior to AI, seniors would be solving problems and then writing tickets and assigning them to juniors and reviewing their work.
Now, those juniors either don't exist, or have no idea what the code they submitted does, and seniors are stuck figuring out what the code is even doing
Zestyclose_Ad8420@reddit
I don't have that sensation from generating code with AI, my workflow is not just reading PR though. I'm continuously improving the harness, the design files, writing new tests, evolving the architecture, I know there's stuff that we couldn't possibly handle before the machine writing the code. I'll have discussions with the models asking for different ways to do the same thing, analyzing the interactions between the parts. All that scratches the itch or putting the puzzle together. Try to doore difficult stuff in your code that you wouldn't otherwise have attempted. Analyze the safety of your code, they can write fuzzers for your code, you can then tweak those by hand.
Opposite-Hat-4747@reddit
Today I had to re do in a couple of hours work the agents had done over the last couple days. Then I went to another repo where I had to debug an issue because the agents had written the functionality but didn’t call it from anywhere.
Fabulous-Possible758@reddit
At this point the AI can "write code" and that's about literally it. It can sort through some use cases, but loses context and decisions all the time. Unless you just really loved typing it out that much, the AI doesn't handle that and you still have to think about what's going on. Over time, yeah, it is picking up patterns and can implement them, which means you need to be thinking in terms of patterns and not individual functions or classes, but we were all supposed to be doing that anyway, right? If you just happen to love a particular style a lot, it can produce code in that style... generally.
Spartapwn@reddit
Yes. Gone are the days of Michaelangelo devs crafting bespoke software
DapperCam@reddit
Those LLM-only PR codebases become a nightmare. I think coding skills are still valuable for now.
iamdestroyerofworlds@reddit
No.
PositiveBit01@reddit
I agree and I also hate it.
We've been pulled into the standard short-term business thinking because it works. You can make something "better" without AI (easier to reason about, easier to extend, easier to read, etc) but it's so fast that it really is better to just have the AI do it and make sure it tests and looks over itself with some sanity checks from you.
It's too bad but I agree with you, the models are good enough. It is hard to refute.
Expert-Reaction-7472@reddit
evolving. and yes.