Hooked on Stack Overflow

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.

Gamification works

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.


First Steps with .NET Gadgeteer: Awesome

Yesterday I got my .NET Gadgeteer FEZ Starter Kit in the mail. Today, I had some free time and decided to give the kit a try.

.NET Gadgeteer

The first steps couldn’t have been easier. After installing Visual Studio and the other SDK bits, I followed the instructions from the Getting Started guide and within minutes had a system that at the press of a button took a picture and displayed it on the LC display.

GadgeteerPictureBecause I wanted to have a picture to go with this post I connected the SD card adapter. Merely by looking through what IntelliSense displayed for it I was able to mount the file system and create a file on the card. After a quick search on their excellent online documentation I had everything I needed to write the code to take a picture and save it as a bitmap file on the SD card. You can see the result on the right (after a conversion to JPEG so it can be displayed on the web). It was that easy.

Tomorrow, I want to try out the other parts that came with the starter kit. As you can see from the picture above, there are a lot of them. I don’t yet have a concrete project in mind, but given the tons of tutorials, GHI Electronics has, I will probably have no problem finding an inspiration.