30 Days of Answers on Stack Overflow

The Build Up

For years I could summarize my usage of Stack Overflow as “open a browser tab, search the web for my problem, click on the Stack Overflow result, follow the answer’s advice, close the browser tab.”

I was a Stack Overflow leech. I never gave any feedback to the useful answers I came across and I certainly never provided any questions or answers of my own.

Eventually it occurred to me that Stack Overflow’s success is built on the courtesy of its users. I used the site for years without giving anything back because nothing requires you to do so. Every question, every answer, every helpful comment — they only exist because someone had the courtesy to write them. Sure, Stack Overflow offers some incentive to help, but the way you earn badges and rep is also totally optional and usually up to other users. For example, if you write a question or an answer, no one is obligated to vote for or against your post.

I had been using this site for years without contributing in the slightest. There were probably dozens of answers I had found helpful but never even upvoted.

It was time for me to start giving back.

The Goal

One day, while reading through the list of badges, I saw that I could earn a silver badge by visiting the site for 30 consecutive days. I decided this would be the basis of my goal. I would use the site for 30 straight days and try to reach 1,000 rep. But I wouldn’t ask any questions, I would only answer them.

The Execution

As you can see from the chart below, I just barely reached my goal.

I discovered there’s an association bonus of 100 rep that you get when you hit 200, but I also had over a week’s worth of days where I didn’t score any rep at all. It was basically a slow, methodical process of reading and answering enough questions to average the 30 or so rep I would need each day to meet my goal.

Progress: Slow but Cumulative

Progress: Slow but Cumulative

The Experience

Stack Overflow seems like a fairly straight forward Q&A service but spending thirty days immersed in answering questions helped me learn some of the more subtle aspects of the site and its community. Here are some highlights about what I learned:

Cherry Picking

It did not take me long to discover that questions are asked VERY frequently. It was easy for me to spend a few minutes every couple of hours each day simply refreshing the newest questions page and knocking out a few quick answers. It also did not take me long to discover that there is a lot of friendly (and sometimes, not-so-friendly) competition out there!

There were a few lessons I learned by playing the cherry-picking game.

First, make sure you understand the whole question. Read the whole question and make sure you understand what is being asked for. If you don’t understand then comment and politely ask for clarification. It is also very important to read the labels. There was at least one situation where I answered a question incorrectly because I made an assumption about the environment that the user was in and reading the labels would have prevented my bad assumption.

Second, don’t let the speed of your answer sacrifice the answer’s quality. Silly spelling and grammar mistakes won’t help anyone and are easily avoided by slowing down and/or reviewing your answer before posting it. To put it another way: well-written, complete answers get upvotes and short, sloppy answers do not. Don’t write a quick, incomplete answer just to immediately edit it and fill in the missing details. Too often did I see people do this only to have other viewers, including the OP, ask for clarifications that don’t end up making any sense after the answer’s details were filled in. This behavior breaks the continuity of the Q&A process.

Third, if you are writing an answer and another answer is posted before yours then read it before you post. If it’s effectively the same answer that you were writing then concede your answer and upvote the other answer. If they missed a detail that you were going to provide then add your additional details in that answer’s comments.

Help Vampires

There is a certain category of users on Stack Overflow known as Help Vampires. These users “drain the willingness to help from others.”

This is definitely a problem on Stack Overflow but I didn’t know it had a name until another user called a question-asker out for being a “Help Vampire.”

I answered questions for several users who might be considered help vampires and only once did it really become an issue. The user accepted my answer but then continued to spam my answer with comments that asked new, unrelated questions.

What I did (and what I recommend other users in this situation should do) is write a comment to the user explaining what they are doing wrong and what they should be doing to correct it. In my particular case I suggested that the user search SO for the new questions that they have and if no answers were found then they should ask their questions as new, instead of as comments on an unrelated question.

The link to Meta Stack Exchange that I provided above also provides solid responses to most of the help vampire scenarios a user might come across. All I would add is that in cases where the generally accepted answer is to “vote down” or “flag for moderation”, consider first commenting on the question and explaining how the asker could correct the issue on their own. Give the user an opportunity to correct their own mistake. This way you might help the user learn something new about the site. You might even save a moderator some time too!

Pedantic Werewolves

Pedantic werewolves, a term that I totally just made up, are the flip side of the help vampire coin. I think they are the once well-intentioned users who have been forever transformed into something sinister by the help vampires.

As I started becoming more aware of the help vampire problem I realized that some users simply called out help vampires in ways that were mean, unhelpful, or barely helpful. Comments made by pedantic werewolves include “This is clearly just a homework problem,” “Did you even try Googling first?”, and “Duplicate.” By the end of my thirty days I was more tired of the werewolves than I was of the vampires.

My suggestion to pedantic werewolves is to please try being constructive and helpful at all times. Try following the most popular answer for the help vampire problem. Consider taking my advice on the help vampire problem too!

If you come across a werewolf just ignore them and do what they should have done in response to the help vampire. Set a good example and don’t start a flame war in the comments.

Downvoting

I tried really hard over my thirty days to provide good, detailed answers to questions. At some point though, an interesting thing happened: one of my accepted answers that had zero upvotes ended up getting downvoted.

This downvote haunted me for days. The user who downvoted my answer did not provide any explanation even after I asked for one. My answer was accepted, so clearly it was good enough for the user who asked the question, but I will never know why I took the -2 hit to my rep because of the downvote.

Commenting when you downvote is not required by Stack Overflow and after much lamenting I’ve concluded that I think this is how the site should work. Commenting after a downvote is just another area of the site where courtesy reigns.

If you are feeling courteous when you downvote, though, I recommend you respond in one of two ways:

  1. If a comment already exists that explains why you are downvoting, upvote that comment to draw further attention to it.
  2. If no such comment exists, provide one that constructively explains how the question or answer could be improved.

The Conclusion

If you are a developer or user of Stack Overflow (or any Stack Exchange site for that matter), create an account and stay logged in. You’re probably gaining a lot of benefit from the site so why not use some of its built-in feedback capabilities to improve its overall quality?

The next time you find a useful answer, upvote it! You’ll be helping the user who provided the answer with some rep, which is the Stack Overflow equivalent of a thumbs-up and encouragement to keep up the good work. If the question was phrased well, upvote it too. If not, then add a comment providing more detail that might help other people users.

Do this enough and one day you might even find yourself providing answers of your own!

About these ads

14 thoughts on “30 Days of Answers on Stack Overflow

  1. I have an issue with Stack Overflow and the overall gamification system: Making mistakes is part of the learning process. If the “less knowledgable” can take a swipe at answering a question – and then is gently corrected – he learns a lot more. But I don’t dare take a swipe at answering because I’ll be downvoted and possibly flamed to a crisp in the comments. I may well be oversensitive, but the negative feedback paralyzes me.

  2. Fellow SO user here. I found SO after many years of participation on comp.lang.python . I tend to use it in a similar way and so had started answering questions from the start.

    This post was an enjoyable read but left me with one question: “What will your future SO interactions be like”?

  3. I asked my first Stack Overflow question the other day. My post was edited and commented on saying not to say thanks for any help – wtf? Someone answered it in 2 days and I was really appreciative – usually I would have said thanks, but apparently that’s not ok? I really appreciate having SO answers when I get stuck on things, but what kind of community is it where you can’t say thank you?

  4. Well. After years of using the site, I’ve decided to contribute. I wonder if StackOverlow.com notice a spike given that this post is number 1 on reddit?

  5. this actually inspired me to be more active in the future in commenting on topics that are interesting or helpful to me.

    thanks!

  6. John: So what? The hit you take when your answer is downvoted is a fifth the gain you get when your answer is upvoted. If you get an equal number of upvotes and downvotes you still come out way ahead, and unless you’re horrible at what you do you should be getting considerably more ups than downs.

  7. I’ve been on the same trajectory as you, but longer: about 4K over 5 months. My take: you won’t really get what you call the vampire problem until you pass 3K and get access to the close queues.
    What most people miss early on is that Stack Overflow is not a help forum. It’s a place where good questions meet good answers for the benefit of all concerned (including ‘leeches’). Bad questions are not welcome and nor should they be. There are others who depend on this.
    So keep on trucking. You will see things differently as your experience on the site grows.

  8. Nice write up, I love SO I’m on there for hours on end daily (in the chats) the best advice is definitely to create an account just to upvote helpful answers (And the question that led to that answer) if anything it just lets both people know they’ve helped someone else which is always a good feeling.

  9. Nazaniel: The “thank you” that you leave will most not even be seen by the intended recipient. It also clutters up the site. I guess that’s why it’s frowned upon.

    I think it’s also the case that if you really want to thank somebody for their answer, an upvote (and an accept, if you asked the question) is usually more appreciated than a thank you.

  10. The ‘no thankyou’ rule is because you are assumed to be thankful for people helping you… and if every question is surrounded by thanks it adds to the cruft and ‘visual load’ that people have to go through to find what your question actually is.

    The other thing is that if you are a bit nervous that you may not be 100% right but no one else is answering then PLEASE submit an answer. If you are basically coherent you almost certainly won’t be down voted… and as stated above a single up vote gets rid of a the damage for a few down votes.

    If you do happen to post a wrong answer then this is good too… as it will bring to the fore Cunningham’s Law which states “the best way to get the right answer on the Internet is not to ask a question, it’s to post the wrong answer.”

    People LOVE correcting people who are wrong, and as the point of the site is to get a correct answer… if your wrong attempt forces someone more knowledgeable to show their vast learning then it is all for the good (in the end!)

  11. There is zero need to be nice to people posting there homework or asking the most-stupid questions on earth without showing the slightest motivation doing personal research. Such people are asocial and do not deserve any kind of protection or mercy. The time of having mercy on IT idiots is over.

  12. i also found that answering the guest/unregistered users is generally useless. these are questions asked by authors given a name such as ‘user3437460′ and the reason is because they generally don’t respond, don’t mark questions answered, and are just lazily looking for quick answers to their questions.

  13. In Stack Overflow, it’s important to choose the right question to answer. A lot of questions are ‘throwaways': people working on a specific thing ask something they need to know for this one case. These are not good questions to have on the site for posterity because they don’t have general value to people over time.

    Sometimes you can edit a question and express it in a more general form, and then answer that. Doing that helps the community more and is also encouraged. Always try to think of problems in their most general sense. To paraphrase Einstein, make questions as general as possible, but no more than that.

  14. Pingback: Programming Issues, 7월 4, 5 주 | Tinkering Driven Life

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s