duncan­lock­.net

The Smart Guide to Stack Overflow: Zero to Hero

stackoverflow logo is made of people diagram
Figure 1. StackOverflow is made of people - lots and lots and lots of people.

Seemingly like everything else in the world, Stack Overflow is getting more & more competitive as time passes. Gaining a good reputation - and even finding good questions to answer - is becoming harder and harder, as more and more people compete for less and less unanswered questions.

This is fantastic if you want to find an answer - but makes it much harder for newcomers to get started and build a reputation on the site.

This guide will help you jump-start your reputation on StackOverflow and help you get more out of the site.

How to find questions you can answer

Ignored & Favourite Tags

Screenshot of part of my (very long) ignored tags list from Stack Overflow
Figure 2. I don’t know jack: Screenshot of part of my (long) ignored tags list from Stack Overflow

Use the no answers page, the newest unanswered page and the bounties pages, but make sure you add plenty of Ignored Tags. Whenever you see a question that you don’t know anything about, add it’s tags to your Ignored Tags list. This fades questions with these tags, making it much easier to skim through the list finding things that you can answer.

Don’t be afraid to add lots of ignored tags - it’s not an admission of failure - there will always be lots of things that you aren’t an expert on.

Add some favourite tags too - this highlights questions with these tags, again, helping you to sort the wheat from the chaff.

Wildcards

stack overflow ignored tags add with wildcard

Both Ignored and Favourite Tags can use wild cards - just put an asterisk at the end of the tag when you enter it - so xcode* would match both xcode and xcode4.5, for example. This significantly reduces the number of tags you need.

Specialize, Follow Tags & Automate

You can also follow a single tag - one of your Favourite tags, for example - just click on it in your sidebar and you’ll see a filtered version of the Questions pages, just for that tag. This also works for wildcards, so clicking on a wildcard tag in your sidebar will filter by all matching tags.

stack overflow follow tags feed with wildcard

At the bottom of each of these filtered lists is a link to an Atom Feed [1] that you can subscribe to in a News/Feed Reader [2] - this will alert you whenever new questions are posted with that tag.

You can also use IFTTT to automatically notify [3] you when new questions appear, when your reputation changes, etc - it can even send you an SMS, so you can jump in immediately.

Mercenary Reputation Building 101

Most of these reputation building techniques are win-win, thanks to Stack Overflow’s masterful gamification [4] architecture - but some of them are a little bit…​ mercenary:

Answers in the comments are just asking for it

For some reason, people often answer questions in the comments, rather than submitting an actual Answer - this is wrong for lots of reasons:

  • It makes the answers hard to find for other people & adds to the noise on the site.
  • It means that an answer can never be accepted, so other people won’t be able to tell if the question has an answer - and the question will appear in the Unanswered lists forever.
  • People get no credit for answers supplied in the comments
  • Formatting and space is intentionally very limited in comments - to try to dissuade people posting answers there.

If people are stupid enough to do this, then they deserve to be punished (a little tiny bit). Copy their answer out of the comment into a real Answer. Expand on it in the extra space you now have, improve the formatting, add example code, etc…​ - and wait for the reputation points to roll in.

Answer questions from experienced users

screenshot 13 06 06 07 43 18 pm
Figure 3. Except this guy.

Everything else being equal, answer questions asked by users with higher reputation. They know how the site works, they know to accept and upvote answers. New users often don’t, or they’ll ask a question and never some back - so it’s much more likely that you’ll get no reward for answering their questions.

New users also tend to ask lower quality questions, which are harder to answer well - and get closed more often - than questions from experienced users.

This is a little hard on new users, so if they’ve asked a well articulated, valid question and have a real looking username, I would suggest taking a chance and answering the question anyway. Even if the asker never comes back, you can still get upvotes from other users.

On the other hand…​

Encourage New Users

stackoverflow upvotes accept encourage users
Figure 4. These two techniques, used together, are very effective.

As ray pointed out in the comments, perhaps I was a little bit hard on new users.

So, you spend time researching and writing a solid, well written, correct answer to a question and…​ crickets. It’s either the only answer, the only good one, or it’s gets upvoted but not accepted. What now?

Here are two ways to encourage users (new or not) to upvote and accept your answers to their questions:

Leave a comment
Leave them a comment on their question, asking if it worked, if they had any issues with the answer and asking them to accept the answer if it worked for them - so that other users can benefit: from knowing that the answer works and by having the question marked as Answered.
Upvote their question
As Ray said: “I tend to wait and get some up votes, by that time the new user is used to SO so I up vote the question, 10 times of 10 he always accepts my answer and adds an upvote, 25 points collected by being patient with new users like me.”

Speculate to Accumulate: Answer lots of questions, well

This seems obvious, but the more questions you answer well, the more reputation you’ll gain - but not just at the time you answer: forever. Good answers keep building reputation over time as new people discover them and upvote them - and the more of your answers are out there, the more you’ll gain from this on an ongoing basis.

screenshot 13 06 06 07 27 10 pm
Figure 5. This answer was posted in May 2011, this screenshot was taken in June 2013.

Once you’ve got the top voted answer on a popular question, you will gain occasional upvotes and reputation from it without you actively doing anything. The more of this you have and the more popular those questions and answers, the more you gain - with top users sometimes hitting the daily reputation cap of +200 without doing anything.

If you find that one of your answers keeps receiving upvotes over time, then come back and improve on it. Edit your answer - improve the formatting, add better example code and answer any comments people have left - by improving the answer to address them. This increases the amount of upvotes that your improved answer will get over time and improves the quality of the site overall. It also bumps that question back up in search results and lists, making it more visible, increasing the likelihood of upvotes, and so on.

However - don’t do this too often. Only make edits that are worthwhile and add value to the answer - if you edit your answers too much, they’ll become Community Wiki posts and stop generating reputation altogether.

Get in First

Being the first answer is often surprisingly important. There are lots of other people looking through the unanswered questions list for questions to answer - as soon as a question has an answer it disappears from this list. Being the first correct answer to a question also makes it more likely that other people visiting the question will upvote your answer and move on, looking for something else to answer. Answers are sorted by votes, so the answer with the first upvote will move to the top, thus getting more attention and re-enforcing the cycle – answers with an early lead will often maintain it.

So, if you see a question that you know the answer to off the top of your head, answer it immediately. Get the gist of the answer down and submit it - don’t spend too long writing this first draft answer, or someone else will beat you to it. Then, read through your answer, think about it some more and edit it - expanding on your answer, adding more detail, improving it with examples and Markdown formatting.

Quick answers are also good for the asker - they get the answer they need quickly and can start working on their solution - and perhaps making follow-up comments while you’re further polishing your answer.

Preferentially answer questions with bounties

Again, obvious - questions with bounties give you the bounty as reputation if you post the accepted (or highest voted) answer.

screenshot 13 06 06 07 12 23 pm

Use the Featured list to see all questions with bounties. Your ignored and favourite tags work here too.

Even if the person who places the bounty never bothers to come back and award it - half of it will get awarded to the highest voted answer (created after the bounty started with at least 2 upvotes) when the bounty closes. This means that you’re only guaranteed to land the bounty if you can get the top spot, so answering questions with an outstanding bounty - but several existing answers with lots of votes - generally isn’t such a good investment of time. Unless you think you can provide an answer that’s sufficiently good to beat the existing ones before the bounty closes, don’t bother.

Getting Badges: Earning Valuable Flair

screenshot 13 06 06 07 14 59 pm
Figure 6. Ooooh look - pieces of valuable flair™

You will accumulate badges in the course of using the site, but there are ways to increase your accumulation rate slightly without going out of your way too much.

Preferentially answering older, unanswered questions is a good way to pick up Necromancer, Revival and Excavator badges - and using ignored tags is a great way to filter out the noise in the No Answers list, allowing you to quickly zip back to the older unanswered questions that you can answer. There’s also much less competition to answer these poor, neglected questions than there is for new questions, so you can answer at your leisure, taking your time to craft the perfect answer for the ages.

Screenshot of the Sharing buttons at the bottom left of a Question.

Another simple win-win way to acquire badges is by sharing your questions & answers with your friends, using the sharing buttons on the site. This is a double whammy - your question or answer will get more exposure, so more upvotes - and you can also get badges…​

Screenshots of the StackOverflow badges for sharing links.
Figure 7. StackOverflow’s Sharing badges

The Announcer, Booster & Publicist badges are awarded for sharing a link to a question that was visited by 25, 300 or 1000 unique visitors, respectively - and they can all be awarded multiple times.

See Answer Your Own Questions, below for another easy to earn badge.

Ask Good Questions

You can also get reputation (and badges) for asking questions: +5 for each upvote your question gets.

How to ask good questions? Questions that attract good answers - and upvotes? The official guide is here. In addition to this, my tips for good questions are:

Search first

Someone has almost certainly asked your question before and the answer is just there waiting for you. Search with Google & directly on Stack Overflow.

Think before you post

Don’t just ask questions for the sake of it - or for the reputation. Ask when you’re genuinely stuck. Try to solve the problem yourself - but if you really can’t, ask. Mention your attempted solutions in the question, so that people know what you’ve already tried and eliminated.

Explain carefully

Carefully explain your problem, in detail, so that someone without any prior knowledge of your situation can understand the problem. They’re not telepathic - you need to explain yourself succinctly and thoughtfully if you want a good answer.

Include a relevant simplified example

Boil your problem down to its essence and include a simplified example - with any required code and data - in your question. Try and make this as short as possible without leaving out anything essential.

A working example, using jsfiddle, sqlfiddle, rubyfiddle, etc…​ is the gold standard. Put the simplified example code into your question as normal, but also upload it to the relevant *fiddle site and add the link to your question.

Use Markdown formatting

This goes for both asking questions and answering them. Stack Overflow supports Markdown for formatting your posts - use it! It will make your questions easier to read and understand, you’ll get more upvotes and better answers.

Read before posting, then read it again afterwards

Read your question through a few times before posting. Make sure that it’s well phrased, well formatted and spelt correctly. Make sure that your example code and data is clear and concise and includes everything you would need to reproduce the problem.

Once you’ve posted it, read the live version and edit out the mistakes you missed before posting.

Answer your own Questions

In the unlikely event that you can’t get any help from StackOverflow initially - but later figure out the solution yourself - post both the question and the answer at the same time. As balpha said in the comments section:

If you’ve had a hard or interesting problem for which there’s nothing on Stack Overflow yet, and you have eventually managed to solve it yourself: Ask and answer the question. Someone else is bound to be having the same problem, and you already did the hard work. The “ask question” interface has a checkbox that lets you submit an answer alongside with the question. And if you’ve already asked the question, and then later managed to solve the problem: Go ahead, answer your own question.

Not only can you spare the next person with the same issue having to figure it out all over again - you also have a chance to get an upvote from them on both the question and the answer, for a total of 15 reputation!

Reputation Bonanza!

If you later figure out the answer to one of your questions - or figure out a better answer, or a new solution becomes available, come back and tell everyone by either answering - or adding an answer - to your own question: everyone wins.

Screenshot of the Self Learner Badge from StackOverflow
Figure 8. Answered your own question with score of 3 or more.

This is offically encouraged - there are even badges for doing it, so Ask and Answer away!

If you’ve got any tips or advice I’ve missed, I’d love to hear about them in the comments below.


Footnotes & References


  1. *Atom Feeds* (like RSS Feeds) can be used to allow users to subscribe to updates from a website. Wikipedia Atom Article…​
  2. A *Feed Reader* is a piece of software (Desktop, Mobile or Web based) that allows users to collect/aggregate and read their Feeds, manage subscriptions and send notifications. Wikipedia Feed Reader Article…​
  3. *IFTTT* enables you to create and share “recipes” that fit the simple statement: “if this then that”. The “this” part of a recipe is a trigger. Some example triggers are “I’m tagged in a photo on Facebook” or “I check in on Foursquare.” The “that” part of a recipe is an action. Some example actions are “send me a text message” or “create a status message on Facebook.”. Wikipedia IFTTT Article…​
  4. *Gamification* is the use of game thinking and game mechanics in a non-game context in order to engage users and solve problems. Wikipedia Gamification Article…​