What is a good question?

Asking good questions can be a very difficult task. A lot of times when we ask questions we are not entirely sure of the answer that we need so we have a hard time being specific. Asking good questions is very similar to leaving good feedback in several ways. The first part that is similar lies in the actionable part. Good questions have an actionable answer, they have an answer that can lead towards a solution to the problem in the question. The second part is probably the most important part and yet least utilized part, specific, be as specific as you can be with your question. After you have finished writing your question, one of the most important ways to find out if the question is good is to read your own question. Could you answer this question if you were someone else? Read through it and makes sure it is clear, actionable, specific, are their other obvious areas that will need to be asked about before the answer you seek can be provided? Make sure that if someone asked you a similar question and you knew the answer that you could give them a clear answer for the question. Use common sense and sometimes it helps to read it out loud.

Titles

Within google +, you can't really include a title for your post so it is not as important, but within github or stackoverflow the title of your post is the first thing that potential answerers are going to see. The title needs to be specific enough to catch someones attention but not so long they cannot see what you are asking. Abstract titles don't include specific enough information for a potential answerer to feel they can be helpful. If your title contains specific information on the question, the possibility of a helpful answerer seeing the question and trying to help is much greater. People tend to avoid abstract titled questions because they are not sure if they will have the exact information needed to help you. On the other hand if the title is to long and worded out, the most important part of the question may not be visible to potential answerers and again they will skim right over it to go to more specific titles. In programming terms include the language that you have a question about so people that have experience with that particular language can help you. As you can see the title is the first part of the question that anyone will see and a good title will get you the most potential answerers.

Text in question?

The first paragraph of text that you enter is the next most important part. This is your problem statement and needs to be a good one. A lot of questions that I have seen posted will have obscure details about the writer or their abilities that aren't necessarily important to the question. You want to expand on the title that you posted in more details, while sticking to the main point. It is important to show the error or explain the problem that you are having, explain what you did to get there, explain the things that you have tried to fix it and explain what you are trying to accomplish. Good grammar and clean/clear speech is very important to a good question. No one wants to read a bunch of sloppy text and try to understand what you are saying. Make it as short as you can while giving as much detail as possible to these points.

Code or not to include code?

When it comes to programming, including code examples can be a very important tool to help improve your questions and get more specific answers. With that said, include as little code as possible to convey your question. Do not include your entire program, but instead the key area's that you feel are creating the problem. Include examples of the code itself, the terminal output, etc. that are appropriate to the problem at hand. It can also be very helpful to include code examples of things that you have tried to that others will not try the same things. If you do not need to include code examples to get the answer you need, don't! The shorter and simpler your entire question is the more likely you can get the answer you need.

In conclusion

As I hope you have learned from this short blog, there are a lot of important steps to asking good questions, especially in the online community. An eye-catching title, good first paragraph, and good code examples are all three huge parts of the process, but there are a few more groundrules that have to be included. As mentioned before good grammar, spelling and formatting are huge parts of making your question readable. Spelling and grammar go without saying but good formatting is huge, in stack-overflow you can easily see how your post is going to look and make sure that the code examples are formatted properly and your questions are broken down into paragraphs. If your question is one big paragraph it will be extremely hard to answer. The next set of golden rules is about making a good impression within the online community. Participate in the community both with asking questions, but also answering questions when you can. Make a good screename that makes you seem like an actual person not just someone looking for a quick answer. Pay attention to answers given, if you need to update you question, update it, don't just ignore people who have taken time out of their day to help you. Last but not by any means least, be polite, again these people do not have to help you and are doing so on their own time and without pay, be respectful as well as grateful. I hope you have learned a few tricks on asking good questions within your online communities and have good luck asking them in the future. Just remember these guidelines and people will be more than happy to help you within our great programming community!