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

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!