Asking good questions
- How to ask a good question
- Where to ask questions
Eventually you will get stuck when trying to do something. This lesson is about how to get help with getting unstuck.
People love helping others. Below some tips on how to improve your chances of getting a good answer. The answers you get will depend very much on the way you ask your question.
The title/subject is the first thing people will see of your question. If it is not interesting, they will not read the rest. If you are struggling with a good title, write it last! Having written the rest of your email will give you a better idea of what the one sentence summary is.
Most people like hard problems and thought-provoking questions. So give them an interesting question to chew on, and they will love it.
Despite this, mailing lists have a reputation for a hostile tone and an air of arrogance. People are hostile towards people who seem unwilling to think for themselves or did not do their homework before asking their question.
It is OK that you are not technically competent, what you need to show is that you have the skills to become competent: alert, thoughtful, observant, willing to be an active partner in developing a solution.
Before posting your question try:
- searching the archives of the forum/mailing list
- searching the web
- finding the answer in a FAQ
- finding the answer by experimenting
- asking a skilled friend
- or reading the code
When asking your question, mention which of these steps you have tried. It will help demonstrate that you are not lazy and put in some effort. If you learnt something from trying this, mention it!
The beginning of your email should explain what you are trying to do and why, as well as where the problem occurs. Often it is useful to describe the big goal, and not the particular step you are stuck with.
Help others reproduce your problem by including the necessary details. If the problem is with code you wrote, include it. However do not post all of your program. Try and make a minimal example that demosntrates the problem. Stack overflow has a good guide on creating a minimal, complete, and verifiable example.
You have to be precise. Do not simply dump all possible information that might be relevant. Vague questions receive vague answers. Being precise is useful for at least three reasons. One: being seen to invest effort in simplifying the question makes it more likely you'll get an answer, Two: simplifying the question makes it more likely you'll get a useful answer. Three: In the process of refining your bug report, you may develop a fix or workaround yourself.
When people post replies or questions about your problem, follow them up. If you manage to solve your problem, tell the mailing list.
Once the problem is solved post a final message saying that the problem is solved and what the solution is.
A lot of the material in this topic was taken from the following, excellent guides to asking good questions:
- How To Ask Questions The Smart Way by Eric Raymond
- Writing the perfect question by Jon Skeet
- How do I ask a good question? on stack overflow