How you phrase a question goes hand in hand with the answers you will receive. A well formed question often receives a well formed answer. A poorly formed question a general answer, if any at all. Below are some tips to help one form a question in a manner that increases the chances of receiving help:
Ask a specific question. General out of context question - such as 'what am I doing wrong' or 'I'm stuck, what do I do next', or just posting a homework assignment - makes it difficult for contributors to point you in the right direction. Rather, rephrasing these questions - 'I get the following compile time error in the following code, what is causing it and why?' followed by the code and error - results in much more context and makes it much easier for contributors to answer. When posting questions specific about code, you should ask and answer the following question (and information such as error messages and stack traces to the question itself).
- Does it compile?
- Are there exceptions?
- Does it function as expected?
Be descriptive. Don't assume others know what you are talking about, know what your code should do, or know of any errors that are not posted…more often than not, we don't. If there are exceptions, post the full stack trace. If it does not compile, post the error message(s). If it misbehaves, post what you expect and what you get.
Use a descriptive title. Titles such as "I need help" or "Help" do little to describe your problem. The title is as important as the post itself.
Don't just post a homework assignment. The forums are not a code service, homework service, and we definitely will not help you cheat. If a posts shows an effort, than contributors will make an effort. If no effort is shown, no effort will be given.
Post in the correct forum. Some users are experts in one thing, other users another…and each might browse a particular forum topic. Choose wisely: doing so opens your post to the appropriate audience.
Use the code tags ([highlight=java]Code Goes Here[/highlight]). These tags makes code readable, as does proper indenting, comments, standard java syntax, etc...
Post an SSCCE (Short, self contained, compilable, correct example). Strip away code that does not matter, avoid posting huge volumes of code, and post code that clearly demonstrates the problem in as few lines as possible. Oftentimes, the process of taking volumes of code and stripping it down the problem at hand will reveal the answer. If not, it helps others spot problems much easier.
Short, Self Contained, Correct Example
Do your research. Did you try a forum search or google? Oftentimes a question can be answered much faster by simply investing a few seconds with a search. And oftentimes if this is the case, all you will receive is an answer in the forums containing a link to google or the top hit in google.
Write Legibly. Text message shorthand, screaming (exclamation points, all caps, large fonts), and other types of writing that are not standard english grammer could hurt your chances of receiving help. It can often times be hard to read, but more importantly perceived as rude, lazy, and selfish. If you don't spend the time writing legibly, if you think your post is more important than anyone else, why should anyone spend their time trying to respond?
Avoid demonstrating urgency Urgency is relative - all questions to the forums are 'urgent' for the person that posted it. Stating this in a post not only makes your post convey selfishness - as if your post is more important than anyone else - but can also be perceived as rude by contributors, with the perception that your time is more valuable than theirs. Don't bite the hand that feeds you.
Try different things…then do it again. Programming is a workflow, which includes several rounds of making changes, compilation, and debugging/testing. Adding System.out.println statements lets one evaluate the value of a variable during runtime, and a debugger is invaluable for stepping through code to analyze the progress of a program. The point is to try, and oftentimes responses to posts will be just that: what did you try?
Remember, contributors to the forums do so on their own free time, unpaid. While all contributors do their best to help, when it comes down to it you are responsible for your code, and you are responsible for finding the answers. There are hundreds of posts here, and keeping up with them can be difficult. Posts that contain well formed questions encourage contributors to reply and get your question answered that much faster.
Further reading:
How to Ask Questions the Smart Way
SSCCE
How to Program when Stuck
Technical Forums: What not to do