This is a condensed and revised version. The original article can be found at: Original Article
In technical communities, the way you ask questions determines whether you'll get useful answers. Hackers enjoy challenging problems, but they also hate wasting time answering simple or thoughtless questions. This guide teaches you how to ask smart questions and get satisfactory answers.
- Try searching for existing answers, including forums, search engines, manuals, and FAQ files.
- Try solving the problem yourself first, or ask friends around you.
- If you're a developer, try reading the source code.
- Show that you've made efforts — this makes it easier to get help.
- Choose the right forum: Make sure your question is relevant to where you're asking, avoid posting in inappropriate forums.
- Use meaningful titles: Describe your problem concisely and clearly, avoid vague terms.
- Make it easy to reply: Avoid asking for private email replies unless necessary.
- Express your problem clearly: Use precise language, avoid spelling and grammar mistakes (and include screenshots or videos if possible).
- Describe the symptoms: Explain exactly what's happening, rather than guessing the cause.
- Provide context: Include operating system, software version, etc., so others can understand the problem.
- Avoid asking for private replies: Public discussion benefits everyone.
- Be polite: Use "please" and "thank you", but don't be overly obsequious.
- If you receive "RTFM" (Read The Fu**ing Manual) or "STFW" (Search The Fu**ing Web), it means you need to look up the answer yourself first.
- If you don't understand the answer, try researching on your own first, then ask specific questions — reading it several more times may reveal new insights.
- Don't get angry at rude responses; hackers' direct style is not personal.
If someone points out your mistake, don't complain or get angry — accept the advice and improve.
Avoid asking questions that can be answered with a simple search, such as "Where can I find program XX" (when the answer is right there in the manual or tutorial).
- Stupid questions:
- No prior research, directly demanding answers:
How do I install the software?, Who can teach me? (without reading the manual or documentation first).
- Not providing useful problem information: Only saying
Is anyone there?, Anyone here?, Why is no one replying?, Does anyone know how to do this?, This doesn't work (without providing any useful problem details or information).
- Smart questions:
- Showing what you've tried to solve the problem, providing specific information (
logs/operations + screenshots/videos), and asking for help.
I've tried the following: XXXX, but I encountered problem XXXX [screenshot]. I looked through the documentation, but it doesn't mention this. Have you encountered this before?
Be patient, or try other channels such as local user groups or paid technical support.
- Maintain a kind attitude.
- Be honest if you don't know the answer.
- Help the community learn from questions by updating FAQ files.
- Try to guide questioners to find answers themselves, rather than giving direct results.
Smart questioning not only helps you solve problems faster but also earns respect from the community. By showing your effort and respecting others' time, you can get more valuable help.