I won't be vibe coding anymore: a noob's perspective
132 comments
·April 23, 2025captainkrtek
kmac_
I'm using AI for grepping, analyzing flow, finding cross-project dependencies, etc. It provides a significant speedup. But the generated code is mediocre at best. Changes look like patches on fabric, not woven threads. AI generates too much redundant code.
normie3000
How do you use AI to grep?
kmac_
Grepping is an oversimplification: I ask for specific use cases, for listing all code paths that perform some action, etc. It works really well.
DrFalkyn
Maybe for translating a natural language query into a regular expression that can be ingested by grep.
jey
I’ve had good results using Claude Code by specifically coaching it on how its implementation should be. It’s not always perfect and sometimes I do have to try again, but it’s remarkably effective when given enough guidance.
If only I could figure out how to reliably keep it from adding useless comments or preserving obsolete interfaces for “backward compatibility”…
jerkstate
Me too, I’m using Roo Code and have substantially updated the system prompt to describe the project standards, correct way to restart the services and inspect the logs, specific hints about the frameworks im using and how to use DI and patterns, like think about what kind of code it’s writing and where to put it in the project structure, admonitions not to do certain things it would otherwise do (like in Python it’s common for it to generate code to import inside of functions which can cause runtime errors). I’m experimenting with a tree sitter MCP to see if I can make it aware of the structure of the entire project in a more compact way without all of the code in the context window, we will see where that goes.
Anyways, a year or two ago, the state of the art models couldn’t do math, and the image models couldn’t render hands or text, and those problems are broadly fixed, and I pretty much expect vibe coding to dramatically improve in the next year or two.
benwills
I haven't used Claude Code, but I have used Windsurf, Cursor, and Continue. They all do well with their own "rules" files. I essentially understand that as something similar to a System prompt sent before a chat session. I even have pretty specific rules on styling that are unique to me, and it generally follows those.
It's also worth asking what rule it would need in order to follow the rule. On occasion, a rule I've added isn't quite followed. So I'll respond immediately pointing out what it did, that the rule is in the file, and then will ask it to tell me how I should modify, or add to, the rule in order for it to be easier to follow.
I'd imagine Claude Code has something similar that might be worth looking into.
danielbln
Another thing Claude loves is fixing type errors by vomiting up conditionals 10 levels deep that check for presence, and type, and time of day, and age of the universe before it fixes the actual type issue..
karmakaze
> as i was lying in bed on a sleepless night. i realized i hadn’t learnt a new concept in weeks. i had built a few useful apps with ai, but a nagging question kept me awake - what was the point of it all if i didn’t learn a thing?
A succinct post illustrating that vibe coding is to become a cog that will be the first to be replaced by the AI you use. It's a temporary, automatable job--like entering a career in warehouse package handling with robots due sooner than later.
Code or code not, there is no Vibe coder.
gh0stcat
And if you're not doing it to get a job, it's either much better or worse, though I suspect worse. The other buckets are likely that you're doing it to learn something new (which you won't retain anything and thus it's a waste of time) or you are only interested in the end product, which will be subpar compared to comparable professionally developed products. It's hard to see a good use case for "vibe coding" beyond viral examples like the flight simulator game made by an influencer.
Terr_
"Vibe coding", handle-turning, button-pushing...
magicink81
One problem I have is that AI is writing code I don't understand completely, yet I'm still responsible for it.
Vibe coding seems like an echo from the future.
foo_barrio
This has been the majority of my professional coding experience since the 90's ::shrug::. Having to take ownership of some Java Spring application felt a lot like stepping through an assembly program or some random ROM. Each line of code just returns values and modifies a bunch of other stuff at the same time and you slowly build up a mental model of what it's doing and what it's trying to do!
pacomerh
The way I approach is, I try to design or solve the issue first to the best of my ability, then I let the LLM give me its solution. Compare and take whatever is useful. I know this is not the most effective way, but it's the way I feel like I'm still thinking and not becoming super dependent.
i_love_retros
I find that even though I have to spend time understanding what the llm wrote, it's still faster and less energy sapping than if i write the code myself.
Plus I just get the LLM to write tests for it's code and I make sure the coverage is complete.
But it does make me feel uneasy still, like a dirty little cheat.
alabastervlog
It's like importing libraries.
... but without all the signs we look for as proof that a given library must not be too bad, since those signs are traces left by developers and by other users of the library, and LLM-generated code doesn't have any other users (I mean, to the extent it's copying existing code, kinda, but it'll be remixed and removed from its original context, so good luck tracking down the source and double-good-luck figuring out if any proof of quality found there is relevant to what you've got)
asdsadasdasd123
i've learned a ton from ai suggestions, but right now its like 5-10% of suggestions. If that number was any higher i might not have the motivation to open the black box
CharlesW
> One problem I have is that AI is writing code I don't understand completely, yet I'm still responsible for it.
With vibe coding, you are as much a reviewer/editor as an author, and as an editor should never accept generated code that you don't understand. Happily, the same technology that generated the code can explain the code.
azthecx
No, with vibe coding you are not a reviewer an editor or an author, quoting from the source:
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.
...
I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it.
jey
Odd. How can one get the vibes without looking at the code? Like gleaming diamond vibes versus confused spaghetti vibes.
CharlesW
> No, with vibe coding you are not a reviewer an editor or an author, quoting from the source:
That was the joke, which Karpathy found "quite amusing" and "not too bad for throwaway weekend projects". In reality, you won't even get that far with vibe coding if you don't understand what's going on.
InstaPage
[dead]
jckahn
> code I don't understand completely, yet I'm still responsible for it.
Is this different than any given library?
3np
You can and should audit your dependencies.
alabastervlog
I don't think I've ever seen that actually happen, if you mean reading a meaningful amount of the dep's code.
How many teams importing React have even one member who's ever read even a dozen key paths & files in the React codebase? Think it's more than 10%? I'd bet it's closer to 1% than 10%, of teams on which even one member has done that, ever. Do they check the diff for every update? Shit, IME you're lucky if a single person reads the entire changelog before updating, and certainly nobody's reading the diff. Repeat for everything else. Functionally nobody does this, outside niches where small numbers of low-line-count deps are the norm.
Rails, all those imports from Square you used to have to use to cut the "WT actual F is this?" rate in Android dev to something non-crazy making, et c. Basically nobody even skims this stuff, and I don't think the number of businesses willing to pay for their developers to do that is large.
financetechbro
Considering a library is just a component of the application and not the whole application itself. And one can typically understand the inputs and outputs of a library without having to know the detailed functionally of the code behind the library. I would say yes, it is different.
But this of course can still open up potential vulnerabilities or unexpected behavior. The way I see it, there is some level of trust behind the library that it was built competently
mpweiher
"...coding isn’t about the finished product. its a lot like writing. its about the process. its about how you approach a problem. its critical thinking."
For a more comprehensive treatment of this insight, see: Programming as Theory Building by Peter Naur
abnercoimbre
Excellent find. Is this Naur of Backus-Naur fame?
sam-cop-vimes
If one compares software produced by AI with software developed by a "remote team", from the rest of the org's point of view it is the same. It has to go through a QA process and then made available in prod. The real issues start when obscure errors start to happen or there is an outage and suddenly no one knows how to fix it.
For this reason, for a long time to come, AI tools will be an assistant to dev teams who will still have responsibility for fixing issues when the brown stuff hits the fan. To shoulder that responsibility effectively, they will need to have a good understanding of the produced code.
So yes, vibe coding is here to stay but it will not replace software dev teams anytime soon. Dev teams might shrink initially because orgs will think they can save money. The trend will reverse quickly after a few major outages.
josephwegner
> coding isn’t about the finished product. its a lot like writing
This doesn't seem applicable in most contexts. Yes, when I'm coding for fun or purely for learning the finished product is less relevant... but I'd guess the vast majority of code that is written is for a business that _only_ cares about the product. Code is an implementation detail.
If (and this is a _big_ if) AI-based coding can increase developer velocity even as little as 50%, no sane business is going to let their engineers ignore it just because it's not as fun as artisanal code.
Sayrus
> even as little as 50%
Depending on how you measure that velocity (e.g. including security risks, debugging capabilities, ...) even as little as 5% increase is a no brainer for a business. Whether it's AI, powerful laptops, a fully-fledged IDE, an environment with a good dev experience, anything that gives a few percent increase snowballs into millions over an entire workforce.
Whether the current AI capabilities provide that increase without trade-offs that would be too heavy later one is a question that still seems up to debate.
3np
Meanwhile, my last big employer "couldn't motivate the expense" of a hardware upgrade for the most productive dev on the team (who spends a large part of their time waiting for for CI jobs and builds) <1/4 of their monthly pay. That should be a no-brainer and paid off itself quickly.
I do not believe that corps make rational decisions around these matters.
rocqua
I would wager 80% of places that write software have almost trivial ways to get that 5% improvement. Between ci/cd, static checkers, upgrading IDEs, and just aligning practices between everyone, I think you can easily improve at 50% of places.
Those things don't happen because the slowdown required before adoption, and the office politics of convincing everyone to make a change, and then the effort of convincing people that this new thing is what should be changed to.
constantcrying
>I would wager 80% of places that write software have almost trivial ways to get that 5% improvement.
No. Because most of these changes are totally opaque, you don't know what change needs to be made and making it becomes a political problem in the organization. Giving each engineer a subscription to some service is trivial.
constantcrying
If AI increases programmer productivity by just 5% it is easily worth it.
I have no doubt that AI, right now saves me 5% of my time. That is 24 minutes a day I am not searching for something in the documentation of some library.
baq
> Code is an implementation detail.
It’s worse. Code is a liability.
constantcrying
These seem to be terrible reasons to give up on using AI, although they might be valid reason to stop using AI a certain way.
You can use AI in different ways, it is extremely good as documentations. Often to understand how a library works you want a specific example, getting that example and having an AI answer questions about particulars has been very valuable to me and often saved me meaningless wandering through other parts of the documentation or the Internet as a whole.
3np
"Vibe coding" is a very certain way to use LLMs (one where you treat code the same way a junior Java SWE reads generated JVM bytecode), which is what the OP is about. They agree with your point.
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.
...
I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it.
constantcrying
I know. I was commenting about how giving up on that kind of methodology should not mean that you should not be using AI for software development at all.
blackhaj7
That font has reminded me that “aesthetically pleasing” and “readable” are two very different things
loco5niner
I physically felt the dragging in my eyes while reading it
JCattheATM
They should have vibe coded the HTML instead.
billy99k
"that’s when it struck me. coding isn’t about the finished product. its a lot like writing. its about the process. its about how you approach a problem. its critical thinking."
From a business perspective, they don't care about this. They just want it built as inexpensively as possible in a reasonable time frame.
Vibe coding is here to stay.
isoprophlex
Vibe coding is a death trap for juniors just starting out, as it kills critical thinking and understanding what a computer is. And a guaranteed paycheck for people with the experience to clean up the resulting messes. I hope...
caseyy
Vibe coding is what I’m selfishly expecting to take out many projects and keep my principal level swe skills in demand. Someone will have to mop all the vibes up when it’s time to deliver products.
BayArea925
Coding will not be done by juniors anymore. We are quickly progressing to humans no longer needing to learn machine langauage (syntax) and computers better developing code by interpreting human languages (english).
Teams will be led by one subject matter expert, and fulfilled by thousands of agents. I would not be advising anyone under 21 to become a "coder". Studying computer sceince still has value, but coding was the lowest hanging fruit for LLMs.
Once we can do LLM code reviews with high confidence and little error, coding is essentially a dead field.
The closer you are to atoms and further the way you are from bits, the better off you will be in the coming two decades as AI progresses
pests
Same promise all the no-code or low-code app builders claim. Anyone who has done a serious project with LLM help knows it is no where near able to do half the things needed to run a project.
hooverd
God, software is about to get so much worse, isn't it.
trollied
Thanks for the laugh!
hotpepperishot
[dead]
bloppe
Software isn't just built. It has to be maintained over time.
A long, unplanned outage is much more destructive to a brand than a delayed release. Vibe coding prioritizes the latter at the expense of the former.
AlexandrB
I look forward to reading war stories about debugging "vibes" applications during a 3am outage.
alabastervlog
> Vibe coding is here to stay.
I agree, and it's why I'm not worried about running out of paying work as I head into the latter half of my career.
esalman
What is coding without critical thinking?
I never vibe coded, and I don't understand this trend AT ALL.
I read how copilot and such are detrimental to critical thinking, and I am even consciously scaling back on copilot use now whenever possible, and prioritizing Google search, reading documentation, blog posts and stackoverflow now.
rocqua
Vibe coding hasn't really hampered my critical thinking. It just means I get ideas into practice faster, and it means that for new concepts I can get to itterating much faster.
Perhaps I have the concept wrong, because half the time I'm still editing code by hand.
pliuchkin
"I am even consciously scaling back on copilot use now whenever possible, and prioritizing Google search, reading documentation, blog posts and stackoverflow now."
Very soon we will run out of human written articles.
lcnPylGDnU4H9OF
This implies that humans will stop writing such articles, which won't happen. It may be more difficult to find them but some sites will likely cater specifically to this so you know you can just search for that site.
colechristensen
Every time I've tried to get LLMs to create something they quickly get to the point where they fail miserably. It can do boilerplate, it can do straightforward things which have been done a billion times, it can come up with 50 ideas 10 of which are decent and not obvious... but it can't go beyond a certain complexity, it can't use mildly obscure libraries, it can't get major versions of libraries straight, it invents API calls that don't exist.
One of the biggest wastes of human talent is corporations hiring people to solve the same problems over and over and over. Every company has to reinvent so many wheels for themselves because sharing code between for profit companies just isn't done outside of the occasional breaking a whole project off into an open source project. This is what LLMs are good at, the very repetitive boilerplate connecting the dots and doing obvious things. Companies are going to have to retool themselves to only really be doing "the hard part", and the rest left to LLMs. In the same way languages will have to change to accommodate the hard part and the easy part.
Terr_
There is a disturbing overlap between the things LLMs are good at and the things that are deficiencies in framework design, onboarding, or documentation.
If it's really boilerplate, you shouldn't need to get it half-regurgitated from a statistical machine. There should be a generator tool, or a default implementation, etc. Sometimes what you want is already right there in the docs, but nobody wants to look...
esalman
> One of the biggest wastes of human talent is corporations hiring people to solve the same problems over and over and over.
It's not the same human who is doing the same thing over and over though.
I have a toddler. He's learning addition and substraction now. I could had him a calculator or LLM and let him skip the entire learning process and do something productive instead. I don't. Because it'll destroy his critical thinking and ability to do anything productive later in life.
uludag
> Vibe coding is here to stay.
I would say this is true in the same way that copy-paste coding functioned and that vibe coding isn't fundamentally different. It can be a useful approach to a variety of problems.
Having capable, knowledgable, and skilled employees is important to businesses though. If your business is something easily approachable then you are at risk of being outcompeted from companies with more skilled employees. There are truly hellscapes of codebases out there without the glimmer of hope of being worked on with vibe coding alone. On top of that, I'm getting the feeling that vibe coding is a sure way to hellscape your own codebase. Nothing can take the place of critical thinking.
amarant
I'm not convinced the two are necessarily mutually exclusive. Surely a skilled developer could make use of AI to produce stuff faster, while still understanding everything and making sure the code is well written (well generated?)
Haven't really tried vibe coding myself yet, but I'm tempted to give it a go. I imagine stuff like integrating external API's could be really handy, looking through external documentation and creating the correct calls to the correct endpoints is always a huge timesink. Seems like AI should be able to make short work of such tasks
rowanseymour
Yes there are businesses (game companies?) which just want to get a thing out the door, sell it, and move on to the next thing. But I don't think that's how most software businesses function. Usually software is iterated on and maintained, and you've got a problem if nobody has invested time in understanding how that software actually works.
HeyLaughingBoy
Maybe, but the vast majority of software isn't written by, or for, software businesses. It's written by internal teams for businesses whose main product is insurance, or retail sales operations, or cabinet manufacturing, or real estate, etc.
To quote Copilot, "According to recent data, nearly 70% of top economic performers use their own software to differentiate themselves from competitors."
barrell
Just coupled with that quote, that’s like saying publishers don’t care about the writing process, they just care about whether the book sells.
Which yeah, of course, that their job. It’s the authors job to write a good book. The publisher needing to sell books doesn’t contradict or supercede the authors need to write well or develop their process.
femiagbabiaka
Virtually all businesses (even non-tech businesses) balance performance, reliability, cost, and revenue. Outages/bugs/crashes cost money, some can be fatal. They care.
aylmao
"that’s when it struck me. coding isn’t about the finished product. its a lot like writing. its about the process. its about how you approach a problem. its critical thinking."
I like this analogy, because anyone who has written and/or has a habit of writing would attest this is not (only) some ideological claim about developing skills by doing the hard work yourself.
Writing clears up the brain, a lot. It structures ideas, both on the paper and in your brain, in a way you can't structure them any other way. It leads to new ideas, makes you realize mistakes or fallacies, and somehow can make you feel less worried when writing about things that stress you out. The way you write matters too— handwriting not only _feels_ different from typing, in spite of being slower it's sometimes the better tool to write certain things. Part of writing effectively is knowing when the slowness of handwriting is actually what you need— speed isn't always better.
It's often useful and productive to write things, even if no one will ever read them again.
I think it's similar with coding, and in a way I think it's related to something that happens all too often with engineers too. There's a lot of talk about developers having side-projects that are never done, and many see this as negative thing, but I've long held on the contrary, that it is in fact a very healthy thing. Sometimes you just need to code for the sake of organizing your ideas and laying them on the screen, not because you'll sell what you write, or someone else will use it or read it. Heck, often you won't even yourself. But that's fine, often the concretizing on "paper" ideas floating in your head is itself is what you actually need.
Havoc
There is definitely space for a happy medium. Asking AI for individual functions and assembling them like lego blocks allows for a higher level of control and agency while still accelerating things a bit
null
aylmao
+1. Software developers has long leveraged "someone else" writing code for their projects— be that "someone else" another human, via libraries, platforms, frameworks, etc. Or a computer, using codegen tools, compilers, etc. Sometimes it's to save tediousness, sometimes to save time, sometimes to leverage better code than one could've written.
I think AI is best when used in this same way of thinking— not a tool that should handle all the coding for you, but as a very powerful codegen tool that you can leverage in many parts of your project.
holtkam2
I feel like the fundamental bottleneck of software dev velocity will be human brains ability to understand the code being made. We can’t deploy code / packages / systems / apps we don’t deeply understand, no matter if those components were written in 3 weeks by a team of devs or in 3 seconds by GPT-7, we’re still responsible for it when it gets into users hands, and we’re not gonna deploy stuff that we don’t know how it works. Because at the end of the day it’s our necks on the line if something goes wrong and we’re asked to fix it. We can’t just point the finger at AI, which means we’ll always have to understand what we’re putting out there in the world, and that’s essentially what our jobs will be in the future. The one who’s accountable for the software systems put into production.
Using AI to assist in locating the right library function or similar to documentation has been effective to speed up my development, but I really dislike using it to autocomplete whole functions or large swathes of code, because then I have to spend time reading and understanding code I didn't write. This doesn't ultimately feel "faster" when I own what I write.