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!