Many, many years ago, when I first started programming in Delphi, I turned to Usenet whenever I had a problem I couldn’t figure out on my own. The group I usually hung out in, borland.public.delphi.students, was monitored by fellow Delphi developers and Borland staff who were all extremely helpful and gave great answers to even the most newbie type of question. Of course in those days Usenet was already a pretty dated technology and there were tons of other forums around, but I have always liked the simplicity of plain-text messages.
While simplicity was clearly an advantage of Usenet, it also had several things that weren’t so great, such as the fact that longer exchanges could pretty quickly generate a tree of threads that was impossible to follow. Luckily the good folks at Stack Exchange have “fixed” all this and created a Q&A site that is just plain awesome. Jeff Atwood, one of the founders, has a nice post explaining how they came up with the things that make Stack Overflow and the Stack Exchange network that came out of it great: The key is gamification.
I have mentioned before how I love Xbox Live for its achievements system, and Stack Overflow is the same. It’s really cool to be “rewarded” with badges and reputation whenever you do something good for the community, like answer an interesting question or post a good answer. As of this writing, I have 133 reputation and 7 bronze badges.
I had used Stack Overflow as a resource before, because you can’t search for a programming question these days without Stack Overflow ranking at or near the top on any given search engine. However, after registering and getting my first badges and earning some reputation, I have started using the site more actively to accumulate more. Looking around, whether I could help some one, but also looking at answers others gave to learn something new.
What I’ve learned from Stack Overflow
But using the site has not only taught me a few things about programming, but also a couple about myself as a programmer. For one, that programming is an extremely wide field and consequently there are just a ton of questions I don’t have the faintest idea of how to answer them. Even in areas that I think I am very familiar with (e.g. Delphi, C#, concurrency), there is a bunch of things I don’t know. I am actually very happy – and therefore eager to help – when every once in a while I come across a question I can actually answer and that hasn’t already been answered.
That’s another things about Stack Overflow: because there are so many people on the site, one rarely has to wait long for the first quality answer. And because there are already so many questions, it is often not even necessary to ask (which of course doesn’t keep some people from asking almost the exact same questions over and over again).
In the end, I might no longer go to Google or Bing to search for an answer to a programming question, but instead go directly to Stack Overflow. They have the best people and the best answers anyway. So it came as no surprise that among the top answerers in the Delphi category are a lot of the same names I remember from my Usenet days for their helpful answers: Rob Kennedy and Rudy Velthuis are the ones I remember of the top of my head.
More Stack Exchanges [2011-11-13 Update]
Since writing this post, I have become hooked on another Stack Exchange site: programmers.stackexchange.com. Initially, I was unsure why there needed to be a site called “Programmers”, because Stack Overflow is for, well, programmers. But as is pointed out in the site’s FAQ, it is for “answers on conceptual questions about software development”, while Stack Overflow covers more practical questions, I suppose.
The volume of questions on Programmers is much lower than on Stack Overflow, which also means that there is a lot less noise. I know that my first question on Programmers has gotten lot more attention than I had dared to hope for when I originally posted it in Stack Overflow, unaware of the distinction between the sites.
But while Stack Exchange started out as Q&A sites for technical questions (the “trilogy” of Stack Overflow, Super User and Server Fault still make up the bulk of questions and traffic), there is now an entire network of sites on all kinds of non-technical topics as well, start-ups, graphic design or cooking, for instance. And there are more in the making in Area51. Before long, Stack Exchange could become the go-to place on the internet for questions on pretty much any topic.