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.

Comments

  1. What if my problem is that I don't know how to ask a question? How then would I ask for help? :P

    ReplyDelete
  2. Daniel Jackson, No worries. David Heffernan will come to your rescue ;)

    Edit: For the record, David wants us all to ask better questions, and that is a good thing.

    ReplyDelete
  3. I'm not sure if that's intended as a comfort or a threat ;)
    (No offense, David Heffernan... I'm going for comedy value here)

    ReplyDelete
  4. Daniel Jackson In that case DO NOT ask it on Stack Overflow ;-)

    ReplyDelete
  5. Asking for advice would be off topic on SO but suits fine here.

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

    ReplyDelete
  7. The question is, do you want this forum to also include novice programmers :) I'm a novice and am capable of asking really stupid questions :)

    ReplyDelete
  8. 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.

    ReplyDelete
  9. You can ask stupid questions on SO as well, as long as you have done your part to present your problem well. And if Google search does not reveal immediate solution.

    ReplyDelete
  10. 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.

    ReplyDelete
  11. 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.

    ReplyDelete
  12. The best way to ask a good question is to find the answer first; knowing the answer your can start formulating the question right.

    ReplyDelete
  13. 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?

    ReplyDelete
  14. Daniel Jackson Probably not - some answers have no corresponding question.

    ReplyDelete
  15. 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 ;)

    ReplyDelete
  16. Lars Fosdal​ you have got a typo in the picture's question: It should be "... is this the Society ..."

    ReplyDelete
  17. Thomas Mueller Well spotted. I googled "stupid question" and picked one of the results.

    ReplyDelete

Post a Comment