a companion discussion area for blog.codinghorror.com

What does Stack Overflow want to be when it grows up?


Students and Beginners are vital. Without students (who are nascent professionals) and beginning coders (who are ALSO nascent professionals and enthusiasts), the site doesn’t exist.

One doesn’t have to be an ass to make a point here. StackOverflow has been overrun with “make this a safe space” people. Many of those people ARE professionals. But they don’t grasp that the reason StackOverflow is useful (and not the MSDN forums or ExpertsExchange or any of the other hundreds of Q&A sites) is that StackOverflow enforces at least SOME semblance of order.

It used to be impossible to go to SO and post an absolutely incorrect answer without getting some excoriating comments or downvotes. But now every third question I see has a stack of wrong, misleading, and/or outright dangerous answers, because everyone wants to be “nice.”

Bad answers hurt everyone, but thanks to the constant whining about “overbearing moderation,” it is getting harder and harder to deal with the problem.


I was in fact making a point and it did require something like that because based on what he said he didn’t quite grasp the problem. He is rehashing existing blog posts, although I would say with important distinctions. And combining multiple topics.

The distinctions are frequently missed on Stack Overflow. Whenever rules are at least on a surface level broken on SO you will often get closed answers. For someone who isn’t familiar with the rules or actually followed them but in a subtle way and runs into the wrong SO game player, what they see is just an ass shutting them down and ruining their day. Their blog post is taken down.

I am not saying we should not try to pursue good questions and answers. But to just say that SO is not right for everyone because it’s peer reviewed isn’t fair to I would say a full 1/4 of users who have a horrible experience (at least initially) trying to ask a question or write an answer.


I’ve been using SO for what seems like forever (several years, at least), I still haven’t needed to make an account or post a question.

So, from my experience at least, mission accomplished for the author. I know I’m no Carmack but I still owe you a VERY sincere thank you for what you’ve helped to create. It would be unfathomable to perform my day-to-day without the fantastic resource you laid the foundation for.


Why do the comments need to be “excoriating”? If the answer is poorly stated or incorrect, just downvote it.

Interesting, so we can close posts as duplicates across completely different websites now? Fascinating. :thinking: I hope all websites on the internet get the memo on this exciting new policy!


There are Marked Correct bad answers (“Correct On My Machine”/“I Didn’t Understand Why It Was Bad” marking) that have piles of downvotes. There are also bad answers that have piles of upvotes.

SO is slowly trending to look like the MSDN Forums or ExpertsExchange, where half of the “Correct” answers don’t even address the question.

The problem with downvoting and walking away is that you’re not actually DOING anything about bad answers. The person who left the bad answer often didn’t know why they were wrong, still won’t know why they were wrong, and will continue screwing up in their own codebase (which, through the constant corporate consolidation, may eventually become ‘YOUR’ codebase!).


PM on Teams here. Teams uses your existing Stack Overflow profile. It bring Private Q&A and public Stack Overflow under one roof / one experience.


I’ve slowly moved from tier 3 to tier 1, as the knowledge and user base has grown to the point where it no longer needs my input beyond up/down votes. There are enough active users to answer all the incoming questions, and the ones I need answers to have invariably been asked and answered already.

However I’ve noticed a problem that has previously been mentioned (possibly even here, @codinghorror?) regarding out-of-date answers. Frequently these answers are version-specific, and the top-voted or accepted answer is for the version that was current at the time. For example, there are questions about error or exception messages which require a different answer for each version of the language, because the cause is slightly different. Now that we’ve had the site up for a decade, the problem is cropping up enough that I tell everyone to check the dates on all the posts, and look at the most recent answers instead of the top ones.

I’ve seen people trying to edit the top-voted or accepted answer to include the new details, but that often gets messy (one answer with 5 versions, one for each SQL Server release?) Additionally, it takes an expert to keep the answer quality high - it’s too easy to dilute the quality when making a significant edit like that.

I’ve also seen the use of versioned tags on questions (add SQL2008 to the question, for example), and then new questions asked and answered specifically for the new versions. But to do that accurately you need to be enough of an expert to know for sure that’s the version the original question and answer apply to. You also then end up with questions that look like duplicates (“JDBC error connecting to MySQL…”) whose only difference is the tags.

I don’t know the best answer to this, and I don’t see this exact thing in a question on Meta yet. Whatever the way forward, I’d like to see a solid workflow in place in the next few years, before the Stack Exchange network gets into too deep a whole to climb out.


Nothing’s stopping you, or anyone else, from leaving a comment with the downvote describing how the answer might be improved.

It does seem there’s a saturation point. Sure, there’s always new languages, new frameworks, new platforms, new features… but for existing mature programming platforms, wouldn’t it be fair to say the top 1000 questions have already been asked on Stack Overflow and very well answered with at least “5 good ways to do it”, plus at least 10 duplicates of each of those questions using different words/language for search benefit? That seems fair, since it’s 10,000 questions per area, and we’re talking millions of questions in the corpus.

Right now per https://stackoverflow.com/questions, there are 16,661,095 questions. Four years ago, in mid-2014, there were ~7.6 million.

Ah, the flip side of the maturity coin!

Here’s the Stack Overflow privileges matrix by reputation


So stuff is getting out of date. No problem! This is a wiki!

  • Remember anyone, in any browser anywhere in the world, can edit anything on Stack Overflow. No account required. So I’d say the first port of call has to be editing: edit in a clarification about exactly what version this answer applies to, and which ones it does not.

  • The tagging solution is also viable, if the whole question wants or needs to be version specific. Changes in tags are just another edit, so that can also be submitted as an anonymous edit.

  • The other option is to post a new, more up to date answer and let the new votes roll in. This can be admittedly difficult if the existing question has hundreds of votes on its answers, so I tend to agree: questions should probably be version gated, if that’s appropriate to what was being asked.

Decisions like this is are why a vibrant, active curator community is so critically important to the health of Stack Overflow. There will always be an endless supply of incoming questions, no matter what you do. But there won’t always be people willing to answer, willing to curate, willing to moderate.


Only because you mention SO Careers in this post, I urge you to go have a look at what it has become. (I realize you’re not actively involved in the business anymore, but surely if you said something, they’d do something.)

Long story short; we’re a small business, used SO Careers extensively and successfully for several years to post jobs and find candidates. It was great! Post job, pay fee, get applicants, hire one. Yay!

Last week, I tried again to put up a single job posting, but couldn’t find the UI anymore… After filling out a suspiciously generic form, this is what I got back:

“I’ve been pinged that you were poking around our site interested in building out a hiring campaign […] Would love to hear more about your tech hiring needs […] to see how we can best position a partnership moving forward.”

Hmmm. “Hiring campaign.” “Partnership.” “Moving forward.” None of those things sounds like the convenient, self-serve, post-a-quick-job-get-great-applicants-and-hire-one experience of the past.

After replying that all I wanted was to post a single job, the way small businesses are wont to do (and they way we did, for many years on SO Careers), I got this reply:

"[…] had to adjust our model […]. We no longer have a single short-term listing. Everything we do runs on a semi-annual or annual subscription so we can help our customers fill the roles but also build out a pipeline and protect from any potential backfill that might occur. " (Emphasis mine.)

If ever there has been a paragraph more replete with corporate Happy Talk I haven’t seen it.

How did something so good, built with the guiding spirit of SO, become so very very bad?


Stack Overflow is a great high signal-to-ratio resource.

it doesn’t really suit me though as either an asker or an answerer, and this comment on Medium gets at the high-level ‘why’ for me:

I don’t give a damn if an answer is valuable to 1 person or 100, I only care that I’ve helped someone get past their problem today.

Maybe competition just isn’t your jam. Could there be a less competitive Q&A system, a system without downvotes, a system without close votes, where there was never any anxiety about posting anything, just a network of super supportive folks who believe in you and want you to succeed no matter what? Absolutely! I think many alternative sites should exist on the internet so people can choose an experience that matches their personal preferences and goals. Should Stack build that alternative? Has it already been built? It’s an open question; feel free to point out examples in the comments.

Here are some examples of other communities’ approaches/philosophies in the realm of programming (that I’ve not been a part of yet):

No feigning surprise (Recurse Center social rules)

The first rule means you shouldn’t act surprised when people say they don’t know something. This applies to both technical things (“What?! I can’t believe you don’t know what the stack is!”) and non-technical things (“You don’t know who RMS is?!”). Feigning surprise has absolutely no social or educational benefit: When people feign surprise, it’s usually to make them feel better about themselves and others feel worse. And even when that’s not the intention, it’s almost always the effect. As you’ve probably already guessed, this rule is tightly coupled to our belief in the importance of people feeling comfortable saying “I don’t know” and “I don’t understand.”


If you want me to explain my view, I think it’s the joy of helping a beginner, and helping someone understand something. Once I spent 2 hours writing up an explanation for Pythagoras’ theorem or trigonometry and i really enjoyed it, but whether it was read or understood, that is another case.

I imagine systems where there is zero anxiety involved and I can only think of jobs where I had long since stopped caring about the work and thus had no anxiety about whether I even showed for work on any given day. How can that be good? Let’s just say I’m not a fan of zero-anxiety systems.

Often, operating on fear/nervousness makes me more likely to do something stupid, as opposed to thinking more clearly.


This is fundamentally incompatible with a wiki view of the world. If you believe that, you want a different set of software – which is perfectly fine.

Furthermore, if this is your goal, you also probably want the other things I listed in my blog post:

  • one on one mentoring
  • real time collaborative screen sharing
  • live chat
  • theory and background courses
  • starter tasks and exercises
  • playgrounds to experiment in

There are many websites on the internet, and many places to go offering (intentionally) different experiences. What works for one person, may not work for another. The goal is not to have one grotesque enormous Facebook octupus that is the central source of all human interaction for the rest of human history – the goal is to have many communities focusing on specific aspects of the experience that cater to the audience they design for.

Now do that 12 hours a day, 7 days a week, for a year… then get back to me :wink: It is a perfectly fine sentiment, but it does not scale.

Which is not to say that it shouldn’t exist, clearly it should, but that’s like saying “I wish this business was a school. In fact, all businesses should be schools, because I love teaching people, and teaching people should be our only goal in life.”

All that said… the revamped Stack Overflow multi-step wizard style ask a question page could indeed have a

[ ] I’d like extra help, please match me with a volunteer mentor

checkbox in it, for those new askers who want to opt into that experience, and groups of people willing to meet them halfway.


Yes I think too that Stack Overflow shouldn’t be the only community out there for asking programming questions. I meant to point those communities exist and so SO doesn’t necessarily have to lose the strictness that makes it have such high quality.

I’m completely sorry about the personal epiphany which I removed now. It was my way of saying there are things I don’t understand.

(I regularly refer to SO, which is a testament to how well it’s been designed and built, and have posted answers once or twice.)
That said, I think the Code of Conduct now exists after historical tension for a reason…

I don’t mean to argue though, and we both seem to agree it’s not a style that suits everyone, and there are alternatives. For the record, no, I can’t help people 24/7 too. I think the new CoC efforts and discussions seem to have let both sides have their say at least :blush:


Re duplicates

When you speak of avoiding duplicate content there are several components. It’s not only the question that’s a potential duplicate but also the answer could be elsewhere on the site already. How could we identify duplicate answers?

What did you do in the early days to avoid duplicate questions? Read new ones one by one? Manually selecting and redirecting? When did users start taking this tasks off from you and started to redirect others?

If I may add a question, how prevalent was it that users started to turn questions into terrible hate speech, edited stuff in bad faith, attacked others, etc? And, how did you deal with those?


The way you explain everything just amaze me. Even the title, it comes upon me and say to click over it. Thanks for being informative and amazing.