Bad answers on Stack Overflow

Friday 20 July 2012

I answer questions on Stack Overflow a lot, and also in the #python IRC channel. There’s a common dynamic in both environments, I’ll describe it by giving aliases to three participants:

  1. BaffledNewb asks a simple question, but the question itself strongly hints at a misunderstanding of his problem, or of the best possible solution.
  2. HelpfulNewb answers the question literally, giving BaffledNewb what amounts to bad advice, and missing an opportunity to help him understand the big picture.
  3. GrizzledExpert chides HelpfulNewb for answering the question “wrong,” and tries hard to get to the bottom of BaffledNewb’s real problem, or makes an assumption about what he really wants, and gives that answer instead.

At this point, the conversation can go a few different ways, sometimes all at once. Popular next steps are:

  1. HelpfulNewb insists he was merely answering the question, and wonders out loud why GrizzledExpert has to be so obnoxious.
  2. BaffledNewb is outraged that his motives would be questioned, gripes about not being able to get a simple answer, and wonders out loud why GrizzledExpert has to be so obnoxious.
  3. HelpfulNewb points out that of course his answer is usually a bad idea, but perhaps BaffledNewb has unusual, valid, but undisclosed circumstances that makes it a reasonable answer.
  4. HelpfulNewb claims that he never said his answer was a good idea, just a technically correct answer.

All this came to mind again a few days ago when three questions and answers fitting this description appeared on Stack Overflow in quick succession:

There’s really no excuse for giving simplisitic, bad, but technically correct answers to mis-guided questions. I understand the desire to give an answer, to be the helpful knowledgable one. And Stack Overflow in particular inadvertently rewards speed.

But answers like these only cause damage. At the very least, wrap them well with a thick layer of bubble-wrap in the form of cautions, caveats, pointers to likely better ways to solve the problem, and so on.

If the questioner really had one of the unusual circumstances that meant they needed a literal answer to their oddball question, they tend to mention it up front. In my experience, doubting questions like these pays off much more often than it turns out to have falsely accused a curious expert of being a newb, though of course that sometimes happens.

The #python IRC channel on freenode has a bit of a reputation for being full of grizzled experts who can’t answer any question no matter how straightforward without grilling the questioner about their motives and needs. I myself have argued for less of this, and being more trusting of the questioner. (Actually, as I’m editing this, I just answered a question in #python in a way that other grizzleds didn’t like!)

But if you do this kind of answering long enough, you will learn to recognize the misguided question, and push back on it. I don’t feel at all bad about downvoting the answers and calling people on it.

A common failing among GrizzledExperts, though, is being too blunt. When a beginner asks a question, it’s almost never useful for them to get this in response:


That’s too short, too blunt, and is interpreted (perhaps correctly!) as, “you are wrong,” setting up a conflict right from the start. More words always help:

That’s an interesting question, it sounds like having more context would help us answer it well. Can you tell us more about what you are building?

Helping intelligent but lost beginners is not easy, it requires a healthy mix of technical know-how and interpersonal skills. The GrizzledExpert definitely has the first, but often not enough of the second.

My advice:

  • Use more words to fully express what you mean to say.
  • Resist the urge to give the simple but dangerous answer.
  • If the forum allows it, ask questions to get a deeper understanding of the questioner’s need.
  • Don’t be shy about calling a bad answer bad.


Graham Dumpleton 1:12 PM on 20 Jul 2012

My growing discontentment with Stack Overflow is around the fact that it seems that those in the HelpfulNewb category seem to be quicky gaining enough reputation to start voting and closing/deleting questions. A number of times I have seen questions, which although they could have been worded better (poster may not have had English as first language), made sense to me, but because it was outside the scope of what HelpfulNewb knew, they down voted them and in some cases moderators then subseuqently closed them. Plain stupid that that you end up with a question that got closed as confusing where a knowledgable person was able to provide the exact answer to what OP was asking and OP even acknowledged it answered the question. Almost need a down vote system on the activities of a person down voting a question to highlight that down voter was the one who was ignorant and not the OP.

Katie 2:48 PM on 20 Jul 2012

I love this post so much! I wish that the grizzled ones would realize that maybe, just maybe, they're not the best teachers, and not beat up on the new kids when they show up.

guest 6:00 PM on 20 Jul 2012

What I've had a problem with is an asked question with an answer that fixes problem using wrong method or with negative consequences that is marked as correct while the 'right' answer is glossed over, or, sometimes even downvoted.

The other issue I ran into were the 'quickest gun in the west' answerers. They would answer first with a vague answer, then, slowly paraphrase other answers through edits on their answer, later earning the correct answer bounty and then the other answers appear to be duplicates of a portion of the 'correct' answer. This gets worse when someone notices an answer gaining upvotes and converts it to a community wiki to prevent someone from gaining karma.

I uncovered two voting rings - one involving some of the moderators and asked that they take action or delete my account. When my account was deleted, I stopped participating.

The neverending quest for karma and social validation leads people to do whatever it takes, even if it isn't in the overall best interest of the site.

Chris2048 6:15 PM on 20 Jul 2012

I've often asked questions that is the result of a long line of reasoning, and the irc pythonista insists on knowing every detail before even attempting to answer. Sometimes I just want the straight honest answer, and leave the problem solving to me. Sometime I'm suspicious that this behaviour is a) the result of the helper not knowing the answer (or not caring too) and just justifying why they don't as because it's not needed, or b) ensuring that no one is allowed any help in doing things the *wrong* way.

Russell Borogove 6:25 PM on 20 Jul 2012

Yesterday I was in one of these. The bad answers weren't "use a flamethrower"-bad, but when I -1'd them with explanation, one of the "HelpfulNewbs" (with over 10K rep, I might add) went ballistic and gave me downvotes on 8 of my answers on unrelated questions, not to mention more than a few unkind words as regard to my character. Good times.

Moab 6:41 PM on 20 Jul 2012

I post on SuperUser, we can edit other's answers to improve them, we can even edit questions to clarify them if we have enough reps. If this is possible on SO, why not do that instead of growling at bad answers or questions. Most people misunderstand what these sites are really about, most think they are forums which they are not, more like a wiki that can be edited and improved, I agree they need to stop rewarding fast answers, some even accept a poor answer within hours before anyone else has input. The sites need some changes. As far as rude comments they can be reported and are usually removed, retaliatory down votes are just jerks being weenies, not much you can do.

Tobias 6:52 PM on 20 Jul 2012

I don't like "tell us more" as a positive example. It suggests that the questioner just keep talking because he wouldn't know what was important anyway. Well, if the experts know, maybe they should use specific prompts! The bullet points however are good.

Ned Batchelder 7:39 PM on 20 Jul 2012

@guest, @Russell: it sounds like you have indeed seen some very bad behavior. I haven't had that kind of retribution, but in retrospect I wonder why not! I guess I've just been lucky.

@Chris2048: you sound like one of the experts who gets lumped in with the newbs. I'm sorry about that. Perhaps understanding the answerers' mindsets will help you endure that line of questioning better in the future. It isn't personal. IRC is a very difficult medium. As I mentioned in the post, I think the tradeoff is a good one, I'm sorry you have to wait for a quick answer because of it. But when it comes to helping people do things "the wrong way," yes, the experts have opinions about the right way to do things, and they have the right to express those opinions.

@Moab: questions and answers can be edited on Stack Overflow, but there's only so much you can do to correct a bad answer before you are simply rewriting the entire thing. I won't edit a post so that it is no longer the original author's words, for example.

@Tobias: "tell us more" is not a stalling tactic. If you think it is, it sounds like you don't trust the "experts" in the channel in the first place. The people I've seen answering questions in #python genuinely want to help people write better software. Please understand if they don't want to be treated like a google-replacement.

Calvin Spealman 7:52 PM on 20 Jul 2012

I am one of the grizzled "why?" askers, but I have to agree with Ned (never a surprise). It takes a lot of energy to stick with the constancy of the repeat questions and difficulties of helping newcomers, and we tend to release some steam or make it easier on ourselves via said grizzleness. However, for the cause we care about, it is worth the effort to be a little nicer about it.

Chris Allen-Poole 7:53 PM on 20 Jul 2012

I have to say, the overall quality really has started diminishing. I think this largely has to do with the fact that most of the truly newby questions have been addressed meaning that the number of duplicate questions is getting bigger.

@Graham There is nothing preventing the grizzled from voting to re-open the question or, if the question is irredeemable, creating a new question based on the original and answering the new question. They can then link back to the original question and probably get up-votes both for the new question and its answer.

@guest Quickest gun gets even better if you have high rep. You have the ability to answer, delete the answer, edit it, and then re-submit it. Since the "created date" does not change, you can have the "earliest answer" and still do the borgification process. (There are legit use cases: I did this once when an answer was getting a lot of down-votes pretty quickly. After an hour of work benchmarking my answer against the others, I undeleted and appended the benchmarks).

Russell Borogove 8:07 PM on 20 Jul 2012

@guest, sometimes I have a detailed answer in mind, but it's frustrating to get partway through writing it, see the "3 new answers" popup, and see a bunch of other people's half-assed answers getting upvotes, so I will frequently write a "minimum viable answer", submit it, then immediately re-edit it to go into more detail. I may incorporate good points from other answers in the re-edit, but more often the added detail is coming from within. My primary goal on SO is to get a good solid answer in front of people; I don't care all that much if it's mine or someone else's.

Shawn Wheatley 8:17 AM on 21 Jul 2012

Ned, this is probably a point to raise on meta.SO in order for the community moderators to be made aware of and (hopefully) actively do something about.

voo 10:14 AM on 21 Jul 2012

@Shawn Wheatley: I think most "grizzled experts" are quite aware of this problem anyhow - at least I can remember lots of posts about this over the last ten years and as ned demonstrates SO is a great place to survey the whole thing in action.
Also there's a post on meta, where the problem is titled "XY problem" or something; pretty much exactly about this.

On another note: I can't agree with people that say they get thrown into the "newby who doesn't know better" basket when asking for non-obvious answers. Generally I'll explain the problem I have and why the simple, obvious solutions won't work in this case (who knows I could be wrong, has happened ;) ).

Leonardo Herrera 10:53 PM on 21 Jul 2012

I actually love answering this kind of questions. But I've got scalded over a clarification request by the original poster, and even got a downvote (I don't know if the OP was the one who downvote, thought.) Not fun when it happens (thought I got my answer accepted after a while.)

Eliot 6:05 PM on 3 Aug 2012

By definition HelpfulNewb cannot know that their naive answer is 'bad advice'(?)
Perhaps the way to treat it is as if they said "Isn't [bad advice] the obvious answer?"

GrizzledExpert: "While it may seem that [bad advice] is a good idea, it is bad because [...], here is [good advice]"

Chris Wilson 5:39 PM on 6 May 2013

I have seen quite a few SO answers telling the OP that they're wrong to even ask the question. For example, changing fonts in LaTeX.

However brilliant the designers of LaTeX are, there are perfectly good reasons why one might want to change the fonts that it uses, such as to fit in with a corporate style guide. So this is not exactly a case like Ned's, where a direct answer would be "wrong". There are some cases where it would be, and some where it's entirely reasonable.

This GrizzledExpert's answer is highly unhelpful, negative, and offputting to BaffledNewb. Its only saving grace is that he explains the reasons why not to change the fonts, thus allowing the OP to decide for themselves whether to take or ignore the advice.

I agree that a helpful answer that included these caveats would be better than one that didn't. So perhaps it would make sense for SO to allow more than one "correct" answer to a question, splitting the karma.

ChuongPham 3:53 PM on 11 Jul 2015

I have lost count how many times I have upvoted on new poster's question to give them a fighting chance, before a bunch of trolls come along and downvote it again after the original downvote.

You guys couldn't be more right about the anal-retentive nature of SO "moderators" and their Fascist mentality. Read my profile here ( and the first comment by a poster to my question here (
and you'll know why I have just about had enough of SO retards. For the latter URL, this guy ( didn't even give me the chance to finish my question before downvoting it (plus a few others) and rate it as a rant. Eh? As it turned out, my question was one of the most viewed for a thorny topic that has plagued Android since the beginning: How to bloody turn off the mobile network function in an Android device.

The final insult to injury is when I received a private SO moderator message sent to me today containing unwarranted accusations. I have had enough of SO and quit.

Ned Batchelder 4:35 PM on 11 Jul 2015

@ChuongPham: sorry to hear you found SO difficult. You aren't going to win friends with me by using the word "retard" like that though...

Chris Nelson 1:19 PM on 5 Nov 2015

I think the gaming of SO for status points has made me not want to actively participate in asking or answering questions. I sometimes find it useful for research issues, but often a question is half answered or the answer is out of content for all but the narrowest cases and further questions/answers that would help are closed.

Charles 2:15 PM on 5 Nov 2015

The problem I have is that the so-called "best practices" of the GrizzledExpert are typically completely subjective.

Most of the time the "bestness" of them can't even be measured in any meaningful way, yet GrizzledExpert will still insist that the "best practice" is "the best".

More often than not these "best practices" are actually quite bad when used in the context of the question-asker's scenario!

The GrizzledExpert being smug and cocksure about the absolutely correctness of his answer, especially when it's actually wrong, is far more harmful than the possible solution that the HelpfulNewb has presented but not claimed to be a "best practice".

- Charles

Fred Barnes 4:28 PM on 5 Nov 2015

Charles, you nailed it. After many years of slowly losing my trust of the GrizzledExperts, I have come to realize that 99% of them (a) cannot possibly understand the mind and background of a person who has written a one-line question and (b) cannot actually prove themselves to be more than GrizzledIntermediate, due to their blind adherence to current programming "best practices" (that is, cargo cults). So, everyone, please, just answer the question that was asked. If you feel the need to accompany your answer with explanations of when you would do it that way and when you wouldn't, that is fine. If you cannot just answer the question asked, move along and say nothing.

Elijah 5:24 PM on 5 Nov 2015

For the question "How do I do X?", any answer that:
1. Asks "Why do you want to do X?", and
2. Doesn't contain "Here's how to do X: ..."
gets a downvote from me.
"That's an interesting question, it sounds like having more context would help us answer it well. Can you tell us more about what you are building?" This is a good and useful comment, but would be a despicable answer.

Ned Batchelder 6:25 PM on 5 Nov 2015

One of the reasons I don't answer questions on Stack Overflow anymore is the difficulty of having a discussion that will actually get to the root of the issue. "Can you tell us more?" is essential to me.

Elijah 6:42 PM on 5 Nov 2015

It's important to remember that the asker ("BaffledNewb") has already decided that X is the correct approach. We don't know why someone would want to use a string value as a variable name in Python, but the asker has already done the work of determining that this is what he/she wants to do. It is arrogant to say "I don't know what you're trying to solve, but I'm sure X isn't right because nothing I've worked on has called for X." (This arrogance also manifests in referring to the asker as "baffled" and "newb", by the way.)

"Can you tell us more?" is good both as a comment and as a supplement to an answer which shows how to do X. It is not an answer by itself.

Max 7:05 PM on 5 Nov 2015

I'm increasingly of the opinion that Stack Overflow's gamification incentivizes the wrong the things. It certainly does tend to reward the quick and easy "Give the person a fish" answers and doesn't really know how best to deal with the stickier, trickier, slower, longer and more complicated "Teach the person how best to fish" answer. Arguably the meta-moderation for SO seems to indicate that it this is simply what it wants to be by design, giving out lots of fish and not really teaching things in depth (or solving deeper problems than the cursory and the obvious, for that matter).

Elijah 7:11 PM on 5 Nov 2015

"Giving out lots of fish" is what StackOverflow is for. As I understand it, "How do I do X" is a good question for SO, and "When/why should I do X" is better for ProgrammersSE.

enok 8:03 PM on 5 Nov 2015

I gave up on SO a few years ago for just this reason. It seems SO isn't interested in providing quality Q&A anymore and has just become a huge content farm.

Ned Batchelder 9:56 PM on 5 Nov 2015

@Elijah, you say, "We don't know why someone would want to use a string value as a variable name in Python, but the asker has already done the work of determining that this is what he/she wants to do."

I can tell you from experience, I have fielded this question a dozen times in the #python IRC channel, and every time, once the questioner learns how dictionaries work, they agree that they are a better solution.

It's not arrogance to recognize common mis-steps. It's experience.

I understand the idea of giving people the benefit of the doubt. Even better is working with them to find the best solution. There's a middle ground between 1) just answering the literal question, and 2) being an obnoxious know-it-all that berates beginners for doing it wrong.

Omar 9:54 AM on 3 Mar 2016

I'm a trusted users on SO. I no longer believe that SO is a good place to learn neither is it a place to find a rock-solid solution for your problem. I'm active on one tag and tried to pull help seekers to IRC to help them there. The problem is, help seekers come to SO for a quick answer or to have their homework done without sweat. No experienced is gained whatsoever, because all you get is an answer/solution without explanation. That's in case the question was lucky by not getting negative votes or/and closed.

Programmrs should know that if they truly want to learn, just stay away from SO. It is really not a good place to learn and most of the answers are outdated. Not to mention that negative community that is growing day by day.

Some incidents on SO (if blog's author allows me):

Bob 6:21 PM on 14 Oct 2016

I have tried to avoid Stack OverFlow because often a 5 line answer becomes an essay. Then lots vote it down or duplicate. So, even though they are very popular they are not my first choice. I often learn much faster asking elsewhere or sometimes just dog-gone figure it out. Life is too short and really isn't that complex. Think about it, because all complexity results from many simple actions.

IhideIt 7:11 AM on 29 Nov 2017

After careful consideration, I decided to write about ChuongPham's comment.

And to this blogger's keeper's feedback. (This kind of English won't make friend to you either)

ChuongPham came here to share his thought with detailed investigation on the issue. Although his English is not perfect, his idea could be fully undertandable.

And Ned Batchelder's feedback was "You aren't going to win friends with me by using the word "retard" like that though..." (This kind of comment is just another "retards")

P/S: @Ned Batchelder: you may remove, hide, attack again my comment for many reason
May because I don't publish my email, or my name

But the fact is that, your comment is just as ignorance as other moderator's behavior at

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.