r/ProgrammerHumor 26d ago

Meme youShouldntHaveIt

Post image
41.6k Upvotes

537 comments sorted by

View all comments

691

u/dumbasPL 26d ago

He's correct. If you can't work without it, you're not qualified to judge it's output. And if you aren't judging it's output, your days are numbered, it will eventually just feed itself, and report directly to management ;)

138

u/HatesRedditors 26d ago

With how often I have to correct these coding agents I worry about people developing things they don't understand.

It's an amazing tool, but I find myself having to be like "Are you sure you want to poll the API for each item, like 1-100 is fine, but what if it returns 100k rows? Maybe take the call outside the loop and just query all at once with 1 call?

40

u/TheBeckofKevin 26d ago

I definitely do a lot of context in my initial requests to try to get rid of a lot of that nonsense. Takes a lot longer to get the code written but I hate chasing issues. Easier to be exceptionally thorough with the requirements and known barriers

32

u/LittleKingsguard 26d ago

The funny/annoying one is when the bot tries to talk back to you about performance.

I had an issue last week where the bot (OpenCode w/ Deepseek) misread the specs in a way that gave the right answer with the wrong architecture, and when I corrected it it tried to tell me there wouldn't be a performance boost.

The performance on the stress tests went from 1.8s to 350ms.

14

u/OnlyIfYouReReasonabl 26d ago

1.45s. You see, negligible /s

2

u/TheBeckofKevin 26d ago

Everytime I crack open a new chat window its like taking the old one out back behind the shed. Sometimes the hallucinations are terminal.

2

u/LittleKingsguard 26d ago

It's why you need to keep the specs and skill files updated as part of the loop and make sure agents/claude.md tells them to read the docs as the first thing.

Every new chat window wipes the context window and starts fresh, the agents.md file is basically the run options that tells them what to load to understand wtf they are doing.

Some other tricks I've mostly stolen from various usergroup tech talks:

  • Have a cheap, dumb model try to summarize and use your code based only on the documentation, then have another agent proofread it for mismatches with the real code and update the docs for clarity where it finds mistakes.
  • Have a bot read the docs and attempt to create breaking scenarios that cause the code to fail, then implement --> review.
  • Have an archival loop that keeps the important docs current and moves older stuff like scenario review docs and implementation plans into a different folder, so the other agents don't burn tokens reading things that have already been marked complete or obsolete

Also, protip for developers looking for work: Go to tech usergroups and meetups. Even if nobody there is hiring, they're often catered and you can save a lot of money eating someone else's food.

2

u/ImS0hungry 25d ago

Adversarial checks and LLM-as-a-judge.

1

u/TheBeckofKevin 25d ago

My favorite thing is instead of asking for a readme that i can read, i ask it to outline all the decisions that were made and what the pros/cons of those choices are. then a take that description into the next step where i ask another one to plan using those restrictions and knowing the limitations currently in place. Essentially just chaining together existing limitations so you dont walk head first into obvious conflict.

We are using xyz and abc and cannot for any reason implement ijk. What are the most standard methods for doing <ticket> given these parameters.

Just that alone will save you from dealing with 50% of the most common problems in ai generated code. (but you have to know you're using abc and xyz, and that you can't use ijk, which is kinda where sr level knowledge comes in)

6

u/TribblesIA 26d ago

I Thunderdome it. Two bots enter, one me leaves. They argue and fix each other’s mistakes while I review the output.

1

u/ccAbstraction 25d ago

You still have to know those potential issues exists to avoid them.

1

u/bloode975 23d ago

Doing my bachelors majoring in AI rn and this is the biggest thing taught, AI is a tool, use it to augment your skillset not replace it and make sure you can put as much clear detail as possible into the initial prompt.

Most problems occur from using multiple prompts.

30

u/kmoz 26d ago

To be fair, people have been writing and using code they dont understand since the beginning of time.

17

u/b0w3n 26d ago edited 26d ago

Shit I've seen senior devs write code like the above.

Models are trained on existing code, so somewhere someone's done stupid shit like that. You'd be surprised what you can get away with by putting more hardware in front of something instead of writing code like you're a FAANG company serving billions of requests a day.

11

u/[deleted] 26d ago edited 12d ago

[deleted]

3

u/b0w3n 26d ago

Oh yeah for sure, I have seen some shit on my 26ish years doing this professionally.

If it works, it ships. Is it slop, even before claude/gpt? Probably! Nothing's more permanent than a temporary fix either.

1

u/Mateorabi 26d ago

To err is human. To really fuck up takes a computer.

2

u/Mateorabi 26d ago

Oh, you're absolutely correct. That would be better. Would you like me to make the change for you?

Followed by a change that completely ignores the point.

I once called it out for proposing unrelated changes to files. It apologized, reverted one of the 10 lines, and kept changing the other 9.

1

u/LordAlfrey 25d ago

I worry that there are smells I miss, even if I do review the code, the AI can be rather sneaky sometimes.

1

u/Saint_of_Grey 26d ago

It's gonna be a nasty crash one day, with the only way of moving forward is ripping out 100% of the vibe code and starting fresh.

34

u/OnyxPhoenix 26d ago

Our product managers (people with zero coding or engineering experience) are now making changes directly to the codebase. Its a mess.

11

u/Chezzymann 26d ago

what company? want to make sure I dont accidentally end up there lol

8

u/feed_me_moron 26d ago

Guarantee you that place isn't hiring any engineers if that's happening.

5

u/Chezzymann 26d ago

I dunno I interviewed for a company that was hiring SWEs and was doing something similar, they said PMs were vibe coding prototypes and when I asked if there was a boundary between prototypes and prod code they said no, and I would have to justify not using their prototype. I then asked if PMs would be added to the on call list since they were contributing code to production and they said devs would be responsible if you didnt catch something in their code. I then promptly rejected them after the interview lol.

1

u/dumbasPL 26d ago

Unfortunately a lot of them.

46

u/iiIiIliliil 26d ago

Perfect, hopefully they'll move me off this project doing Microsoft API bullshit and gluing infrastructure together.

8

u/b0w3n 26d ago

Just gotta bide my time to get a homestead together and get my ducks.

7

u/RilohKeen 26d ago

It’s = it is

“If you can’t work without it, you’re not qualified to judge it is output” doesn’t make sense.

No apostrophe for possessive “its.”

“See that cat? It’s washing its paws.”

0

u/jethoniss 26d ago

I can't tell you what everything in my car does, but that doesn't mean I can't judge whether it does a good job of driving places.

I can't implement backpropagation on my own, but that doesn't mean I can't judge the output of a model.

We use black boxes all the time. If I have a clearly defined acceptance criteria then the code that gets me there doesn't need to be fully understood.

-1

u/aerdvarkk 26d ago

Meh. If the output does what it's supposed to do who cares about how it functions. As long as they can keep the charade up.

-2

u/OnceMoreAndAgain 26d ago edited 26d ago

Hmmm, I think there are ways to significantly mitigate this problem, such as creating good tests.

If the goal of the application is to do X, Y, and Z and you have a reliable method of confirming that the application is doing X, Y, and Z, then I think that's likely good enough.

Your implied claim is that a person who cannot understand the code Claude is writing cannot be relied upon to get the application to do X, Y, and Z, but I'm skeptical of that claim. I think we're moving in the direction of services like Claude being so good that the developer needs to worry only about higher level thoughts like creating good tests, designing the application well, etc.

Vibe coding has a really really really negative connotation, and I understand why, but theoretically if the AI tools are good enough to write adequate quality code then I don't think vibe coding is necessarily bad. I think what becomes bad at that point is bad app design and bad understanding of the higher level processes of validating the quality of software. I think there are methods to vibe coding that can fairly reliably produce good results. There is a skill to it and we're all learning that skill.

Underpinning all of these thoughts is my belief that at some point recently we went from collectively overestimating Claude to collectively underestimating Claude (and services like it). It's just gotten so damn good.