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.

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.”

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

Jason_Livesay:

So that is a duplicate. The concept of improving the beginner focus, again, has been detailed in many other posts. Another duplicate. I think that really this should have been broken up into multiple posts, but again, unfortunately, they would still be duplicates. So I recommend close as duplicate.

Interesting, so we can close posts as duplicates across completely different websites now? Fascinating. 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!).

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.

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

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

Rick_Townsend:

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.

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.

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.

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.)

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):

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’re here, it means you’re thinking about contributing to the Processing community by answering questions on the forum. That’s great! This guide is meant to help you answer questions in a way that’s most helpful. Be nice. Remember that you’re...

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.

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.

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.

t_111111:

I think it’s the joy of helping a beginner, and helping someone understand something

Now do that 12 hours a day, 7 days a week, for a year… then get back to me 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

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?

Can you name one disadvantage of splitting the StackOverflow into two parts?

To be more precise on splitting: Imagine two SO parts, let’s call them “beginner” and “advanced”. Everyone starts at the beginner part, where he has time to learn to write high quality questions and answers and to get the feel of how the site works. When he reaches some milestone (1000 points), he gets access to the advanced part. The advanced part can now be stricter on the rules so when you post three low quality questions / answers in a row, you lose access to the advanced part and have to work off the access again.

I should emphasize that low quality posts != posts from novice users. There can be a well written post about a for loop. I understand low quality as “without sufficient effort”. A “do my homework” or “fix it for me” type or questions.

The current situation on StackOverflow is that increasingly many low quality posts are being posted (like hell a lot) which is good for newcomers and generally everyone who wants to ask a question very fast, but it is getting more and more repellent to people who answer these questions. To all those valuable volunteers with their programming knowledge they are willing to share but they have to deal with the constant “can you elaborate more on your question please?” instead. And when you lose the answerers, the actual fuel of your website, you inevitably lose the askers as a consequence since there will be noone to answer their questions.

From my view the SO is changing into a website where noone values your time/effort. The OP fixes his bug himself 5 minutes after posting his question and does not care about your advices anymore. And when you actually have a serious issue you struggle with for the whole afternoon, you spend 20 minutes by describing the problem, showing your work, making the PoC source code… Only to realize noone noticed your question.

To be honest, I’ve never understood what StackOverflow is for. After reading your quote “I wish more people understood…” I’m even more confused. Many sites (elementaryos for one) have links to stack overflow for issue reporting and help. When I follow the link to report the issue, I get closed as ‘out of topic’.

When I ask google my coding questions, I often get a stack overflow discussion. More and more these discussions just berate the person asking the question.

For me Stack Overflow has been extremely useful for getting fast answers to not-so-common problems, that core feature is still working as intended after all these years.

One thing i miss about Stack Overflow, was in the early days, where users would write just a few lines about a game they had played, hoping that they could rediscover that game. I spent many enjoyable hours trying to research what game it could possible be.

The task was made more enjoyable by the fact, that sometimes information would be wrong, as the poster would not always remember exactly how the game was. But, in the end when the poster, based upon the answers, would remember the game, that was what made it a great experience.

To all those valuable volunteers with their programming knowledge they are willing to share but they have to deal with the constant “can you elaborate more on your question please?” instead. And when you lose the answerers, the actual fuel of your website, you inevitably lose the askers as a consequence since there will be noone to answer their questions.

Yes, good citation – the guessing game was more of an issue on other Stack Exchange sites that deal with books, games, movies, and TV. I don’t recall seeing it on SO at all, though.

Boris2:

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?

It was never very common, one of the surprising (in an encouraging way!) things I saw is that overt cruelty was generally flagged and never upvoted. The problem you get into is wildly different (and culturally varied) interpretations of “mean” and “nice”.

The current situation on StackOverflow is that increasingly many low quality posts are being posted (like hell a lot) which is good for newcomers and generally everyone who wants to ask a question very fast, but it is getting more and more repellent to people who answer these questions

This is especially true for professional programmers. I’m at the point where I simply ignore questions if the asker is from India etc. We are basically hurting ourselves by answering these questions:

Work is outsourced because it is cheaper.

Jobber asks question on SO.

We answer for free.

Rinse and repeat until we are forced to change occupation and lose interest in SO.

I think the biggest value is in making a breakthrough with my usage pattern, use case #2. I ask essential questions, the kind whose answers would help many future programmers “be dangerous” in X… but wording it like a noob, lacking the correct terminology or background, with gaps in the mental model.

The outcome is often no traction. The importance of the problem I’ve singled-out isn’t recognized, and the post gets buried. But I submit it’s these kinds of contributions that are the most useful for the largest segment of users. Bridging the gap between beginner with spotty knowledge and the required background info or mental model. That’s what the crowd is good at: covering an area of knowledge with all sorts of phrasings from all sorts of angles, so they show up in searches.

The existing tags system is not the solution to this. It doesn’t do enough in the way of describing the problem. It’s more like a way to get a few eyeballs in certain communities, for a while.

I think there should be a more structured way to formulate questions. Perhaps using an ontology of different classes of problems: glue, time, concurrency, structure etc. Plus more semantically sophisticated leveraging of the unchanging stuff – verbatim name-dropping bits of API, error messages.

If there is a representation of tasks in a field that you can tie into, then this can help break the tyranny of reputation, popularity and information overload for new users. Plus the data generated would be fascinating – how many users working with this library have troubles with concurrency? Or Doing these types of things are critical to productivity, who is stuck here?

My biggest gripe is being afraid every time I ask a question about being shot down. No matter how much effort I put into my question and no matter how hard I research the topic that fear is always there. It make me think Stack Overflow has long reached the saturation point of being able to grow. It’s as though the moderators are code compilers, and if we don’t write perfect code the first time, by asking questions that meet the impossible-to-meet criteria of every reviewer/moderator, then our question gets flamed. I no longer posting questions or answers because of this. It’s just not worth it. I hope that a better happy medium can be found to allow stack overflow to be more inclusive and friendly without the many, many rules rules of adding/updating content. I guess I’ve been flamed one too many times. Regards.