Ya'll need to stop with this cope. It's not a good look.
Many of the people who are complaining about AI vibecoding today also didn't blindly copy/paste from StackOverflow in the past.
But I often do think across adjacent abstraction levels, because abstractions are (varying levels of) leaky. Modern compilers are after many decades good enough and modern computers fast enough that it is rare that I need to dig into the assembly (but I happens, compiler explorer is in my bookmark bar in Firefox).
Other abstractions are far leakier, it is far more common that I look in wireshark to debug network issues, the application level view is often not enough.
One of the leakiest abstractions currently is LLMs. Maybe in a decade or three they will be good enough, but they aren't yet, that's for sure. At least for the hard realtime systems level programming I do. For code generation they often make enough mistakes that the time spent after review and fixes comes out in the wash, even for simple tools. Their use for bug finding, RAG and similar is however promising.
The fact that you consider deterministic output from a compiler the same as probabilistic output from a LLM makes me think you don't know how either of those things work, even at a very superficial level.
I have a standing challenge to my co-workers that valid compiler errors will be rewarded like a birthday party, with the baked goods, alcohol, or sweets of their choice. It's only been redeemed once, and I've found less than a dozen unreported compiler bugs myself.
Currently the openbsd mailing list for port is currently going through a clang update and one of the main point is looking at all the packages that failed to build. I even took a long look at the usb stack and the audio subsystem of OpenBSD because of an issue I was having with my DAC.
You mean a source that's been tested on billions of PCs over 45+ years?
As opposed to a LLM which outputs code that barely works on my machine™?
Maybe this is not the case if you are doing a dozen throwaway websites, but for anything serious that is an absolute requirement. I work in hard realtime safety critical code, think things like brake controllers, medical devices, auto pilots, etc. In my case industrial control systems. You need to have full control and documentation for your development process.
I learned to debug and built comprehension by typing it in, and built it as a practice. Later in life and career I learned the value of transcription rather than copying and pasting because it at the very least forced me to read and write what I was copying, and built the base and familiarity I needed to learn from what I was copying.
That extends to how I use AI today. I use AI tooling to explore the concept of what I am building, use spec based designs to build solid outlines, and scope individual coding sessions, so that even when I use AI to build it, I have read, edited, and managed the design, and when I run into parts that I don't consider boilerplate I treat it the same way, transcribe what was attempted to understand why it was failing, and make sure I understand what the AI is doing that I haven't done before.
I've never done that; many experienced devs I know have never done that. We barely used it, in fact! The few times I asked a question, the answer was not "Here's a piece of code".
Look, this comment of yours, coupled with a previous comment from you in this thread (demonstrating you don't know the difference between probabilistic and deterministic output) makes it painfully clear you don't do development; or at least you didn't until you were handed a magic "write me a program" tool...
Where does this idea come from that good programmers were ever cool with that?
r/programminghumor mostly. It was always tongue in cheek, but people took it too seriously.
However, the number of times I’ve gone over to help a colleague and realized they were trying to copy/paste code from SO, without even reading the context of the thread is baffling. Like, why did you expect it to work in the first place? I really try to be humble and not make assumptions about people competencies but it’s really hard to have those experiences and not think the average programmer is just an idiot. It’s no wonder AI is helping people when this was the baseline.
I have seen entire multi million dollar operations running off the most horrible PHP spaghetti nonsense.
The base line is far below any floor you are thinking of.
So if you see an answer on stack overflow, read it, comprehend it, and you can pretty easily mentally verify the correctness to a sufficient degree of confidence…
I guess I’m not worth my salt.
Copium from folk who were never developers before, but who now want the badge anyway. Too bad the same badge can be given out to a bright 12 year old who doesn't know the difference between a variable and a type.
I suppose I'd have to admit to not being a "developer" anymore, because developers in the age of AI won't know how to write code. Perhaps I can still hold on to the label "programmer" for a little while longer.
Stack Overflow had it's heyday, but by the time AI came around I already wasn't using it. Stack Overflow for a long time has been inundated with the kind of people who think everything is the XY problem[1], and arrogantly assume they know what your problem is better than you do. Stack Overflow was all-but-useless for at least 5 years before AI broke into the public eye.
With SO copy/paste, you still were undertaking the mental exercise (and reward) of thinking through hard problems, researching solutions, and assembling it yourself.
With AI, you literally outsource most or all of that. The way some people "vibe code", they barely are engaged with any of that process, if at all.
I think about it like I do video games: it's a lot of fun to play them, and while it can be interesting to watch someone else play, it's just not the same.