StackOverflow is one of (if not THE) the top common Q & A websites in the world. When you ask Google a code question, StackOverflow’s result will probably appear in the top 5 and when it comes to niche questions, it will probably be the top.
According to Joel Spolsky — StackOverflow’s Co-Founder, almost all of the developers in the world are using StackOverflow.
On the other hand, too often people, especially beginners, are complaining about StackOverflow’s attitude and by “complaining” I’m pretty gentle (take this post, for example).
Even StackOverflow themselves are aware of this problem and they published a post in 2018 called:
Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change.
So, how is it possible? One product that developers can’t live with, but can’t live without it?
StackOverflow is that good because, not despite..
StackOverflow is that good because it’s all about content, not about emotions. StackOverflow is not a social network. For example, you can’t contact other people directly through the platform:
Instant messaging or private messaging is not available: requests to implement that have been declined to keep focus on questions and answers, and to keep those visible to everyone.
Your posts (questions and answers) will be promoted by the community only by their quality and the chance that they will help other people.
So, to answer the post’s question “Is StackOverflow a friend?” the answer is a big yes but only if you’ll play by its rules.
Now, the big question is “How to play nicely with it”? How to behave in StackOverflow so your profile will not be blocked, and your posts will not been downvoted (I have some of those, so I know the feeling 😀)?
I’ll give you the tips in a minute but first, I want to explain my rule of thumb. Posting in StackOverflow is like chatting with a real person. Whenever you post on StackOverflow, imagine that you’re speaking to a colleague. If (still in your mind) you’ll get a valuable response for your question without any followup questions, the post will not be downvoted (most likely, I’m not an oracle and I don’t work there).
After we understood that, let’s talk about the details:
Before asking
- Search for a similar question
StackOverflow doesn’t like duplicated questions. Obviously, it does not qualify as “good” content. - Try it Yourself before
When you face a problem, don’t jump and ask right away. Try to answer it yourself, explore. Responders will want to make sure that you’ve done everything you can to solve it by yourself before you’re asking for their time. - Read the docs
Yeah, there are many of them, I know. But it’s important to align with StackOverflow’s expectations. I would focus on the “Asking” section. - If you’re asking about a library or tool, check its documentation first, don’t let people RTFM you.
And remember “At Stack Exchange, asking questions is a privilege, not a right” (https://stackoverflow.com/help/question-bans)
When asking
In general, if you want people to invest their time to help you, you should help them first. The ideal question is one that respondents don’t need more information from you and they have no headache after reading your question.
- Make your questions as short as possible — long questions cause the responder to lose their focus and skip to the next question (or back to their hung build).
- Don’t miss details — supply all the details that are relevant to the question (but not irrelevant details, like how much time you code).
- Post code — in 99.99% of the cases, your question is about coding so you can’t expect people to answer you without seeing your code. From my experience, it’s better to ask a typo question with code than a good question without.
- Don’t include irrelevant code. If your question is about sorting an array, posting the whole file will not help. Add only the piece of code that is meant to sort the array and does not work as expected.
- Do everything you can to reproduce the issue you’re asking about — if “one picture is worth a thousand words”, runnable code’s worth 10,000. There are plenty of free tools (jsbin, codepen, codesandbox, stackblitz etc.) to do that.
- Tag properly — sometimes the tags are critical to understand the context of the questions. Is your question about
javascript
? Don’t tagjava
.
Is your question about a specifically known library? Tag it. People who are experts of that library may be watching its tagged questions (yes, there are such bored people) and could find your question easily.
After asking
- Be responsive. If you don’t have time to respond, don’t ask now.
- “Your solution is not working” comment, doesn’t help. Supply details about what exactly is not working. Are there errors in the
console
? Is the whole thing not working or only part of it? Did you use the answer’s code as is or did you change it? - If the solution is not working for you, try to isolate it to make sure that the problem is in the solution and not in your environment or in other areas of your code.
- Add nice comments, people owe you nothing. If they already spent their time to help you, be nice to them.
- If you updated the question, let people know or mention in the question what have you updated.
- People are answering short answers to be the first and grab the reputations (I’m serious) and then update it with more details, so wait for this before you comment.
You’ve got an answer that solves your question?
- Thank.. with words.. it’s free and requires a tiny effort but can make the responder very happy.
- Accept the answer — First, it will help other people who read your question to understand that this answer should work. Second, it will give reputations to the responder so this is another way to thank them.
- Upvote — very similar to the last section but there is no limit of how much good you can do, right?
Happy questioning!
Have something to say? I’ll love to 👂
If you interest, https://stackoverflow.com/users/863110/mosh-feu