Discussion
I Created My First AI-assisted Pull Request and I Feel Like a Fraud
ilc: When you realize that being a great "programmer", isn't about writing the most code, but getting the job done...AI will click as another tool in the toolbox.
winrid: Yeah I mean, now you know how managers feel? :)spend all day talking to people (except it's LLMs) and not sure if you accomplished anything, but people seem happyThe plus side is for your personal things like this you don't have to use it of course!
zem: my advice for anyone in this situation - as the next step. work with claude to understand the context surrounding the change, and how it fits into the existing project. do a deeper dive into whether the change causes a performance regression, see if it's stylistically consistent with similar code, probe whether there is code duplication that you could clean up by pulling out a function. claude can absolutely help with all of this! and at the end of all that, read through the generated code with a fresh understanding of it, and see if you agree with how it was done or whether you might prefer anything to be changed.you will get a proper sense of ownership and of at least having put some work into not delivering slop, though of course there might still be subtle issues that only the people familiar with the codebase would catch.
largbae: This is the wrong way to think about tool use.You wanted this feature for years. You understood the problem, but the amount of time that it would have taken to properly implement and test it held you back from doing it. Obviously, anyone else who wanted this feature came to the same conclusion.This new tool reduced the amount of time that it would take. So you used the tool. You used the tool to bring the feature into existence, checked the tests, and took enough time to ensure that it was good. You didn't lie about your contribution in the PR, and the maintainer deemed it acceptable. And now everyone has this feature!When you eat a strawberry do you feel like an impostor for not growing it yourself?
tptacek: We grew tomatoes last summer. Over the last 2 years, something about tomatoes (and BLTs in particular) really clicked for me; we'd grown tomatoes many previous summers, and I could give a shit, but last summer I cared a lot about our home-grown tomatoes.And I totally did feel less good about BLTs I made with supermarket heirloom tomatoes!It was irrational, but I did feel that way. I get where people are coming from.
bravura: Hot take: We mostly eat garbage tomatoes."*A BLT is a tomato sandwich, seasoned with bacon.*It wasn't until I tasted my first great tomato, at the vine-ripe old age of 22, that I finally understood the true nature of the BLT (and, by extension, why I'd never enjoyed tomatoes on my sandwiches or in my salads). Here we go: A BLT is not a well-dressed bacon sandwich. A BLT is a tomato sandwich, seasoned with bacon. From this basic premise, all else follows."https://www.seriouseats.com/ultimate-blt-sandwich-bacon-lett...
_vertigo: The blog post discusses this point directly. Did you read it?
Spooky23: KkjjjMy perspective on this is that my first real job in 1999 was a DBA. I was an intern and then junior focused on the Oracle and Informix database and optimization of the systems and storage. Basically the Unix sysadmin who grokked database.We had 8 people on that team. The entire scope of what we did for a living was replaced, mostly by 2010 or so. My role was made redundant by improving storage performance and capacity. We had a few TB and lots of blob data. I cared about where data was stored from a disk geometry perspective. Today, I could smoke that infrastructure with my MacBook.The other DBA roles also mostly moved on. ORMs automated a lot of schema work. Engine optimizations eliminated a lot of the operational tuning work that went on. Most of the other stuff moved into adjacent developer roles.Most places have very few DBAs today. That startup today would have had zero.I think the author is being way too hard on himself. He defined a problem, worked with the computer to “scratch the itch” presumably QA’d the result and sent it upstream. That’s valid and useful. The method is different. But the work is solving the problems - and just like crazy kids solved problems with VisualBasic and the real men wielding C++ shook their heads, the AI tools are going to produce alot of shit, but also solve alot of problems.
flashgordon: Wait till you hit your 1000th. And its not just "assisted" but lock stock and barelled!
viccis: I think being a great "software engineer" at a company is about getting the job done. A great "programmer" is about designing and writing great code.
ares623: If I picked it up from someone else's garden without permission then yeah.
prakashrj: I learning more than before. It helps me build things faster. You can still make it robust, efficient, crafty, etc. You have to improve your AI-assisted coding knowledge to achieve all those things.
ergonaught: In much the same way that buying produce makes you a great farmer.
metalcrow: no, it makes you a great chef
worthless-trash: I believe you reinforced the point.
tptacek: I mean, I'm not much of a gardener, but Erin sure is, and I had a direct basis for comparison. Our tomatoes were better, but the supermarket heirlooms were perfectly cromulent.I think the key is just to make sure you're buying them in season, and that they didn't travel far.
number6: Last year I got two coworkers. My first in terms of coding. First I looked at everyone code request, but it soone overwhelmed me. We got a third and there was no way I could oversee everything and since I got a team of three management gave me other responsibilities on top.I have no idea what they code and how they code it. I only go over the specs with them. Everything got quicker but the quality went down. I had to step in and we now have e2e-Test for everything. Maybe it's too much, but bugs got squashed and catched before we shipped.So that's a win. Before I could test everything by hand. I worked more on things like creating a working release cycle and what tools we should use.With or without AI the situation would have been similar.I became a manager. We move the needle. I don't really get to code anymore and I don't see much of the code. It's strange.
rkagerer: I won't lie, came here expecting to hate on AI, stayed for the awesome discussion on tomatoes.
bravura: Believe me, I came here expecting to dunk on AI-haters, not talk tomato talk.
tayo42: I feel like I need to build a rocket ship or something something to feel like I programmed something cool and feel good about it.
bravura: Yes. I didn't know or understand why I felt meh about run-of-the-mill raw tomatoes this until the Kenji article."Using mealy, off-season tomatoes is the primary unforgivable sin, but when it comes to BLT crimes, that's just the tip of the iceberg lettuce....Off-season tomatoes are grown in warmer climates, picked when underripe, then treated with ethylene gas (a gas that is naturally produced by plants to trigger ripening in fruits) to produce their red color before they hit supermarket shelves. The result is tomatoes that are as bland as they are ruby-red.Truly great tomatoes must be fully ripened on the vine, where they'll continue to develop flavor and sweetness. Look for plump tomatoes, with the heft and give of a water balloon. If you have a choice, look for substantial and meaty heirloom varieties with balanced sweetness and acidity, like Cherokee Purple or Brandywine.Avoid tomatoes that feel light for their size, which means they have more air pockets inside and are typically better for saucing or salads."
eiiot: Farming is a funny example to use, given that it's one of the best examples of an industry that's continually revolutionized by evolving technology. Farming today is about owning the best tractor.
acedTrex: Its hard for me to disagree more, being a great programmer is completely orthogonal to how fast you "get the job done."
whatever1: LLMs have changed completely the time economics of coding. Things that in the past you would never touch because they would not worth the time investment of yours, today can be almost be done in one shot by LLMs.I built a TV OS slideshow for both photos and videos (as far as I know all the apps just go through photos).I have no experience in Apple OSes development and in the past it would had taken me at least a week to just read enough documentation to get started.Now? It took me 3 hours of iterating with an LLM to start from scratch developing and publish the app.
cozzyd: yes, American tomatoes are generally terriblesource, am Romanian.
aroman: I think you missed the point.produce : chef :: code : programmerchefs use produce to create dishes of food; chefs do not generally grow their own food. the point they were making is that the code is actually the means to the end, not the end in itself. to wit: i do not write assembly.
rickydroll: try these varitiesCherokee Purple. Black Krim Black from Tula. Brandywine heck, Almost any black tomato is a richer flavor than traditional hybrids.Heirloom tomatoes are also fantastic for flavors, but they are difficult to grow. Consistent watering, pruning lower leaves to keep disease away, proactive treatment of fungus and bacteria. It's a lot of work, but the results you get when it all comes together, yeah, it makes a fantastic tomato soup, sauce, Caprese salad.I'm starting seedlings this week. I'm probably going to have more tomato seedlings than I know what to do with. Of course, as problems go, I could have worse ones. The problem I'd like to have is growing too many mini watermelons. For some reason, I just can't get any yield, and the squirrels/mice gnaw on them as soon as they are vaguely ripe.My partner is not going to be happy when I rip up most of the lawn in the backyard. She'll probably buy me overalls and a straw hat.
ryandrake: > When you eat a strawberry do you feel like an impostor for not growing it yourself?No, but if I asked an intern to eat it for me, I wouldn't feel like I did anything or experienced anything at all.That's what LLM coding feels like--like I'm not doing anything meaningful. It's like hiring someone to love my kid for me.
echelon: > No, but if I asked an intern to eat it for me, I wouldn't feel like I did anything at all.That's a poor analogy.If I asked an intern to implement a function, I know I did the instruction and that I worked through them. The intern did work, but I did fancy high level work and killed several birds with one stone.Even better analogy: if I'm a film director, I'm working through a lot of people. The DP, the cast, the crew, the AD (though they're my boss, telling me what I can/can't budget for)...The best analogy for AI is the "film director" analogy.There are good directors and bad directors, good films and bad films. No director works alone (unless it's some kind of avant-garde film school project).You wouldn't say a film director isn't doing work. That they can't be uniquely felt through their work. That what they're doing isn't hard, doesn't require talent/taste, and doesn't get better over time.We're all basically becoming film directors.
rmunn: If you buy the variety most often found in American grocery stores (usually labeled as Roma tomatoes), they're terrible. Try the variety labeled as "tomatoes on the vine" (four-digit produce code 4664, which I know from memory, having punched it in to so many self-checkout scanners over the years). They're actually juicy and tasty the way tomatoes should be. Avoid Roma tomatoes, they're cardboard masquerading as a tomato.
what: Roma are not the “normal” tomatoes sold fresh in American grocery stores.
travisgriggs: > When you eat a strawberry do you feel like an impostor for not growing it yourself?I don’t think this is the right question. What you posit is a consumption dilemma. It’s a valid question, but it focuses on what values we might arbitrarily ascribe to how we source what we consume.The OPs dilemma is more akin to giving a cutting board for Christmas that you bought vs handmade. Or some other. I think these cases of how we present what it appears we created is the dilemma OP is facing.
jimbokun: Article addresses that.Author says he does enjoy managing people, challenging them, and seeing them grow and accomplish things they couldn’t before.None of that accompanies “managing” an LLM.
mayukh: I just typed this in and hit send. I feel like a fraud.
andyfilms1: Except, calling it a "tool" is exactly why OP feels bad. Simply phrasing it another way, I.E. "OP paid for a service to implement a feature he wanted," would completely remove the guilt and be more technically accurate.IMO, the way we talk about using AI leads to a lot of confusion and needs to change.
skeptrune: Part of why I originally picked programming as a profession is because it felt like a way to get paid to be more of an artisan craftsman. Ultimately, I don't think it was ever quite that, even before ai.But now post LLM coding agents, its not at all that. Nothing about programming for money resembles artisanship.It might be time to try sewing wallets or something...
tptacek: We did Cherokee Purples (like everyone else), Buffalo Suns, and Indigo Roses.The Buffalo Suns were great, by the way.
rmunn: What are they called, then? Since I took a job overseas over ten years ago, I haven't been in American grocery stores much. What's the "normal" variety called? I distinctly remember Roma being the cheapest, and also worst-tasting, variety, and learned to buy the "on the vine" style instead, but those are the only two that stuck in my memory. What is the one I'm forgetting about?
sublinear: When I read stuff like this, I get concerned about how big the knowledge gaps for some people really are. How crazy is the time pressure that reviewing the code is a big deal? What is there to "learn"? That's not what code review is about.As long as you understand it before committing, you own your version of it now. There's no way in hell I'd waste time playing the slot machine. I am perfectly capable of writing the exact missing parts I need to integrate and move on quickly. How is this any different from SO copypasta a decade ago?This sounds like a completely different problem than AI usage itself.
SAI_Peregrinus: "Globe" tomatoes are much, much more common as generics in American supermarkets. Sometimes also "Beefsteak" variety. Roma tomatoes are almost exclusively used in making sauce.
rdiddly: So yeah, our job that we were all interested in has transformed into a different thing (directing), which some people are also interested in, and some aren't.There's no substantive difference between directing an intern and directing people on a movie, by the way, except the number of people. If you never aspired to direct people, it's all kind of the same, and if you actively dislike it, I imagine directing more people would probably be worse!
annjose: I love the description of the PR. This type of honest statement is the right thing to do - be transparent, be respectful of the time of the reviewer.> This PR adds support for embedded Ruby (ERB) which is commonly used in Ruby on Rails projects. Note that I used heavy assistance from Claude Code and tried to ensure it didn't generate slop to the best of my abilities. All tests are passing and I also visually verified the end result which looks solid to me.> Here's a screenshot that was generated by building the Chroma CLI with the ERB lexer and running it against the test data file with chroma --lexer=erb --style=monokai --html lexers/testdata/erb.actual
At the end of the day, the shareholders care about delivering features, gaining customers, and making money. They
tptacek: At the end of the day, the shareholders care about delivering features, gaining customers, and making money. They don’t care how software is built.They absolutely do care how software is built. They just don't weight the factors the same way you do.Product companies exist to convert software into money by providing utility to users. There's really no part of the transaction that meaningfully involves how much fun you're personally having building it.
slopinthebag: Well they also care to a certain extent because how something is built has a direct impact on the output as well.
tptacek: They care about outcomes. I don't know that you're going to be able to draw an especially compelling line to programmer excitement and fulfillment and any of those outcome factors, though.
ki4kf: "There's really no part of the transaction that meaningfully involves how much fun you're personally having building it."Funny. Steve Jobs was all about fun. Seems to have worked out well given Apple has maintained much of the culture Steve left behind.
akerl_: > Steve Jobs was all about funBy every account I’ve seen, Steve Jobs cared that the users of the product were having fun. He did not care at all how much fun the people building the product had.
ki4kf: It's well documented that people enjoyed working at Apple under Steve - pain and pleasure come together when working on stuff that's insanely great.If your idea of fun is doing no work then you're delusional.Now that we're here, it should also be noted Steve did not make decisions based on 'maximizing shareholder wealth'.Rather doing the right things on the top line (creating great products and telling people about them), the bottom line would follow.Thats the difference between a visionary CEO and a bozo-CEO (enter Zuckerberg, Nadella et al).
akerl_: I think you may be caught in the distortion field.
slopinthebag: I'm agreeing with the other person that they do care about how it's built, not that they care about how much fun the programmers are having...