How do I ask good questions?

How do I ask good questions?

Have you explained your problem in detail to the nearest teddy bear?

Was that explanation coherent, or was it hard to make him understand?

If you can’t formulate your problem – you can’t formulate a question, so the first step is for you to properly identify your problem for yourself. After that, you are ready to ask us your questions.

Give a context – What is obvious to you, may not be obvious to us. We don’t know the whole situation. When we start thinking about your problem, it helps us to understand in what context the question is asked. What platforms, compilers, versions, technologies or techniques are in use?

Give exact details – We need the specifics of the symptoms as they happen. We need the actual error messages and not the approximate versions you think you remember.

If you post a picture, please explain in words what is wrong in the picture.  It might be obvious to you, but we might not understand that we are looking at a problem.

Be prepared to answer questions about your question and try to give good answers to these questions – even if they seem irrelevant to you. Our questions are a result of us trying to understand your problem.

If possible, come prepared with sample code that exhibits the problem (

Note: I just jotted this down from the top of my head, so any suggestions for changes or additions are most welcome.

17 thoughts on “How do I ask good questions?

  1. I find that SO is more of a direct Problem>Solution platform, rather than a place to divine the problem from the near-infinite universe of problems that it could possibly be.

    Does that make sense?

    If your question leaves any room for troubleshooting to narrow the field, you’re going to get some “abuse” on SO.

  2. I don’t think there’s such a thing as a “stupid question”. If your question covers the bases, describes (as concisely but completely as possible) the problem as you see it, along with any materials that would rationally illustrate that problem… then you’ve done the due-diligence.

    There will always be people in this world who feel that your question is stupid simply because it indicates that you don’t have the knowledge and experience that they have.

    That doesn’t mean your question is stupid, it just means that those people are arrogant.

  3. With SO, I find the only viable way to appease the pedants (not saying everyone is pedantic, just… many… of them) is to use the same approach one would to document something in academics.

    Here’s what I’m trying to do

    Here’s where I’m encountering a problem

    This, therefore, is what I see the problem as being

    Here’s what I’ve tried to rectify the problem

    Yes, I’ve searched Google using the following terms

    and, if at all possible…

    Here’s a code example or link to a complete reproducing project

    ^ If you tick the above boxes, it’s difficult for even the most pedantic of people to bludgeon you to death with your own question.

  4. Daniel Jackson The last tick is wrong 😉

    You have to include MCVE in question. Links to code are not welcomed. You can add additional link to full code if you think it may provide additional context, but that is seldom needed.

    Most of the time when people have problem asking questions on SO (and that are not write me code, or recommend me book, library or similar) is that they don’t provide proper MCVE. they either don’t post any code or too little, or they just dump all the code they have.

    And the fact is that half of the questions would not need to be asked, because they would find solution while writing MCVE. 

  5. Sergey Kasandrov I know…. I’ve seen Donald Trump’s “hair”. I don’t know if it’s a question or the answer, but regardless it defies explanation.

    I should put a bounty on it on SO 😉

Leave a Reply