← Back to context

Comment by envsubst

2 years ago

Almost every top stack overflow answer is wrong. The correct one is usually at rank 3. The system promotes answers which the public believes to be correct (easy to read, resembles material they are familiar with, follows fads, etc).

Pay attention to comments and compare a few answers.

Years ago I tried to answer a comment on StackOverflow, but I didn’t have enough points to comment. So I tried to answer some questions so that I could get enough points to comment. But when looking at the new questions, it seemed to be mostly a pile of “I have a bug in my code please fix it” type stuff. Relatively simple answers to “What is the stack and the heap?” had thousands of points, but also already had tons of answers (though I suppose one of the reason why people keep answering is to harvest points). I was able to answer a question on an obscure issue that no one had answered yet, but received no points.

Then I saw that you could get points for editing answers. OK, I thought, I can get some points by fixing some bugs. I found a highly upvoted post that had code that didn’t work, found that it was because one section had used the wrong variable, and tried to fix it. Well, the variable name was too short to meet the necessary 6 characters to edit the code (something like changing “foo” to “bar”).

I went to see what other people did in these situations, and they suggested just adding unnecessary edits in order to reach the character limit.

At that point, I just left the bug in, and gave up on trying to contribute to Stack Overflow.

  • I was active on the statistics Stack Exchange for a while in grad school. There were generally plenty of interesting questions to answer, but the obsession some people (the most active people, generally) had with the points system became really unpleasant after a while.

    My breaking point was when I saw a question with an incorrect answer. I posted a correct answer, explained why the other answer was incorrect, and downvoted the incorrect answer. The author of the incorrect answer then posted a rant as a comment on my answer about how I shouldn't have downvoted their answer because they were going to fix it, and a couple other people chimed in agreeing that it was inconsiderate or inappropriate of me to have downvoted the other answer.

    I decided Stack Exchange was dumb and stopped spending time there, which was probably good for my PhD progress.

    • The trick to getting a lot of reputation on Stack Overflow and the like is to have posted a long time ago and then just leave it alone.

      I was quite active on stack overflow back around 2010, asking a lot of questions, answering questions when I knew the answers, and so on. The idea of getting a gold badge seemed wildly crazy, and someone who had one (or even two!) was clearly a sign that they knew what was what. I used it for a while, never made much of a reputation, but did manage to earn a small handful of silver badges which I was quite proud of.

      Then I forgot about it for quite a while.

      Fast forward to today. My reputation chart just keeps going up at a steady linear rate. At this point I am in the top 3% of users with 14,228 reputation and 25 gold badges. I haven't been active in a decade. I don't know what most of my badges even are.

      ---

      Most of my reputation comes from my questions. In case you're wondering what a top-3%er's top questions looks like, they are:

      Apr 15, 2011 (207) -- CSS: bolding some text without changing its container's size

      Aug 19, 2009 (110) -- How long should SQL email fields be? [duplicate]

      Jun 29, 2010 (89) -- php: check if an array has duplicates

      Jul 3, 2010 (63) -- centering a div between one that's floated right and one that's floated left

      Jan 5, 2010 (44) -- CodeIgniter sessions vs PHP sessions

      Apr 12, 2011 (40) -- Java: what's the big-O time of declaring an array of size n?

      Jan 11, 2011 (28) -- Javascript / CSS: set (firefox) zoom level of iframe?

      Jul 15, 2010 (25) -- Javascript: get element's current "onclick" contents

      Aug 22, 2009 (21) -- SQL: what exactly do Primary Keys and Indexes do?

      Jul 3, 2010 (20) -- Getting the contents of an element WITHOUT its children [duplicate]

      For anyone keeping score, that last one one was marked as a duplicate of a question that was asked a year after mine, and which seems similar on the surface to someone who does not have a good understanding of the DOM structure but is actually not the same thing.

      5 replies →

  • > I suppose one of the reason why people keep answering is to harvest points

    It's interesting to see some of the top (5- or 6-digit SO scores) people's activity charts.

    They usually have a 3-5-digit answer history, and a 1-digit question history, with the digit frequently being "0."

    In my case, I have asked almost twice as many questions, as I have given answers[0].

    For a long time, I had a very low SO score (I've been on the platform for many years), but some years ago, they decided to award questions the same score as answers (which pissed a lot of people off), and my score suddenly jumped up. It's still not a top score, but it's a bit less shabby.

    Over the years, I did learn to ask questions well (which means they get ignored, as opposed to insulted -an improvement), but these days, I don't bother going there, anymore.

    [0] https://stackoverflow.com/users/879365/chris-marshall

  • If you get enough points on one of the more niche and less toxic StackExchange sites, it'll also let you comment, vote, etc. network-wide.

    I had gotten most of my points by asking and answering things about Blender workflow/API/development specifics, so I got to skip some of the dumb gatekeeping on StackOverflow.

    Worldbuilding's fun, too­— Codegolf's not bad either, if you can come up with an interesting way to do it— Arquade looks good, and so does Cooking— Literature, English, Scifi, etc look interesting— If you program software, I suppose CodeReview might be a safe bet.

  • Yeah ... the extra critical nature of SO is why their lunch is being eaten by LLMs. I once had a buddy who is now super duper senior at Amazon working on the main site to ask his Q on SO and he flat out said no because he'd had hostile interactions before when asking questions. Right or wrong the reputation that they've developed has hurt them a ton.

  • >it seemed to be mostly a pile of “I have a bug in my code please fix it” type stuff.

    it's mostly people asking you to do their comp sci homework.

  • The edit queue was sitting at over 40k at one point.

    Unfortunately people trying to game the system creates enormous work for those who can review.

    (Not saying you were doing anything wrong just pointing out why there are automated guards)

  • You need to focus on niche tags to find worthwhile unanswered questions. Browsing the $foolang tag is just for the OCD FOMO types who spend their day farming rep.

Back in ye olden days, almost every answer involving a database contained a SQL injection vulnerability.

  • To their credit, a lot of people went back a decade later and fixed those. Although it doesn't stop people from repeating the mistakes.

    I just got beaten up in HN for asking how the hell sql injection is still a problem. People get defensive, apparently.

    • Sounds about right.

      Not even a few years ago I worked with people who insisted it was ok to write injection unsafe code if you knew for sure that you owned the injected values. Didn't matter that maybe one day that function would change to accept user-supplied data, that's not their problem! It was a Rails app and they were literally arguing wanting to do:

          .where("id = #{id}")
      

      over:

          .where("id = ?", id)
      

      in those certain situations. So, you know, it takes all kinds, I guess.

      18 replies →

    • > I just got beaten up in HN for asking how the hell sql injection is still a problem.

      It's possible for developers to think they're actually doing the right thing, but it turns out they're not.

      https://www.npmjs.com/package/mysql#escaping-query-values

      > This looks similar to prepared statements in MySQL, however it really just uses the same connection.escape() method internally.

      And depending on how the MySQL server is configured, connection.escape() can be bypassed.

      1 reply →

    • Hi! Sorry to report this, but I've pushed a SQL injection vuln to prod when I was still very green.

      In my defense, we trusted the input. But that's post-rationalisation, because I simply didn't know what I was doing at the time.

      It gets worse. If I'd done it properly, my senior would have beaten me up in code review for "complexity". That was a man who would never use a screwdriver when a hammer was already in his hand.

      8 replies →

    • People who don't understand things often get cranky when they're told it's easy. Seems fair though, it does seem rude to tell someone missing a leg it's easy to run... But it also seems rude to get upset at someone who's good at something they've studied so perhaps everyone is bad at understanding the person they're talking to, and people should assume more good faith.

      5 replies →

Good thing we trained all those AIs with these answers.

  • What if that was the goal all along? Time traveling freedom fighters set up SO so that the well for AI would be poisoned, freeing us from our future overlords!

  • StackOverflow and those AIs optimise for the same thing - something that looks correct regardless of how actually correct it is.

A couple months ago, someone commented that one of my answers was wrong. Well, sure, in the years since answering, things changed. It was correct when I wrote it. Otherwise it wouldn't have taken so long for someone to point out that it's wrong. The public may have believed it to be the correct answer because it was at that time.

> The system promotes answers which the public believes to be correct

Well.. duh?

Until AI takes over the world, this will be correct for everything. News, comments, everything.

  • Mmm... no? StackOverflow is powered by voting. Not all forums work like that (it was a questionable choice at the time StackOverflow started).

    I've been a moderator on a couple of ForumBB kind of forums and the idea of karma points was often brought up in moderator meetings. Those with more experience in this field would usually try to dissuade the less experienced mods from implementing any karma system.

    Moderators used to have ways of promoting specific posts. In the context of ForumBB you had a way to mark a thread as important or to make it sticky. Also, a post by a moderator would stand out (or could be made to stand out), so that other forum users would know if someone speaks from a position of experience / authority or is this yet to be determined.

    Social media went increasingly in the direction of automating moderator's work by extracting that information from the users... but this is definitely not the only (and probably not the best) way of approaching this problem. Moderators are just harder to make and are more expensive to keep.

  • I hold little hope that LLM's will help us to reason through "correctness." If these AI's scourge through the troves of idiocy on the internet believing what it will according to patterns and not applying critical reasoning skills, it too will pick up the band-wagon's opinions and perpetuate them. Ad Populum will continue to be a persistent fallacy if we humans don't learn appropriate reasoning skills.

    • They've already proven that LLMs are capable of creating an internal model of the world (or, in the case of the study that proved it, a model of the game it was being trained on). If LLMs have a world model, then they are fully capable of generating truth beyond whatever they are trained on. We may not be there yet (and who knows how long it will take), but it is in principle true that LLMs can move beyond their training data.

  • AI isn’t going to do better in current paradigms, it has exactly the same flaw.

  • Of course, consensus is a difficult philosophical topic. But not every system is based on public voting.

I sure hope people don’t copy stuff from SO before they understand what the code does.

  • people are writing entire programs with ChatGPT. these are the same people that previously would copy&paste multiple SO answers cobbled together. now, it's just a copy&paste the entire script from a single response.

> easy to read

Sounds like you're counting that as a negative. Obviously it depends on the use case, but more often than not I'll lean towards the easier to read code than the most optimal one.

  • Easy to read is good, but it doesn’t trump correct.

    • Sure, but it's also generally a lot easier to tell if a simple code is correct (the loop over powers of 10) than the more complex ones (using log and pow); especially when it comes to edge conditions.