The Wealth of Networks
When you ask a question - of a classmate, a teacher, your network, or on the net - you are asking people to do you a favor. One view of the human condition suggests that people have no reason to help you. Another says that most of us realize that helping others, even if they don't repay us directly, makes the world a better place (in the spirit of "what goes around comes around"). In the social sciences we call it generalized reciprocity or just "altruism". A large part of why the internet is useful is because of the donated wisdom of millions of people.
In any case, most hackers, programmers, and technical folk are amazingly willing to answer questions provided you:
- show that you've done your homework,
- ask nicely, and
- make it easy for them to understand what you need.
With that in mind, a few pointers.
The First Rule of Computers
"It was almost certainly human error."
When things go wrong, it's almost always something I did. Neither hardware nor software ever do anything really original or surprising or unpredictable or different from last time. If it seems like they did, it's a safe bet it was you.
This is a good thing, though it can take a while to get used to. It is a good thing because it means you can almost always retrace your steps, think slowly through what you think you did, double check everything (and then the other stuff too) and it will almost always pay off.
If you think your machine or software are behaving randomly, the safest assumption is usually that it is not.
Google a Description of the Problem
So, if something goes wrong, it's probably your fault, but you are almost certainly not the first person to go down this path. If you have a little patience, perhaps 75% of all problems can be resolved by reading an exchange between some befuddled soul in Singapore and some über-geek in Sweden.
Read the FAQ.
They are called "frequently asked questions" for a reason. Don't make folks to provide frequently given answers.
Work Hard to Dependably Reproduce the Problem
Many problems can be solved by trying to reproduce them carefully. In the process you discover some step you skipped or a direction you misread. But even if it doesn't solve the problem directly, carefully tracking what actions and conditions lead to the problem (and which ones, if different, don't) will often lead to a diagnosis. But even it THAT doesn't happen, being able to communicate to others so that they can reproduce the problem will make it more likely they can provide assistance.
When You Ask for Directions, Say What You Are Driving
Your fellow coders, mappers, developers are amazingly generous with their expertise. Show that you appreciate it by providing the full context of your problem at the start. What platform are you using? What version of the operating system? What version of the software? If there might be machine capacity issues, mention how fast your machine is and how much RAM it has. If you were doing something with a browser, which one? Don't make them ask these obvious questions.
And A Note on Answers
When you are the one providing the answer, consider this advice:
"Help your community learn from the question. When you field a good question, ask yourself 'How would the relevant documentation or FAQ have to change so that nobody has to answer this again?'" (metaStackOverflow 2012)
Sources and Resources
Raymond, Eric Steven. How To Ask Questions The Smart Way