How do I ask a question so that it can get a quick response? I see some of the questions are very old and still not answered, but some others get a very quick response.
Provide enough information. Peter has added a lot of other points, all of which I agree with, but it's usually the lack of information which stymies us.
If "something goes wrong" tell us what. If it's an exception, post the full stack trace. If it's a compile-time error, post the exact error message. (Not "something like this" but cut and paste.)
Don't post code which is "something like" your code which fails - post actual failing code which we can compile and run wherever possible. (See my "short but complete" article.) It's very frustrating to point out errors only to be told, "Yeah, but that's just a typo - it's not in the real code."
Read your question to yourself after typing it out, trying to imagine that you're coming to it with no other information. Does it still make sense? If you were trying to answer it, is there anything else you'd want to know?
Oh, and respect people who are trying to help you. If you become argumentative with answerers, they'll just go elsewhere.
All the other answers are right, but people will not try to help you if you haven't gotten your "hands dirty" with the problem. You'll notice that the process of specifying the question pushes you further in the debugging and testing of what you think is happening. Keep going! Many times you resolve the question yourself, or it derives in something that you really don't know that is actually useful to everyone.
Bracketing: Try to get the problem to be as small as possible. You might think that you're asking about 50 lines of code, but if you can figure the one line that is not working, people can easily help you. Few people want to help you figure out which of your 50 lines of code is not working. Also, if your question is a dupe or easily answered on Google, you should know it before they do.
Find all dupes, and find an SO answerer that is the right person to ask the question: To do this you will have to find all SO dupes of your question, and you might find that it's answered already. But if you find something really similar but different, comment the best answer response and ask politely if they might care to look at your question.
In addition to the other answers given here, I would also add that for really fast and good responses, ask at a time of day when many software developers are using SO, so usually working hours would be good.
I suspect about 2pm - 5pm (GMT) would be good because you get the bulk of European software developers at work and the bulk of US-based software developers at work.
All the steps below will make your question get an answer quicker. Some points apply only to stackoverflow but their core message is good to keep in mind for all SE sites.
- good title
- Make question easy to read make it short
- Format code correctly. Indent etc. (look below for more detail!)
- Provide background
- Make your question most generic version of a specific problem
- Provide code that actually stands on its own
- Edit your question often
- Use correct tags on your question
- Post links to your question elsewhere
- Clarify all the questions other people have about your question
- Show that you have worked on the problem yourself
Full answer with explanations
Make sure you have a good title
Make sure that you make your question easy to read -means short! Post most important information first, if its a programming question post only a snippet of your code first and if you need to provide more details post more of your code below (its even better to post a snippet in the question and provide larger pieces as an external link it makes it more likely that people will not just click on your question see that its long and run away)
Make sure to format your code correctly. Your code should also be presented in the most generic way. If you are doing tons of other things that are not related to the example cut them out of the example (its good idea to actually cut them out and then run your code again to see if the problem actually lays where you think it does and then post that example) Its important if you do this to post your actual code as well (possibly as an external link) if you dont you might get a quick answer but not a one that answers your actual question with your full code which might frustrate both you and the person that just answered Indent your code correctly, and use names that are easy to understand for everybody thats not involved in your project. (it might seem like a good idea to name your variables
sz_vamps_cong_tooglebut if you are posting a small snipplet that has no other toogles it's best to just name it
tooglekeep it minimalistic, again if you do this you need to provide your actual code) You can also provide external links for other material that is just too long for a question. Following this step might prevent you from getting the right answer if you dont simplify your code correctly so if you arent sure just dont do it
So use this with caution and try to avoid falling into the xy problem trap
Provide a lead in or a background. Ask the question in the way that everybody can understand what you are asking for before they even look at your code.
Make your question is most generic version of a specific problem (so don't ask how do i make my input fields disappear in this code - ask how to fade an element out/in in jquery it will help other people in the future as well)
Provide code that actually stands on its own (or for other sites provide a question that stands on its own without having to look for too much outside information). In some cases this means providing a code that once copy pasted will compile/work. Its also good idea to provide a link to a working example if possible (like a link to jfiddle if its jquery related) Its best to post links to information that might be needed but takes up a lot of space.
Edit your question often - first of all it will improve the question but it will also make it go up the list so people can see it. (and shows that you are still interested in the question so more likely to check the answer and accept it as best. If you are not satisfied with the answer you marked as best you can edit your question and see if anyone else posts a better answer, turns out there is already a question about that)
Use correct tags on your question. Don't put just one tag put as many as you can think of if they are appropriate, if you have too many discard ones that are not as popular. People that search for questions by tags will be able to find your question easier and it will get more attention and will get answered quicker. You should not put tags in titles (even if it can bring you a faster answer)
Post link to your question on forums on other website, send them to your friends and people that are interested in the topic. Even if they don't know the answer question with more views are overall more likely to be answered and some of the other people you share your question with might also share it with others. (Please dont spam people it might work but I hate to be the one responsible for such an idea)
Clarify all the questions other people have about your question. If people are confused about something they will not be able to help you with your question and they might not be the only ones that are confused but the only ones that are speaking up.
Show that you have worked on the problem yourself and provide what you came up with. People will be more willing to help you if you show that you tried to find a solution and you are not here because you are too lazy to do any work yourself.