How To Ask Questions The Smart Way
Copyright ? 2001 by Eric S. Raymond
--------------------------------------------------------------------------------
Table of Contents
Introduction
Before You Ask
When You Ask
How To Interpret Answers
On Not Reacting Like A Loser
Questions Not To Ask
Good and Bad Questions
If You Can''t Get An Answer
--------------------------------------------------------------------------------
Introduction
In the world of hackers, the kind of answers you get to your technical
questions depends as much on the way you ask the questions as on the difficulty
of developing the answer. This guide will teach you how to ask questions in a
way that is likely to
get you a satisfactory answer.
奔驰s450The first thing to understand is that hackers actually like hard problems
and good, thought-provoking questions about them. If we didn''t, we wouldn''t be
here. If you give us an interesting question to chew on we''ll be grateful to
you; good questions
are a stimulus and a gift. Good questions help us develop our
understanding, and often reveal problems we might not have noticed or thought
about otherwise. Among hackers, "Good question!" is a strong and sincere
compliment.
Despite this, hackers have a reputation for meeting simple questions with
what looks like hostility or arrogance. It sometimes looks like we''re
reflexively rude to newbies and the ignorant. But this isn''t really true.
What we are, unapologetically, is hostile to people who seem to be
unwilling to think or do their own homework before asking questions. People like
that are time sinks — they take without giving back, they waste time we could
have spent on another
question more interesting and another person more worthy of an answer. We
call people like this "losers" (and for historical reasons we sometimes spell it
"lusers").
We realize that there are many people who just want to use the software we
write, and have no interest in learning technical details. For most people, a
computer is merely a tool, a means to an end; they have more important things to
do and lives to
live. We acknowledge that, and don''t expect everyone to take an interest
in the technical matters that fascinate us. Nevertheless, our style of answering
questions is tuned for people who do take such an interest and are willing to be
active
participants in problem-solving. That''s not going to change. Nor should
it; if it did, we would become less effective at the things we do best.
We''re (largely) volunteers. We take time out of busy lives to answer
questions, and at times we''re overwhelmed with them. So we filter ruthlessly.
In particular, we throw away questions from people who appear to be losers in
order to spend our
question-answering time mo
re efficiently, on winners.
If you find this attitude obnoxious, condescending, or arrogant, check your
assumptions. We''re not asking you to genuflect to us — in fact, most of us
would love nothing more than to deal with you as an equal and welcome you into
our culture, if you
put in the effort required to make that possible. But it''s simply not
efficient for us to try to help people who are not willing to help themselves.
If you can''t live with this sort of discrimination, we suggest you pay somebody
for a commercial
support contract instead of asking hackers to personally donate help to
you.
If you decide to come to us for help, you don''t want to be one of the
losers. You don''t want to seem like one, either. The best way to get a rapid
and responsive answer is to ask it like a winner — to ask it like a person with
smarts, confidence, and
clues who just happens to need help on one particular problem.
(Improvements to this guide are welcome. You can mail suggestions to
esr@thyrsus. Note however that this document is not intended to be a general
guide to netiquette, and I will generally reject suggestions that are not
specifically related to
eliciting useful answers in a technical forum.)
--------------------------------------------------------------------------------
Before You Ask
Before asking a technical question by email, or in a newsgroup, or on a
website chat board, do the following:
Try to find an answer by reading the manual.
Try to find an answer by reading a FAQ.
Try to find an answer by searching the Web.哈飞松花江
Try to find an answer by asking a skilled friend.
When you ask your question, display the fact that you have done these
things first; this will help establish that you''re not being a lazy sponge and
wasting people''s time. Better yet, display what you have learned from doing
these things. We like
answering questions for people who have demonstrated that they can learn
from the answers.
Prepare your question. Think it through. Hasty-sounding questions get hasty
answers, or none at all. The more you do to demonstrate that you have put
thought and effort into solving your problem before asking for help, the more
likely you are to
actually get help.
Beware of asking the wrong question. If you ask one that is based on faulty
assumptions, J. Random Hacker is quite likely to reply with a uselessly literal
answer while thinking "", and hoping that the experience of
getting what you
asked for rather than what you needed will teach you a lesson.
Never assume you are entitled to an answer. You are not; you aren''t, after
all, paying for the service. You will earn an answer, if you earn it, by asking
a question that is substantial, interesting, and though
t-provoking — one that
implicitly
contributes to the experience of the community rather than merely passively
demanding knowledge from others.
On the other hand, making it clear that you are able and willing to help in
the process of developing the solution is a very good start. "Can someone
provide a pointer?", "What is my example missing?" and "Is there a site I should
have checked?" are
more likely to get answered than "Please post the exact procedure I should
use." because you''re making it clear that you''re truly willing to complete the
process if someone can simply point you in the right direction.
--------------------------------------------------------------------------------
When You Ask
Choose your forum carefully
Be sensitive in choosing where you ask your question. You are likely to be
ignored, or written off as a loser, if you:
post your question to a forum where it is off topic
post a very elementary question to a forum where advanced technical
questions are expected, or vice-versa
cross-post to too many different newsgroups
Hackers blow off questions that are inappropriately targeted in order to
try to protect their communications channels from being drowned in irrelevance.
You don''t want this to happen to you.
In general, questions to a well-selected public forum are more likely to
get useful answers than equivalent questions to a private one. There are
multiple reasons for this. One is simply the size of the pool of potential
respondents. Another is the
size of the audience; hackers would rather answer questions that educate a
lot of people than questions which only serve a few.
--------------------------------------------------------------------------------
Whenever possible, use project mailing lists
When a project has a development mailing list, write to the mailing list,
not to individual developers, even if you believe that you know who can answer
your question best. Check the documentation of the project and its homepage for
the address of a
project mailing list, and use it. There are several good reasons for this
policy:
Any question that''s good enough to be asked of one developer will also be
嘉德信of value to the whole group. Contrariwise, if you think that your question is
too dumb for a mailing list, it''s not an excuse to harass individual
developers.
Asking questions on the list distributes load between developers. The
individual developer (especially if he''s the project leader) may be too busy to
answer your questions.
Most mailing lists are archived and the archives are indexed by search
engines. Somebody could find your question and the answer on the web instead of
asking it again in the list.
If certain questions are see
n to be asked often, the developers can use
that information improve the documentation or the software itself to be less
confusing. But if those questions are asked in private, nobody has the complete
picture of what
吉利汽车金刚
questions are asked most often.
If you cannot find a project''s mailing list address, but only see the
address of the maintainer of the project, go ahead and write to the maintainer.
But even in that case, don''t assume that the mailing list doesn''t exist. State
汽车维修美容店in your e-mail that
you tried and could not find the appropriate mailing list. Also mention
that you don''t object to having your message forwarded to other people. (Many
people believe that private e-mail should remain private, even if there is
nothing secret in it. By
allowing your message to be forwarded you give your correspondent a choice
about how to handle your e-mail.)
--------------------------------------------------------------------------------
Write in clear, grammatical, correctly-spelled language
We''ve found by experience that people who are careless and sloppy writers
are usually also careless and sloppy at thinking and coding (often enough to bet
on, anyway). Answering questions for careless and sloppy thinkers is not
rewarding; we''d rather
spend our time elsewhere.
So expressing your question clearly and well is important. If you can''t be
bothered to do that, we can''t be bothered to pay attention. Spend the extra
effort to polish your language. It doesn''t have to be stiff or formal — in民生银行汽车贷款
fact, hacker culture
values informal, slangy and humorous language used with precision. But it
has to be precise; there has to be some indication that you''re thinking and
paying attention.
Spell, punctuate, and capitalize correctly. Don''t confuse "its" with
"it''s" or "loose" with "lose". Don''t TYPE IN ALL CAPS, this is read as
shouting and considered rude. (All-smalls is only slightly less annoying, as
it''s difficult to read. Alan Cox
can get away with it, but you can''t.)
More generally, if you write like a semi-literate boob you will very likely
be ignored. Writing like a l33t script kiddie hax0r is the absolute kiss of
death and guarantees you will receive nothing but stony silence (or, at best, a
heaping helping of
scorn and sarcasm) in return.
If you are asking questions in a forum that does not use your native
language, you will get a limited amount of slack for spelling and grammar errors
— but no extra slack at all for laziness (and yes, we can usually spot that
difference). Also,
unless you know what your respondent''s languages are, write in English.
Busy hackers tend to simply flush questions in languages they don''t understand,
and English is the working language of the net. By writing in English you
minimize your chances
that your question will be discard
ed unread.
--------------------------------------------------------------------------------
Send questions in formats that are easy to understand
If you make your question artificially hard to read, it is more likely to
be passed over in favor of one that isn''t. So:
Send plain text mail, not HTML. (It''s not hard to turn off HTML.)
MIME attachments are usually OK, but only if they are real content (such as
an attached source file or patch), and not merely boilerplate generated by your
mail client (such as another copy of your message).
Don''t send mail in which entire paragraphs are single multiply-wrapped
lines. (This makes it too difficult to reply to just part of the message.)
Assume that your respondents will be reading mail on 80-character-wide text
displays and set your line
wrap accordingly, to something less than 80.
Don''t send MIME Quoted-Printable encoding to an English-language forum.
This encoding can be necessary when you''re posting in a language ASCII doesn''t
cover, but a lot of mail agents don''t support it. When they break, all those
=20 glyphs scattered
through the text are ugly and distracting.
Never, ever expect hackers to be able to read closed proprietary document
formats like Microsoft Word. Most hackers react to these about as well as you
would to having a pile of steaming pig manure dumped on your doorstep.
If you''re sending mail from a Windows machine, turn off Microsoft''s
stupid "Smart Quotes" feature. This is so you avoid sprinkling garbage
characters through your mail.
--------------------------------------------------------------------------------
Use meaningful, specific subject headers
On mailing lists or newsgroups, the subject header is your golden
opportunity to attract qualified experts'' attention in around 50 characters or
fewer. Don''t waste it on babble like "Please help me" (let alone "PLEASE HELP
ME!!!!"; messages with
subjects like that get discarded by reflex). Don''t try to impress us with
the depth of your anguish; use the space for a super-concise problem description
instead.
Stupid:
HELP! Video doesn''t work properly on my laptop!
Smart:
XFree86 4.1 misshapen mouse cursor, Fooware MV1005 vid. chipset
If you ask a question in a reply, be sure to change the subject line to
indicate that you are asking a question. A Subject line that looks like "Re:
test" or "Re: new bug" is less likely to attract useful amounts of attention.
Also, pare quotes of
previous messages to the minimum consistent with cluing in new readers.
--------------------------------------------------------------------------------
Be precise and informative about your problem
Describe the symptoms of y