This is in response to Michael T. Richter's excellent critique of Stack Overflow. While I share some of the concerns for the problems mentioned there, I don't believe they are quite as detrimental to the quality of the site as he appears to.
From the article:
I'm not a Java programmer. I've only ever briefly programmed in Java professionally. I hated the experience and I hate the language. I certainly don't consider myself a Java expert. Yet I managed to get the bulk of my points from Java. How is this possible?
It's possible because I did what many of the people whose questions I answered (and got points for) should have done for themselves: I saw a simple Java question, hit Google, read briefly, then synthesized an original answer.
This is what I read:
I know Java well enough to have used it professionally. Considering the recent explosion of access to computers and the Internet, the vast numbers of students and hobbyists who only ever touch on Java very briefly to solve a highly specific problem, the low level of entry relative to most other languages, the tiny amount of people who end up specialising in Java rather than any other languages in existence, and the fact that the language hasn't been around long enough for there to be large amounts of people with many decades of experience, that single point probably makes me more knowledgeable than 90% of Stack Overflow users in Java.
I freely admit that I do pay attention to the points. They are the best way I have to figure out if I am actually getting better at submitting useful questions and answers. People's motivation for answering doesn't matter one jot to me if they write interesting or useful on-topic content. How could it? Such content is completely off topic, and would be edited out like the plague.
There's room for improvement (and I wouldn't even say "obviously", like for so many other sites), but SO/SE is still miles ahead of anything we've ever had. It's the Google of Q&A sites: Terrible for super specific issues (which are likely to be closed since they are not interesting to anyone but the author), but awesome for the rest.
Much of the rest of the article seems to be simply a complete lack of faith in other human beings. For example:
- "If you're going for points (and that's the entire raison d'être for gamification!), are you going to waste time like that for 60 points when you could fit in a dozen 460-point answers? Of course not! You're going to go wherever the points are, And the points are the low-hanging fruit of trivial questions from popular languages." I personally think the Stack Overflow answer rate is plenty proof that lots of that people are willing to help even when the answer is likely to get very few votes.
- "There's an old cliché in English: give a man a fish, he eats for a day; teach a man to fish, he eats for a lifetime. StackOverflow is filled to the brim with people giving fishes." After using other web sites which were much more geared to fish donations (almost every linear forum, IRC channel and mailing list I ever used) I find it refreshing that adding links to more resources (even on other people's posts), where people can learn how to fish, is extremely easy on Stack Overflow. I use this feature extensively, having far too many times googled a problem only to find a tip in a random forum reply with absolutely no rationale or link to more information. This is something which could possibly be pushed even more by the SO system, but it's already very good.
And finally, the end paragraph: "How about learning?" Great! "You know, that thing that puts information in your head that you can apply later at need." ... "Use Google." About 30 times a day, and usually the best result is on Stack Overflow or Stack Exchange. "Use Wikipedia (if you must)." Except it's pretty terrible to learn about practical software development or actual development issues. "Use RosettaCode for code examples." Impressive collection, but I don't think it's very relevant for real-world development or easily searchable. And the MediaWiki editor is a pain compared to SO. "Engage with other users of the tools you use in the form of user groups, mailing lists, web forums, etc." Vastly inferior technology to solve the exact same problem. No thanks. "Learn foundational principles instead of answers to immediate questions." Stack Overflow is a Q&A site, not a substitute for work experience or college degrees.