Personally I am glad I learnt programming before StackOverflow! Precisely because it meant I had to learn to figure things out myself.

I still use StackOverflow and LLMs, but if those things were available when I was learning I would probably not have learnt as much.

I started programming before stack overflow, was never any good (still am not to this day), but I was always scared of asking questions on stack overflow. I felt like there was a certain amount of homework expected when you ask a question and usually by the time I did enough work to post a question, it was moot because I would have solved my problem usually by stringing together two or more stack overflow questions to understand my problem better.

The change with LLM is I can now just ask my hare brained questions first and figure out why it was a stupid question later

Of course you’re supposed to put in work, that’s how you learn. You have to think through your problem, not just look at the back of the math book to copy the answer.

The problem with Stack Overflow is not that it makes you do the work—that’s a good thing—but that it’s too often too pedantic and too inattentive to the question to realise the asker did put in the work, explained the problem well, and the question is not a duplicate. The reason it became such a curmudgeonly place is precisely due to a constant torrent of people treating it like you described it, not putting in the effort.

Oh, yeah.

SO is infamous for treating question-askers badly.

I have used LLMs for some time, and have no intentions of ever going back to SO. I get tired of being insulted.

> The only stupid question is the one you don't ask.

- A poster on my old art teacher's studio wall.

SO wasn't even the first site with this phenomenon. IMO SO is way more cordial than some of the forums from the early 00s. And before that, many irc channels were known for being brutal to people coming for help. I was part of the problem there until I realized there was a problem and decided to change my approach, but it took years to unlearn what I had picked up from other channels ops.

I was quite the troll, in the UseNet days.

One of the reasons that I strive to behave, hereabouts, is that I feel the need to atone.

It can be quite difficult to hold my tongue/keyboard, though. I feel as if it’s good exercise.

Wikipedia does the same to those who contribute

StackOverflow intimidated me for reasons you say. What is it with the power trip that some of these forum mods have?

Basic human nature. Many folks that are hard on others, have been the recipient of bullying, themselves. It’s a self-perpetuating thing.

“Breaking the chain” is quite difficult, because it means not behaving in the manner that every cell in your body demands.

I can't check, but I don't think I've ever asked questions on StackOverflow, or even Reddit. Maybe I'm lucky, but my searches have always given me enough leads to find my own solutions or where to find them. There's a lot of documentations and tips floating around the internet. And for a lot of technologies, the code is available as well (or a debugger).

Maybe those are two sides of the same coin, question-askers are treated harshly because the priority of the site isn't to help them, the priority is to help the people who are searching up similar questions and browsing the threads. It makes perfect sense from a business perspective, because for every question-asker you'll have many more question-browsers.

I always enjoyed documenting things. So got great delight out of carefully asking the few questions I was really stuck on on stack overflow... and then half the time later coming up with a solution and adding that good answer.

(Mostly this ended up being weird Ubuntu things relating to usecases specific to robots... not normal programming stuff)

I originally learned programming by answering questions on StackOverflow. It was (unsurprisingly) quite brutal, but forced me to dive deep into documentation and try everything out to make sure I understood the behavior.

I can’t speak to whether this is a good approach for anyone else (or even for myself ~15 years later) but it served to ingrain in me the habit of questioning everything and poking at things from multiple angles to make sure I had a good mental model.

All that is to say, there is something to be said for answering “stupid” questions yourself (your own or other people’s).

> ... "it served to ingrain in me the habit of questioning everything and poking at things from multiple angles to make sure I had a good mental model."

Way back in "Ye olden days" (Apple ][ era) my first "computer teacher" was a teacher's assistant who had wrangled me (and a few other students) an hour a day each on the school's mostly otherwise un-used Apple ][e. He plopped us down in front of the thing with a stack of manuals, magazines, and floppy discs and let us have at it. "You wanna learn computer programming? You're gonna have to read..." :)

Pretty much this. Even in topics I'm decently knowledgeable, I feel like the vibe from SO answers will be "just read the spec" or source code; so I usually was able to string other answers together.

With LLMs you can start with first principles, confirm basic knowledge (of course, it hallucinates but I find it's not that hard to verify things most of the time) or just get pointers where to dive deeper.

[deleted]

That's interesting. When SO came out, I was a big contributor, all in on getting the karma points and whatnots. Eventually, I realized I was being bullied by a bunch of Europeans who had never actually worked a real job in their entire lives and were, for lack of a better term, "software enthusiasts." Invariably, I would answer something based on actual experience only to get downvoted because some idiot hobbyist thought it was incorrect. The thing about this biz is that there are things that are blatantly incorrect for sure, but all correctness is some shade of gray, highly dependent on particular situations. People who lack experience have no sense of any of that, though.

A second major issue with SO is that answers decay over time. So a good answer back in 2014 is a junk answer today. Thus, I would get drive by downvotes on years old discussions, which is simply irritating.

So I quit SO and never bothered to answer another single question ever again.

SO has suffered from enshitification, and though I despise that term, it does sort of capture how sites like SO went from excellent resources into cesspools of filth and fools.

That LLMs are trained on that garbage is amusing.

I haven't answered on SO since someone edited my answer to say something I didn't write. It was minor, but I don't like that on principle. It adds huge personal risk to every question I answer.

My professor at uni said that people who have learned to search for information before the internet came along are the best at searching for information on the internet. My personal experience agrees and I'm very glad I'm one of such people.

Not to out myself as old, but I learned to program before ChatGPT before stack overflow and before Google. There are some here that are even older. There were paper books with indexes. Indexes!

That way of life is gone for me. I've got a smartphone and I doomscroll to my detriment. What's new and fascinating to me is the models themselves. https://fi-le.net/oss/ currently trending here is the tip of a whole new area of study and work.

I've been programming for 46 years. The first program I wrote was on a piece of notebook paper, in anticipation of getting my first computer a few weeks later (Atari 400).

I haven't even been born for more than half of that time. My first programs were also written on paper. It isn't only age.

> Wasn't that the boxy little thing that had "Cartridge BASIC" on a little brick thing that you plugged in just like Atari videogame cartridges on the Atari 5200 game console?

How has your experience with AI been?

Not great, honestly. It's rather like pulling a lever on a slot machine. And I'm not really into gambling.

Good lord, I'm not glad.

It was horrible. Because it wasn't about "figuring things out for yourself." I mean, if the answer was available in a programming language or library manual, then debugging was easy.

No, the problem was you spent 95% of your debugging time working around bugs and unspecified behavior in the libraries and API's. Bugs in Windows, bugs in DLL's, bugs in everything.

Very frequently something just wouldn't work even though it was supposed to, you'd waste an entire day trying to get the library call to work (what if you called it with less data? what if you used different flags?), and then another day rewriting your code to use a different library call, and praying that worked instead. The amount of time utterly wasted was just massive. You didn't learn anything. You just suffered.

In contrast, today you just search from the problem you're encountering and find StackOverflow answers and GitHub issues describing your exact problem, why it's happening, and what the solution is.

I'm so happy people today don't suffer the way we used to suffer. When I look back, it seems positively masochistic.

>I'm so happy people today don't suffer the way we used to suffer.

TBF Ali bugs in some framework you're using still happens. The problem wasn't eliminated, just moved to the next layer.

Those debugging skills are the most important part of working with legacy software (which is what nearly all industry workers work in). It sucks but is necessary for success in this metric.

My point wasn't that the bugs don't exist anymore. Obviously they still do.

My point is that I can frequently figure out how to work around them in 5 minutes rather than 2 days, because someone else already did that work. I can find out that a different function call is the answer, or a weird flag that doesn't do what the documentation says, or whatever it is.

And my problem of it taking two days to debug something is eliminated, usually.

I don't know that it's that much easier today. I ran into lots of odd issues with Next.js and authentication and there wasn't a whole heck of a lot of useful info out there about it. Github does help, but you have to wait for the devs to reply.

There are tons of obfuscated Java jar libraries out there that are not upgradeable that companies have built mission critical systems around only to find out they can't easily move to JVM 17 or 25 or whatever and they don't like hearing that.

>My point is that I can frequently figure out how to work around them in 5 minutes rather than 2 days

Guess I'm just dumb then. I'm still taking days to work around some esoteric, underdocumented API issues in my day-to-day work.

Guess you missed my use of the words "frequently" and "usually", which I intentionally used instead of "always".

I guess I should have used "frequently" and "usually" when describing that I constantly run into problems relating to API's that cause mini-rabbit holes.

The thing is these API's are probably just as massive as old school OS cosebases, so I'm always tripping into new landmines. I can be doing high level gameplay stuff one week. Then the next week I need to figure out how authoring assets works, and then the next week I'm performing physics queries to manage character state. All in the same API that must span 10s of millions of lines of code at this point.

It's true that the time figuring out the buggy behaviour would now be less, but the buggy API doesn't go away only, because it exists on Github. If you would be able to change the source code now, you would've been able to fix it back then.

All the while having some dolt of a PM asking for status updates.

[deleted]

I also learned to program in the era of Internet and then early SO. I didn't learn to just RTFM until much later, and when I did it was an epiphany.

> Personally I am glad I learnt programming before StackOverflow!

I have not, but at the beginner level you don't really need it, there are tons of tutorials and language documentation that is easier to understand. Also beginners feel absolutely discouraged to ask anything, because even if the question is not a real duplicate, you use all terms wrong and thus get downvoted to hell and then your question is marked as a duplicate to something, that doesn't even answer your question.

Later it's quite nice to ask for clarifications of e.g. the meaning of something specific in a protocol or the behaviour of a particular program. But quite quickly you don't actually get any satisfying answers, so you revert to just read the source code of the actual program and are surprised how easy that actually was. (I mean it's still hard every time you start with a new unknown program, but it's easier than expected.)

Also when you implement a protocol, asking questions on StackOverflow doesn't scale. Not because the time you need to wait for answers; even if that were zero, it still takes to long time and is deeply unsatisfying to develop a holistic enough understanding to write the code. So you start reading the RFCs and quickly appreciate how logically and understandable they are. You first curse how unstructured anything is and then you recognize that the order follows what you need to write and you can just trust the text and write the algorithm down. Then you see that the order in which the protocol is described actually works quite well for async and wonder what the legacy code did, because not deviating from the standard is actually easier.

At some point you don't understand the standard, there will be no answer on StackOverflow, the LLM just agrees with you for every conflicting interpretation you suggest, so you hate everything and start reading other implementations. So no, you still need to figure out a lot for yourself.

I can still remember learning my first "real" programming language (Turbo Pascal[1]) in 1990, entirely out of a book! It took much longer to figure things out entirely on my own when I was stuck on something, but once I figured it out and overcame it I'd spent enough time working through it to gain a thorough understanding of whatever the problem was. Going through this process eventually gave me a much greater understanding of programming as a whole and made it much easier to pick up new languages. I fear this will be lost on a generation growing up with LLMs.

(1)https://archive.org/details/borland-turbo-pascal-6.0-1990