Friday, October 1, 2010

Stack Overflow - forums done right.

Recently, I happened upon a website called Stack Overflow, a free programming forum that is run by its users.  It is collaboratively edited, using a karma system that allows you to perform more tasks as your reputation score increases.

Why should you care about yet another forum?  Good question.

From the StackOverflow FAQ:

So What? Who cares? Isn't this just like a dozen other websites?
What's so special about this? Well, nothing, really. The only unusual thing we do is synthesize aspects of Wikis, Blogs, Forums, and Digg/Reddit in a way that we think is original.
Venn diagram: Wiki, Digg/Reddit, Blog, Forum
Super User is that tiny asterisk in the middle, there.
But hopefully you'll see what we mean when you participate and experience it for yourself.

Why should you care about yet another forum?  Good question. I've tried it out, and I have very positive opinions, overall.  One of the reasons that it works so well is that it rewards people for being helpful.  Most forums only keep track of the number of posts.  Stack Overflow (and the sites in the StackExchange family of sites) employ a rather clever reputation system.
From the FAQ:
To gain reputation, post good questions and useful answers. Your peers will vote on your posts, and those votes will cause you to gain (or, in rare cases, lose) reputation:
answer is voted up+10
question is voted up+5
answer is accepted+15(+2 to acceptor)
post is voted down-2(-1 to voter)
A maximum of 30 votes can be cast per user per day, and you can earn a maximum of 200 reputation per day (although accepted answers and bounty awards are immune to this limit). Also, please note that votes for any posts marked "community wiki" do not generate reputation.
Amass enough reputation points and Super User will allow you to go beyond simply asking and answering questions:

15Vote up
15Flag offensive
50Leave comments
100Vote down (costs 1 rep)
100Edit community wiki posts
200Reduced advertising
200Create new tags
250Vote to close, reopen, or migrate your questions
500Retag questions
1000Show total up and down vote counts
2000Edit other people's posts
3000Vote to close, reopen, or migrate any questions
10000Delete closed questions, access to moderation tools
 you can always comment on your questions and answers, and any answers to questions you've asked, even with 1 rep.

Another reason that this site is great is that it doesn't try to be everything to everybody.  Stack Overflow only aims to answer questions relating to programming.  What kind of questions, you ask?  Yet again, the FAQ comes to the rescue:

What kind of questions can I ask here?
Stack Overflow is for professional and enthusiast programmers, people who write code because they love it. We feel the best Stack Overflow questions have a bit of source code in them, but if your question generally covers …

  • a specific programming problem

  • a software algorithm

  • software tools commonly used by programmers

  • matters that are unique to the programming profession
… then you're in the right place to ask your question!
Please look around to see if your question has already been asked (and maybe even answered!) before you ask. It's also perfectly fine to ask and answer your own question, as long as you pretend you're on Jeopardy: phrase it in the form of a question.
What kind of questions should I not ask here? 
Avoid asking questions that are subjective, argumentative, or require extended discussion.  This is not a discussion board, this is a place for questions that can be answered!
What if you have a different type of question, or a question about the site itself?  Well, they've thought about that, as well.  There are actually a whole family of inter-related sites, each serving a very specific purpose.  Quoting the FAQ again:

If your question is about …

  • Networking, servers, or maintaining other people's PCs and contains no source code, ask on Server Fault.

  • General computer software or hardware troubleshooting, ask on Super User.

  • Web design and HTML/CSS layout, and your job title is "designer", ask on Doctype.
If you have a question or comment about the site itself, each of the sites has a "meta" section that is separate from the actual questions and answers.  This allows people that are only interested in the questions and answers to avoid site-related questions, complaints, and discussions.  This doesn't seem like a big thing, but as a former forum admin, it's refreshing to know what to expect when you browse the site.

In addition to Stack OverFlow, Server Fault, Super User, and Doctype, there are quite a few subject specific sites available in the StackExchange Network, such as and .

I am not on every StackExchange site, but if you're looking for me, look for Zoot.  I recently started up an account, so my scores are pretty low, but in time, that may change.

profile for Zoot at Stack Overflow, Q&A for professional and enthusiast programmers