I deal with a lot of questions every day and unfortunately most of them are phrased in a way that forces me to guess. There are some guidelines on how to ask a question but I think they are mostly pretty bad. Asking a question "correctly" helps you tremendously both in getting a correct answer faster and also in solving your own question. Following these three rules will significantly improve your questions:
Explain in no more than two sentences what are you really trying to accomplish
Explain what you tried
Screenshots, code snippets & error logs are crucial
What are you really trying to accomplish
Questions are a form of expressing our lack of knowledge, but when I bring someone else to help with my missing pieces of knowledge that person is ignorant about me and what I’m trying to do. That’s why every question should first start with and explanation of what we are trying to do.
E.g. I can ask a person where is the next pharmacy and he can send me two miles away, but if I ask "where can I buy gum?" he can send me around the block to a convenience store…
This is very applicable to technical questions e.g. developers often ask "how can I add a button anywhere in the screen".
The answer is "it’s problematic and varies".
A better question would start with "I am trying to place a button in the top right portion of the screen similar to this image…".
| || If you have an image use it, just make sure to highlight the element within the image you are interested in |
Explain what you Tried
Stackoveflow highlights this requirement and for good reason. It’s not just there to show that you did some work before poping the question…
This provides us insight into what doesn’t work so we don’t give an answer you already tried. It also provides insight into the direction you are taking so if some things weren’t clear in your description this should seal the deal.
A good explanation would also include the source URL where you got that information as it might provide further clues to why things didn’t work out.
| || It’s OK to say "I don’t even know where to begin" or "I tried googling XYZ and came up blank" |
Screenshots, Code Snippets & Error Logs
I can’t stress enough how important a screenshot is for any question, I’d like to recommend JING as it allows us to annotate screeshots very easily with text/arrows/boxes etc.
This makes a huge difference for visually oriented questions.
I get a lot of questions that complain about an error and don’t include the log from the IDE or include a cut version of it… This is problematic.
With source the balance is more delicate, you should include source but this is a fine art. Include too much and we will get lost when reading it. We will end up skimming the source and might miss an important nuance. Include too little and we might not see the problem.
I would have written a shorter letter, but I did not have the time.
— Blaise Pascal
One thing I didn’t get to is the length of the question, that’s because this stops being a tip about question asking and becomes a tip about good writing technique which is important but enters a whole new realm.
There are plenty of great books about writing and I wholly recommend them, good writing technique will impact your work significantly. It will help you communicate with colleagues, customers and employers effectively. Despite that it’s something that takes more work than these steps above all of which should be relatively trivial.