Stack Overflow – Fighting with Giants

In February, Jeff Atwood (of Coding Horror fame) wrote a blog post titled “How to Write Without Writing“. If you haven’t already, it’s a post well worth reading (in fact the whole blog is worth reading if you don’t already), but to cut a long story short he discusses the use of Stack Overflow to improve one’s writing skills.

“Stack Overflow has many overtly gamelike elements, but it is a game in service of the greater good – to make the internet better, and more importantly, to make you better. Seeing my fellow programmers naturally improve their written communication skills while participating in a focused, expert Q&A community with their peers? Nothing makes me prouder.” – Jeff Atwood

Co-incidentally, I have been looking into a way of improving my writing, in fact I have been for some time. I had originally created this blog to help me improve my writing skills, but finding the time (and the content) to write insightful blog posts can be hard.

So, I decided that I was going to take Jeff’s story to heart, and have started participating as a member of the Stack Overflow community. Stack Overflow has been immensely helpful to me, almost ever since it’s launch in 2008, so it is fitting that I give back to the community that helped me throughout university and into my first workplace.

The effect of regularly writing technically for teaching and assistance on Stack Overflow is almost immediate. I think the quality of my writing has gone up in the 3 weeks that I’ve been answering questions. I think this is less because I’m actually writing, and more that I (like many others on the site) play it like a game. You get better when you play games because if you don’t, you’ll lose, so you practice to improve and win, and this is how Stack Overflow is “played”. When you decide that you’ve found a question that you can answer, most of the time you’re pitting yourself against a mass of other potential answerers, and you’re fighting against them to get the coveted “answer tick” from the person that asked the question, as well as upvotes from your peers. If the quality of your answer isn’t good, or technically wrong, you’ll lose, and someone else will get marked as the answerer. So you improve so that next time you lock horns, the quality of your answer will be better, and get you that tick of approval.

As a relatively inexperienced developer in the real world, I didn’t quite comprehend how tough this was going to be. I didn’t realise how many questions on there I couldn’t answer fully, or at all! It’s quite humbling. I have adequate experience working with HTML, CSS and JavaScript, so these are the questions I focus on, but even then, there are people that are much better than I with each of them, so you have to very quickly learn to post both consisely and quickly. If you post too slowly, you’ll be too late to get the upvotes, which inevitably become answers, and if you post to much, too little, or irrelevant information, you’ll get ignored, or even worse, downvoted. One of the hardest parts of answering the “rookie” questions is that you have to learn to achieve this balance of speed and detail.

Then there’s the “superstars”. Stack Overflow boasts some of the most talented developers in the world as participants. In fact these superstars (in my opinion) make Stack Overflow’s popularity almost a self-fulfilling prophecy. The superstars attract more people to ask questions, which in turn attracts more experts and talented people to participate. If you answer a question that a “superstar” answers too, you better be sure that your writing and explanation is on top form, because when they post, they almost invariably do it very, very well. I, for example, have posted answers to C# questions, and it is tough to get marked as the answer, since there is a great amount of C# talent present on SO. When you answer these questions, you really are fighting with giants of programming. That isn’t to say that you shouldn’t post an answer though, after all, we are all in it for the greater good.

That isn’t to say that these are bad things, in fact quite the opposite. It makes you think, it makes you better, and most of all, it helps someone. There are almost no downside to posting on Stack Overflow (or any of it’s sister sites), and it all goes a little way to improving software development and making people’s lives easier!

What is the point of twitter?

Today when I got home from work, I was rather bored while surfing the internet, and ended up at this dark corner of the internet called Twitter. Being a curious beast, I decided that I would look into it, and registered myself an account. And low and behold, this is what I got…

A screenshot of my Twitter account in 2009.

This is the almighty twitter?! I have to say I’m not at all impressed. The layout of the site is awful, the fonts are completely wrong, not so much the fonts themselves, but the size of them. The page has about two useful pages: your page, and the other persons.

The search facility too is absolutely awful. A friend of mine is currently developing a social networking site dedicated to backpackers, and I know this site (www.travelee.com for anyone that is interested) has a Twitter account for updating us on its development progress. So I searched high and low for the account through the search facility, and couldn’t find it! What’s the point of being able to search if the search doesn’t yield any results?!

And then there’s the 140 character word limit. What’s the point? You could just sign up for a (just as free) Blogger/WordPress account and have a real blogging tool, or if all you want to do is let people know what time you’re going out, use Facebook status updates. Twitter seems to try to fit into a hole that has already been filled by several different tools.

… and yet, there’s something about it that makes me think that there’s more to it than the (frankly awful) interface of the site. Twitter isn’t designed as a blogging service like Blogger or WordPress, nor is it touted to be “social networking” along the lines of Facebook. It is a tool for those that have neither the time nor the inclination to write blog articles, and unlike Facebook it lets anyone view your “micro-blogs”. It allows the full-timetable masses to blog on the internet, and to follow the thoughts of others, whilst retaining their precious minutes and seconds.

Twitter gives me the opportunity, using 140 characters, to express my moments of complete genius (and the opposite) without the hassle of publishing blog entries like this. It also lets me view the genius moments of other people. Stephen Fry, Arnold Schwarzernegger and many other celebrities, heads of state, and general awesomes all contribute to twitter because its a fast, easy, and hip way to get in touch with the unwashed masses in a single sweep; and that is why twitter wins. Its not the external beauty, it’s what it allows people to do quickly, that makes it great. Its not about sharing your daily chores (I went to work today too, big freaking whoop), its about sharing those brief shining moments of brilliance with people before they are forever lost.

Oh, and if you’re interested, I can be found at: http://www.twitter.com/KarlNicoll