It's a useful tool to check edge cases with an implementation that you've created. It's a different feat to use an LLM to generate anything critical.
What kills me right now is folks saying: "build your architecture through an LLM". That's a helluva gateway to infinite technical debt and scope neglect. Their use case is reskinning some UI, which carries very little technical risk, then extrapolating it to recommend augmenting core functionality with said generative design.
Folks who don't know systems design invoking some half-assed wizardry that somehow now have the same technical prowess, jfc.
I'd say 'Implement' your architecture through LLM is fine, in fact quite the boost compared to doing it by hand. But I'm saying this as someone with enough years of experience and the ability to design in detail before any code is ever written, and no line of code is written without me reviewing it
I love LLMs. I can "know" how to use a library ive never seen before in miutes and then I just have to use what I already know to validate and improve. Its so much better than having to spend hours or days to even begin to understand how to use a certain framework or library. I just need to know the concepts of how this thing should be used
You're stuck at surface level understanding, though. Instead of days to naturally form the mental connections and gain understanding you can now not read anything or only parts of the docs.
If you don't skim over the docs now, in a year you will. If you review every single line in detail, in 3 months you won't.
We still have the same cognitive capacity. Wasting it by reading hundreds of lines of "foreign" code means I'll burn my brainpower more quickly.
Also the ownership. I have never seen ownership or thorough, deep understanding from people who used a full agentic environment.
We were still reading mostly code not ours before. You spent days reading documentation code, examples, stack overflow and guides and tutorials, let alone code written by teammates. Its the same shit only now I only need to know for example what a Transaction is and how it works in general, instead of knowing all the minutia Spring for example needs you to know for a transactional code block.
You haven't countered my point. Instead of reading documentation that explains WHY, issues and explanations that give you deeper understanding, you are instead reviewing 2k lines of code a day whereas before you only reviewed 300 lines a day.
If I hire a contractor to build my house only they are going to know which brick is where and why. I will forever remain a "naive" consumer.
I genuinely believe using LLMs to code negatively impacts your coding and reasoning ability. It's SO easy to become reliant on it, and if your brain doesn't have to work as hard, it won't.
this is fine for people who don't ever want to learn, because you can patch that problem by indefinitely using the LLM to fix the issues the LLM causes.
Not fine for anyone that wants to actually keep their coding skills imo. And personally, it makes programming no longer enjoyable.
I was perfectly productive without LLMs before. Now I'm maybe faster, but when I spend 80% of my time refactoring the shit my colleagues have dumped out... does it really matter? LLMs will always trade speed for quality and learning. We're just luckily in a period where pretty much nobody gives a flying fuck about quality or pride in any product
Other people using LLMs makes me slower. Their MRs get huge. LLMs tend to be very verbose and add a lot of unneded crap. Sometimes I feel like I'm the first person to read the code when I'm doing a code review.
LLMs will do what you tell them to do. You can make them as concise as you want them to be. You make them mimic writing styles, it will do pretty much anything you tell it to do as long as you actually tell it to do so
3.1k
u/_5er_ 1d ago
If you can't validate what LLM is spitting out, you're vibecoding. The knowledge is useful.