Saturday 23 March 2013

Stack Overflow - Much more than just answers

I'm guessing everyone who is reading this knows what Stack Overflow is but I bet most people aren't getting the most out of what really is a very useful tool for developers.

For those of you that don't know, Stack Overflow is in it's simplest form, a forum. Developers post problems or questions that they can't find the solutions for and other developers answer them. Those questions and answers are then stored so that anyone with a similar question can find the answer. After years of this, Stack Overflow has built up a pretty comprehensive archive of common problems that developers have faced and the solutions to those problems. It's one of the reasons that if you search for a development related problem on the internet then nine times out of ten, Stack Overflow is the first hit. It's a great idea and it's been well executed.

So, why am I writing a blog post about it? You already know all that. Well, up until recently that's all I knew about Stack Overflow as well. Until I actually decided to give something back.

I registered for an account and I thought I'd try and answer a few questions. I may not be the greatest programmer in the land but I do have a fair amount of experience with various technologies/frameworks so I should be able to answer the odd question or two. Turns out I was correct, I can answer the odd question. What's more, it's addictive.

Just about every interaction within the Stack Overflow community gives the rest of the community to give you reputation points. Someone likes your answer? They'll vote it up. That's 10 points. Your answer gets accepted as the correct answer, that's 15 points. And the same works in reverse. If you post a load of rubbish, you'll get voted down and that's minus points. Why is this important? Well, the entire website is moderated by the community and these reputation points gauge what you can and can't do in order to help that moderation. I suppose in essence, it runs a bit like humanity does in Star Trek, in the words of Picard "We work to better ourselves and the rest of humanity". I wouldn't class it as work but, you get the idea.

As I said, answering questions becomes addictive because the more you answer, the more reputation points you get. This leads you to reading a lot of questions, a lot of which you won't be able to answer. This is good. Very good. Why? Because you learn a lot. Just by reading questions and their corresponding answers I've learnt all sorts of things, in fact I wish Stack Overflow had the ability to "notify you via e-mail when an answer is posted", there are so many good questions that get posted. I've found better ways of solving problems I solved years ago, I've read questions to problems I haven't even come across yet. It really is a great tool for learning.

In conclusion, it's a good tool for learning to communicate accurately to fellow developers. It gives you the ability to give back to the development community and it is a great tool for learning. So, if you're waiting for something to compile or you've just got a spare 5 minutes, head over there. Try and answer a few questions, read other questions and just learn.