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.

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 (http://stackoverflow.com/help/mcve).

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.

    Like


  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.

    Like


  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.

    Like


  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. 

    Like


  5. Sergey Kasandrov well, we know that the ultimate answer to life, the universe and everything is 42.


    Does that mean we can, from that answer, begin to formulate the ultimate question?

    Like


  6. 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 😉

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

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

Google photo

You are commenting using your Google 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.