I received a very interesting e-mail today from a reader who noticed the little box on this blog that displays my participation with Stack Overflow. I’m not going to paste the entire contents of the e-mail, however the sender did bring up some interesting questions:
Isn’t it like Facebook, just programming themed?
I heard editors gang up on people like on Wikipedia
Why don’t you just join [xyz] forum or newsgroup?
What do you get out of it if you just answer lots of questions?
The questions clearly illustrate that some people spend more time listening to the rumor mill than they do actually investigating things to their own satisfaction. Why not just go look at the site and explore it? To my knowledge, there is only one serious and hidden conspiracy. Stack Overflow is nothing like Facebook, or any other social network. There is no means to ‘add friends’, send private messages, or anything else you would expect from a site that connects people with other people. Stack Overflow serves two purposes:
It connects programmers to knowledge that they seek
It connects programmers to questions that welcome their knowledge
There are trivial rewards for participation, whichever way you use the site. You gain a numerical representation of how much the site trusts you and ‘badges’ like scouts earn. Reputation has only one intended purpose, it allows the system to trust you more and give you broader access to its facilities. An interesting side effect is that it encourages participation. This is how a 100% community run site can exist without having to deal with constant vandalism. Sure, if you use the system long enough you’ll begin to see the same people answering your questions (or questions in topics you watch) and you may even get to know them a little in the process. However, if you want to chat privately, you’ll have to track them down and contact them on your own.
There are no editorial cliques on Stack Overflow. There could not be, they would obviate themselves too quickly to the moderators that the community appoints. Anyone with a suitable reputation can edit anything. Moderators serve to resolve edit wars, take on janitorial duties and (once in a blue moon) police offensive user profiles. “Offensive” on Stack Overflow is generally limited to hate speech, something illegal, something obviously deliberately obnoxious or blatant SPAM.
I don’t like forums, for the most part, if ‘forum’ to you means something running PHPBB or similar. I have nothing against PHPBB, I just don’t care for long, paginated threads where only a few posts have something useful and relevant to say. Stack Overflow lets you sort answers by votes which is extremely helpful. If I’m hunting down a cryptic error that GCC threw while speaking in tongues, I’d like to get to the helpful stuff immediately. Going through 8 pages of replies where four of them are users just agreeing with other users is far too mentally taxing to keep straight when you are already focused on something else. I also don’t like being at the whim of a single (possibly sober) moderator, especially when I make links to my own code repositories to help illustrate my answers.
I do use newsgroups, comp.lang.c, comp.lang.c.moderated and several others. At least with C questions, you’ll receive several direct answers then get CC’d on a two week long argument on which one was the most ‘correct’. Usually, after 48 hours, the thread degenerates into a completely different topic and completely different argument. Great, 100 people arguing over c-style really helps when you just need to fix something.
As far as what I get out of it, I like answering questions more than asking. I also like to spend a little time each week editing and organizing things. Why? For the same reason that so many people like working on Wikipedia. Stack Overflow is a great resource, in fact more and more, if you Google a programming problem you will likely see links to Stack Overflow in the first page results. This is for two reasons, people ask great questions and great editors make sure the titles reflect the question accurately.
I’ve heard from a few people that a reputation score of over 5000 helps when looking for a job. This may just be their experience. However, reputation is an indication of how your peers view your answers as well as your communication skills. Stack Overflow implements very stringent ‘cheating’ checks, to make sure that no organized effort robs someone of their reputation, or artificially inflates another’s. I would really frown upon a hiring manager basing even part of their decision on Stack Overflow reputation, some people have more time to use the site than others.
If Bob and Jane are equally skilled in programming and both excellent communicators, yet Bob took a year off and spent two hours a day answering questions on Stack Overflow while Jane was busy at a full time job … well … you can see the problem. Its great if you have it to add as a hobby on your resume or show on your web site, but leave it at that.
Finally, though Fog Creek Software (the people behind Stack Overflow) are very Windows centric, Linux/GNU questions are very welcome there. At least twice each week I see someone asking about writing Linux device drivers and by the time I open the question its already been answered by someone who knows what they are doing. Additionally, questions regarding gcc, flex, bison, valgrind, gdb and all of the other tools that most *nix programmers use are typically answered very quickly. I’ve also seen quite a few licensing questions answered competently, some of them by me.
Yes, they show ads, so does Sourceforge. Quite a few of the ads on Stack Overflow are actually promoting free/open source software projects. If someone could convince me that SO did harm, I’d still be able to say that they do a lot more good than harm, why should they not profit in the process? The Stack Exchange business model is not only ethical, its tenable, which is rare to find in the wild west of information brokering.
Just watch out for the search, though I heard that they are working on it. Additionally, meta is a very strange place.
I have noting to disclose in this post, I wrote it on my own accord in response to a reader’s question. I am not compensated by Stack Overflow or Fog Creek Software in any way.