I’m probably going to go back and redo everything with my own code.
I’m probably going to go back and redo everything with my own code.
1. Creating something
2. Solving puzzles
3. Learning new things
If you are primarily motivated by seeing a finished product of some sort, then I think agentic coding is transcendent. You can get an output so much quicker.
If your enjoyment comes from solving hard puzzles, digging into algorithms, how hardware works, weird machine quirks, language internals etc... then you're going to lose nearly all of that fun.
And learning new things is somewhere in the middle. I do think that you can use agentic coding to learn new technologies. I have found llms to be a phenomenal tool for teaching me things, exploring new concepts, and showing me where to go to read more from human authors. But I have to concede that the best way to learn is by doing so you will probably lose out on some depth and stickiness if you're not the one implementing something in a new technology.
Of course most people find joy in some mix of all three. And exactly what they're looking for might change from project to project. I'm curious if you were leaning more towards 2 and 3 in your recent project and that's why you were so unsatisfied with Claude Code.
I will add though, on 2 and 3, during most of the coding I do in my day job as a staff engineer, it’s pretty rare for me to encounter deeply interesting puzzles and really interesting things to learn. It’s not like I’m writing a compiler or and OS kernel or something; this is web dev and infra at a mid sized company. For 95% of coding tasks I do I’ve seen some variation already before and they are boring. It’s nice to have Claude power through them.
On system design and architecture, the problems still tend to be a bit more novel. I still learn things there. Claude is helpful, but not as helpful as it is for the code.
I do get the sense that some folks enjoy solving variations of familiar programming puzzles over and over again, and Claude kills that for them. That’s not me at all. I like novelty and I hate solving the same thing twice. Different tastes, I guess.
The "creating something" idea... That's more complex. With agentic coding something can be created, but did I create it? Using agentic coding feels like hiring someone to do the work for me. For example, I just had all the windows in my house replaced. A crew came out at did it. The job is done, but I didn't do anything and felt no pride or sense of accomplishment in having these new windows. It just happened. Contrast that to a slow drain I had in my bathroom. I took the pipes apart, found the blockage, cleared it out, and reassembled the drain. When I next used the sink and the water effortlessly flowed away, I felt like I accomplished something, because I did it, not some plumber I hired.
So it isn't even about learning or solving puzzles, it's about being the person who actually did the work and seeing the result of that effort.
The inherent value of creating is something I was missing. Solving puzzles might be part of that, but not all. It's the classic Platonic question about how we value actions: for their own sake, for their results, or for both.
I think we agree that coding can be both, and it sounds like you feel the value for its own sake is lackluster in agentic coding -- It's just too easy. And I think that's the core sliding scale: Do you value creation more for its own sake or for its results? Where you land on that spectrum probably influences how people feel about agentic coding.
That being said, I also think that agentic coding can give enough of a challenge to scratch the itch of intrinsic value of creating. To a certain degree I think it's about moving up the abstraction chain to work more on architecture and product design. Those things can be fun and rewarding too. But fundamentally it's a preference.
I did put in 2 days of work to come up with what Claude used to ultimately do what it did... but when I look at the resulting code, I feel nothing. Having the idea isn't the same as being the one who actually did the thing. I plan to delete the branch next week. I don't want to maintain what it did, and think it should be less complex than it made it.
As someone who enjoys technology, and using it, and can just barely sort-of code but really not, agentic coding must be wonderful. I have barely scratched the surface with a couple of scripts. But simply translating "here's what I want, and how I would have done it the last time I used Linux 20 years ago, show me how to do it with systemd" is so much easier than digging through years of forum posts and trying to make sure they haven't all been obsoleted.
None of it is new. None of it is fancy. I do regret that people aren't getting credit for their work, but "automount this SMB share from my NAS" isn't going to make anyone's reputation. It's just going to make my day easier. I really did learn enough to set up a NAT system to share a DSL connection with an office in the late 1990s on OpenBSD. It took a long time, and I don't have that kind of free time anymore. I will never git gud. It's this, or just be another luser who goes without.
I think of AI like a microdose of Speed Force. Having super speed doesn't mean you don't like running; it just means you can run further and more often. That in turn justifies a greater amount of time spent running.
Without the Speed Force, most of the time you were reliant on vehicles (i.e. paying for third-party solutions) to get where you needed to go. With the Speed Force, not only can you suddenly meet a lot more of your transportation needs by foot, you're able to run to entirely new destinations that you'd never before considered. Eventually, you may find yourself planning trips to yet unexplored faraway harsh terrains.
If your joy in running came from attempting to push your biological physical limits, maybe you hate the Speed Force. If you enjoy spending time running and navigating unfamiliar territory, the Speed Force can give you more of that.
Sure, there are also oddballs who don't know how to run, yet insist on using the Speed Force to awkwardly jump somewhere vaguely in the vicinity of their destination. No one's saying they don't exist, but that's a completely different crowd from experienced speedsters.
> (i.e. paying for third-party solutions)
My experiences are not universal but apart from hardware and maybe $10 for a VPS for hosting, I do not find the need to pay for third-party solutions; I quite like this situation, and I do not find myself particularly constrained taking a little extra time or having to think a bit harder. But, my friend, I must ask, what are LLMs if not third-party solutions with sizable expenditures?I guess if you're in an iterative MVP mindset then this matters less, but that model has always made me a little queasy. I like testing and verifying the crap out of my stuff so that when I hand it off I know it's the best effort I could possibly give.
Relying on AI code denies me the deep knowledge I need to feel that level of pride and confidence. And if I'm going to take the time to read, test and verify the AI code to that level, then I might as well write most of it unless it's really repetitive.
But then it makes me ask if the agents will get so good that craftsmanship is a given? Then that concern goes away. When I use Go I don't worry too much about craftsmanship of the language because it was written by a lot of smart people and has proven itself to be good in production for thousands of orgs. Is there a point at which agents prove themselves capable enough that we start trusting in their craftsmanship? There's a long way to go, but I don't think that's impossible.
It's a different conversation when we talk about people learning to code now though. I'd probably not recommend going for the power tool until you have a solid understanding of the manual tools.
Will he remember to use pressure treated lumber? Will he use the right nails? Will he space them correctly? Will the gaps be acceptable? Did he snort some bath salts and build a sandcastle in a corner for some reason?
All unknowns and you have to over-specify and play inspector. Maybe that's still faster than doing it yourself for some tasks, but I doubt most vibe-coders are doing that. And I guess it doesn't matter for toy programs that aren't meant for production, but I'm not wired to enjoy it. My challenge is restraining myself from overengineering my work and wasting time on micro-optimizations.
But then he changed his tune? Even on LLMs...
I don't raise a single PR that I feel I wouldn't have written myself. All the code written by the AI agent must be high quality and if it isn't, I tell it why and get it to write bits again, or I just do it myself.
I'm having quite a hard time understanding why this is a problem for other people using AI. Can you help me?
I use AI to extract information from documentation and write me bespoke examples, but I'd never feel good relying on code it actually generated without extremely thorough testing and review.
But why would I do vibe coding? I am releasing this code to production systems that will bring the company down if there is a significant error. And my human peers will give me hell for raising terrible code for review.
I have a helpful, endlessly patient junior engineer with superhuman typing speed who will take all of my advice and apply it exactly as a I want it, and write my code for me. When I see errors, I'll tell it, and I'll even ask it to remember why it is a problem in our code base (maybe not others). So it has memory and (mostly) won't do that again.
And I also make sure to apply the same quality to the tests we write together.
Over the last few months I'd say between 50-80% of code being delivered to our repo is "typed" by agents. Humans are still guiding them and ensuring the quality meets our high standards.
I don't really have a grasp on how other people are working with this stuff that they're seeing problems with production code.
There's the new frontier for delivering good or the best products. Less relying on the feels of an experienced programmer and more configuring and creating deterministic tools to define quality.
Unless you get actual joy and enjoyment from writing 42 unit tests for a CRUD API with slight variations for each test. Then go ahead =)
Like just yesterday I started to notice the increasing pressure of an increasingly hard-to-navigate number of Claude chats. So I went searching for something to organize them. I did find an extension, but it's for Chrome, and I'm a Firefox person, so I had Claude look at it with the initial idea of porting to Firefox. Then in the analysis, Claude mentioned creating an extension from scratch, and that's what I went for.
I've never really used JavaScript, let alone created a Firefox extension before, but in a few minutes I was iterating on one, figuring out how I wanted it to work with Claude, and now I have a very nice and featureful chats organizer. And I haven't even peeked at the code. I also now have a firm idea of this general spec of how I want arbitrary list-organizing UI to look+behave going forward.
One of the recent joys I’ve had is having CC knit together separate notebooks I’d been updating for a couple of years into a unified app. It can be a fulfilling experience.
"If your identity is tied to you being an iOS developer, you are going to have a rough time. But if your identity is 'I'm a builder!' it is a very exciting time to be alive."
Plus, there is no rule that says you can't keep coding if it's faster for you and/or it's quicker in general. e.g I can write a Perl one liner much faster than Claude can. Heck, even if it's not faster and you enjoy coding, just keep coding.
I‘m a builder too.
I built a house. Ok, I said an architect what I want and he showed me the plans and I gave him feedback for adjustments and then the plans were given to the construction crew and they built the actual house.
But is was my prompt, so I‘m a builder.
Are you a builder if there is an middleman ? If not, what if the middleman is a tool ? If you use autocad to build the plans, are you still a builder ? What if autocad has a prompt feature, are you still a builder ?
Same with vibe coding, if you don’t write code you just ordered and didn’t code, otherwise all my customers and bosses where coders long before AI because there orders don’t reach much different from today’s prompts. The recipient changed but that doesn’t change the sender.
It’s some kind of Chinese Room but this time for those outside the room.
Over the past couple months, I've created several applications with Claude Code. Personal projects that would've taken me weeks, months, or possibly forever, since I generally get distracted and move on to something else. I write pretty decent specs, break things into phases, and make sure each phase is solid before moving on to the next.
I have Claude build things in frameworks I would've never tried myself, just because it can. I do actually look at the code. Some of it is slop. In a few cases, it looks like it works, but it'll be a totally naive or insecure implementation. If I really don't like how it did something, I'll revert and give it another attempt. I also have other AIs review it and make suggestions.
It's fun, but I ultimately gain little intellectual satisfaction from it. It's not like the old days at all. I don't feel like I'm growing my skill set. Yes, I learned "something", but it's more about the capabilities of AI, not the end result.
Still, I'm convinced this is the future. Experienced developers are in the best position to work with AI. We also may not have a choice.
For work, companies won't support it. Get it done. Fast. That's the new norm.
There should also be a symbiotic relationship at a job. Yes, they get something from me, but I should also get something… learning and some amount of satisfaction… in addition to the paycheck. I can get a paycheck anywhere.
It’s not the “new norm” unless employees accept it as the new normal. I don’t know why anyone would accept a completely one-sided situation like that.
How do you function on a team, where you have to maintain code others have written?
There are only 3 or 4 of us working on most of the code I touch. 3 of us have worked together in some form or another for close to 20 years.
That's where you're wrong. AI can debug code better than humans. I put it on a task that I'd spent months on: debugging a distributed application which had random errors which required me to comb through MBs of logs. I gave Claude the task, a log parser (which it also wrote), and told it to find what each issue was. It did the job in a few minutes. This is a task that was, frankly, just a bit above my capacity with a human brain as it required associating lots of logs by timestamps trying to reconstruct what the heck was going on.
My new worry is that I need to make sure the code AI is writing is more comprehensible not to other humans, but to other AIs in the future, since there's very little chance humans will be doing the debugging by themselves given how bad we are at that compared to LLMs even now, let alone in a few years.
> but I should also get something
What do you want beyond a pay check? If you want to get better at your job, the most important technique you can improve right now is hands down how to interact with an AI to solve business problems. The learning you're thinking of, being able to fully understand code and actually debug it in your head, is already a thing of the past now. In a few years, no one will seriously consider building software that's not entirely AI-written except for enthusiasts, similar to the people currently participating in C obfuscated code competitions. I say this as someone who reluctantly started using AI in anger only a few months ago after hating on it before that for the laughable code it was producing just around 6 months ago (it probably was already good by then but I was not really giving it a chance yet).
Also, when I write code myself, I still ask Claude to review it. It's faster than asking a human colleague to review it, so you can have Claude review often. Just today after a five-minute review Claude said a piece of code I wrote had four bugs, three of which were hallucinations and one was a real bug. I honestly do think it would have taken me a bit more than five minutes to find that one real bug.
Felt flashbacks of playing chess against humans online as a teen by copying moves from a chess engine.
Whats the point haha
I'm going to say something people hate... you're probably holding it wrong. Why do I say that? Because I absolutely felt exactly the way you are feeling. In fact, it can be worse than unfulfilling, it can be even draining.
But I, over time, changed how I used LLMs and I actually now find it rewarding and I'm learning a huge amount. I've learned more technologies (and I do mean learn) in the last year than I have ever in the past.
I think my advice is that if it feels wrong then you shouldn't be doing it that way. But that isn't inherent in using LLMs to help you work. Everyone has different preferences for how they work (and what languages they like, etc). The people using 15 LLMs to build software probably love that but I don't think that's how I want to do it. And that's fine.
How do you think your company's CEO is going to feel when you tell them you could be finishing the software much faster, but you'd rather not, because it feels better to do it by hand?
Just yesterday I was on a call where someone was trying to point to my code as a problem when we suspected a DNS issue. If I didn’t know the code inside and out, I could have easily been steam rolled, because as we know, “it’s never the network”. We found out today it was in fact DNS.
If someone only ever worries about is speed, they’ll likely get tripped up and fall. One guy on my team is all about delivering quickly. He gives very optimistic timelines and gets things out the door as fast as possible. Guess what, the code breaks. He is constantly getting bug reports from everyone and having to fix stuff. As he continues to run into this, he is starting to become a bit more mature and tactical, but that is taking time.
I think the CEO would much rather see the production code be fully tested and stable. I write the frameworks everyone else on the team uses. If my code breaks, everyone’s code is broken. How much will that cost?
I know the code I produce is damn good, and I take pride in my extremely low defect rate. I will not be rushed. I will not be pushed. And I will do so until the day I retire.
Why? Did Claude do a bad job?