How To Ask Questions The Smart Way
提问的智慧 (上)
Copyright (C) 2001 by Eric S. Raymond
中文版Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html
感谢Eric的耐心指点和同意,本文才得以完成并发布,本指南
英文版版权为Eric Steven Raymond所有,
中文版版权由D.H.Grand所有。
目录
简介
提问之前
怎样提问
谨慎选择论坛
尽量使用邮件列表
用辞贴切,语法正确,拼写无误
用易读格式发送问题
使用含义丰富,描述准确的标题
精确描述,信息量大
话不在多
只说症状,不说猜想
按时间顺序列出症状
别要求私下答复
明白你想问什么
别问应该自己解决的问题
去除无意义的疑问
谦逊绝没有害处,而且常帮大忙
问题解决后,加个简短说明
如何理解答案
RTFM和STFW:别烦我啦
还是不懂
面对无礼
决不要象个失败者
三思而后问
好问题,坏问题
找不到答案怎么办
====
简介
====
在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出
答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以
获取你最想要的答案。
首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。
如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自
会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常
会暴露我们以前从没意识到或者思考过的问题。对黑客而
言,“问得好!”是发自内心的大力称赞。
尽管黑客们有蔑视简单问题和不友善的坏名声,有时看起来似乎我们对新手,
对知识贫乏者怀有敌意,但其实不是那样的。
我们不想掩饰对这样一些人的蔑视--他们不愿思考,或者在发问前不去完成他
们应该做的事。这种人只会谋杀时间--他们只愿索取,从不付出,无端消耗我
们的时间,而我们本可以把时间用在更有趣的问题或者更值得回答的人身上。
我们称这样的人为“失败者”(由于历史原因,我们有时
把它拼作“lusers”)。
我们也知道,很多人只想使用我们编写的软件,对技术细节没什么兴趣。对多
数人们而言,计算机不过是一个工具,一种达到目的的手段;他们有更重要的
事情要做,有更重要的生活要过。我们明白这点,也并不奢望每个人都对另我
们痴狂的技术问题有兴致。然而,我们回答问题的风格是
针对这样一群人--他们有兴趣,并且愿意积极参与问题的解决。这点不会改变,
也不应该改变;如果变了,我们将失去我们引以为傲的效率。
我们在很大程度上属于志愿者,从繁忙的生活中抽出时间来解惑答疑,而且时常
被提问淹没。所以我们无情的滤掉一些话题,特别是抛弃那些看起来象失败者的
家伙,以便更高效的利用时间来回答胜利者的问题。
如果你觉得我们过于傲慢的态度让你不爽,让你委屈,不妨设身处地想想。我
们并没有要求你向我们屈服--事实上,我们中的大多数人最喜欢公平交易不过
了,只要你付出小小努力来满足最起码的要求,我们就会欢迎你加入到我们的
文化中来。但让我们帮助那些不愿意帮助自己的人是没有
意义的。如果你不能接受这种“歧视”,我们建议你花点钱找家商业公司签个
技术支持协议得了,别向黑客乞求帮助。
如果你决定向我们求助,当然不希望被视为失败者,更不愿成为失败者中的一
员。立刻得到有效答案的最好方法,就是象胜利者那样提问--聪明、自信、有
解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。
(欢迎对本指南提出改进意见。任何建议请E-mail至esr@thyrsus.com,然而
请注意,本文并非网络礼节的通用指南,我通常会拒绝无助于在技术论坛得到
有用答案的建议。)
(当然,如果你写中文,最好还是寄到DHGrand@hotmail.com;-)
========
提问之前
========
在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
3. 在网上搜索(个人推荐google~~~)。
4. 向你身边精于此道的朋友打听。
当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你
的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。能说明你
从这些操作中学到了什么就更好了。如果提问者能从答案中学到东西,我们更
乐于回答他的问题。
周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得
不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实
质性的帮助。
小心别问错了问题。如果你的问题基于错误的假设,普通黑客(J. Random
Hacker)通常会用无意义的字面解释来答复你,心里想着“蠢问题...”,希
望着你会从问题的回答(而非你想得到的答案)中汲取教训。
决不要自以为够资格得到答案,你没这种资格。毕竟你没有为这种服务支付任
何报酬。你要自己去“挣”回一个答案,靠提出一个有内涵的,有趣的,有思
维激励作用的问题--一个对社区的经验有潜在贡献的问题,而不仅仅是被动的
从他人处索要知识--去挣到这个答案。
另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。
“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么
地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有
人指点正确的方向,你就有完成它的能力和决心。
========
怎样提问
========
------------
谨慎选择论坛
------------
小心选择提问的场合。如果象下面描述的那样,你很可能被忽略掉或者被看作失败者:
1. 在风马牛不相及的论坛贴出你的问题
2. 在探讨高级技巧的论坛张贴非常初级的问题;反之亦然
3. 在太多的不同新闻组交叉张贴
黑客们通常砍掉问错地方的问题,以保护自己的社区不被大量无关帖子淹没。
你不会希望自己的帖子被这样砍掉吧。
总的说来,问题发到精心挑选的公众论坛,比发到封闭的小圈子更容易得到有
用的答案。这一现象有多种原因,其中之一是公众论坛有更多潜在的问题回答
者;另一个原因是公众论坛有更多的听众。黑客们更愿意让尽量多的人--而非
有限的一两个--从回答中受益。
----------------
尽量使用邮件列表
----------------
如果某项目有自己的开发邮件列表,要把问题发到这个邮件列表而不是某个开
发者,即使你很清楚谁最能回答你的问题。仔细查看项目文档和项目主页,找
到这个项目的邮件列表地址,这样做的理由有四:
1. 任何值得问某位开发者的好问题,都值得向整个开发团体提出。反之,若
你认为这个问题不值得在邮件列表中提起,就没有理由用它来骚扰任何一位开发者。
2. 在邮件列表提问可以分担开发者的工作量。某位开发者(尤其当他是项目
负责人的情况下),可能忙得没时间回答你的问题。
3. 大多数邮件列表都有历史存档,而且都能在搜索引擎中检索到。人们可以
从中找到你的问题和答案,不用一遍又一遍在列表中发问。
4. 如果某个问题经常被提出,开发者可以据此改进文档或改进软件,以减少
用户的困惑。而如果问题总在私下提出,就不会有人对此有整体上的把握了。
如果你找不到项目的邮件列表地址,只能看到项目维护者的,那就写给维护
者吧。在这种情况下,也别以为邮件列表并不存在。在你的信中写明你已尽
力寻找,仍无法找到邮件列表。另外表明你不介意将此消息转给他人。(大
多数人认为私信就应该是私下的,即使并没有什么可保密的内容
。允许你的消息被转寄给他人,给了收信者一种处理你邮件的选择。)
----------------------------
用辞贴切,语法正确,拼写无误
----------------------------
我们从经验中发现,粗心的写作者通常也是马虎的思考者(我敢打包票)。
回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。
因此,明确充分表述你的问题非常重要。如果你嫌这样做麻烦,我们也会懒
得搭理你。注意推敲你的用辞,不一定要用呆板正式的语言--事实上,黑客
文化的价值观是不拘小节。准确的运用俚语和富有幽默感的语言,但别乱用;
一定要能表明你在思考,在关注。
正确的拼写,标点符号和大小写很重要。别把“its”和“it''s”或者
“loose”和“lose”搞混淆了。别用全部大写的形式,这被视为粗鲁的大
声叫嚷(全都用小写也好不到哪儿去,因为这会给阅读带来困难。Alan Cox
可以用全部小写,但你不行)。
更一般的说,如果你的提问写得象个半文盲,你很有可能被忽视。如果写得象
一个窥客(pj爱好者)或者灰客(只会用现成工具的捣乱者)绝对是自己找
死,保证你除了无情的抵制什么也得不到(或者,最好的结局是得到一大堆挖
苦嘲笑的“帮助”)。
如果你在使用非母语的论坛提问,你可以犯点拼写和语法上的小错--但决不能
在思考上马虎(没错,我们能弄清两者的分别)。另外,除非你确切知道你的
回答者会使用什么语言,否则请用英文。匆匆忙忙的黑客往往简单的跳过他们
看不懂的问题,而英文是网络上的工作语言。用英文可以
降低你的问题未被阅读即遭抛弃的风险。
------------------
用易读格式发送问题
------------------
如果人为造成你的提问难以阅读和理解,将会更容易被人忽略。因此你要:
1. 使用纯文本邮件,不要使用HTML(关掉HTML并不难)。
2. 通常可以附加MIME附件,但一定要有真正的内容(例如附加的源文件或者
补丁),而不仅仅是你的邮件客户端产生的文件模板(例如你邮件的一份拷贝)。
3. 不要把所有问题放在不停换行的一整段中。(这将让答复的人难于回答其中
一部分问题,即使能回答所有问题,我也更希望条理清楚的一个一个来:)。很
可能收件人只能在80个字符宽度的文本显示器上读信,因此要相应的把行环绕
模式设在80字符以内。
4. 不要在英文论坛使用MIME Quoted-Printable编码发送;这种编码格式对
ASCII码不能表达的语言来说是非常必要的,但很多邮件代理不支持它,这
时,满篇的“=20”符号把文字分割开,既难看,又分散注意力。
5. 永远不要指望黑客会乐于阅读封闭所有权的文件格式,例如萎软的Word
格式。多数黑客对此的反应就象你在门口的阶梯上堆满热烘烘的猪粪(意即
谁也不会踏进你的门--译者注)。
6. 如果你通过一台安装Windows的电脑发送邮件,关闭萎软愚蠢的“智能引
用”功能。这能使你免于在邮件中夹带垃圾字符。
----------------------------
使用含义丰富,描述准确的标题
----------------------------
在邮件列表或者新闻组中,大约50字以内的主题标题是抓住资深专家注意力
的黄金时机。别用喋喋不休的“帮帮忙”(更别说“救命啊!!!!!”这
样让人反感的话)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,
别用空格代替问题的描述,哪怕是极其简短的描述。
蠢问题:
救命啊!我的膝上机不能正常显示了!
聪明问题:
XFree86 4.1下鼠标光标变形,Fooware MV1005的显示芯片。
如果你在回复中提出问题,记得要修改内容标题,表明里面有一个问题。一个
看起来象“Re:测试”或者“Re:新bug”的问题很难引起足够重视。另外,引
用并删减前文的内容,给新来的读者留下线索。
------------------
精确描述,信息量大
------------------
1. 谨慎明确的描述症状。
2. 提供问题发生的环境(机器配置、操作系统、应用程序以及别的什么)。
3. 说明你在提问前是怎样去研究和理解这个问题的。
4. 说明你在提问前采取了什么步骤去解决它。
5. 罗列最近做过什么可能有影响的硬件、软件变更。
尽量想象一个黑客会怎样反问你,在提问的时候预先给他答案。
Simon Tatham写过一篇名为《如何有效的报告Bug》的出色短文。强力推荐你也读一读。
--------
话不在多
--------
你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完
全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小
越好。
这样做的用处至少有三点。第一,表现出你为简化问题付出了努力,这可以使你得
到回答的机会增加;第二,简化问题使你得到有用答案的机会增加;第三,在提炼
你的bug报告的过程中,也许你自己就能找出问题所在或作出更正。
------------------
只说症状,不说猜想
------------------
告诉黑客们你认为问题是怎样引起的没什么帮助。(如果你的推断如此有效,还用
向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,不要加进你自
己的理解和推论。让黑客们来诊断吧。
蠢问题:
我在内核编译中一次又一次遇到SIG11错误,我怀疑某条飞线搭在主板的走线上了,
这种情况应该怎样检查最好?
聪明问题:
我自制的一套K6/233系统,主板是FIC-PA2007 (VIA Apollo VP2芯片组),256MB
Corsair PC133
SDRAM,在内核编译中频频产生SIG11错误,从开机20分钟以后就有这种情况,开机
前20分钟内从没发生过。重启也没有用,但是关机一晚上就又能工作20分钟。所有
内存都换过了,没有效果。相关部分的典型编译记录如下...。
------------------
按时间顺序列出症状
------------------
对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,因此,你的说明
应该包含操作步骤,以及电脑的反应,直到问题产生。在命令行操作的情况下,保
存一个操作记录(例如使用脚本工具),并且引用相关的大约20条命令会大有帮助。
如果崩溃的程序有诊断选项(例如用-v转到详尽模式),试着仔细考虑选择选项以
在操作记录中增加有用的调试信息。
如果你的说明很长(超过四个段落),在开头简述问题会有所帮助,接下来按时间
顺序详述。这样黑客们就知道该在你的说明中找什么。
--------------
别要求私下答复
--------------
黑客们认为解决问题应该有公开、透明的流程。只要任何更有见地的人注意到答
案的不完善或者不正确,这个最初的答案就可以和应该得到纠正。同时,通过能
力和知识被大家注意,被大家接受,回答问题者得到了应有的奖励。
如果你要求对方私下回答你,这既破坏了整个流程,也破坏了奖励制度。别提这
要求,这是回答者的权利,由他来选择是否私下答复--如果他选择这样做,通常
是因为他认为这个答案过于显而易见或者有不良的公开影响,别人不会感兴趣。
只有一种有限的例外:如果你预计将收到大量雷同的答复,你可以说:“把答案
寄给我,由我来汇总吧。”将邮件列表或者新闻组从大量重复的帖子中打救出来
是很有君子之风的--但请记住,履行自己关于汇总的承诺。
### How To Ask Questions The Smart Way
Asking Questions Wisely (Part 1)
Copyright (C) 2001 by Eric S. Raymond
Chinese version Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
English version: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Thanks to Eric's patient guidance and permission, this article was completed and published. The English version of this guide is copyrighted by Eric Steven Raymond,
and the Chinese version is copyrighted by D.H.Grand.
Table of Contents
Introduction
Before Asking Questions
How to Ask Questions
Choose the Forum Cautiously
Try to Use Mailing Lists
Use Appropriate Words, Correct Grammar, and No Spelling Errors
Send Questions in a Readable Format
Use a Descriptive and Accurate Title
Describe Precisely and Provide Abundant Information
Don't Talk Too Much
Only State Symptoms, Not Guesses
List Symptoms in Chronological Order
Don't Ask for Private Responses
Know What You Want to Ask
Don't Ask Questions That Should Be Solved by Yourself
Remove Meaningless Questions
Humility Never Does Harm and Often Helps a Lot
Add a Brief Explanation After the Problem is Solved
How to Understand Answers
RTFM and STFW: Don't Bother Me
Still Don't Understand
Facing Rudeness
Never Be Like a Loser
Think Twice Before Asking
Good Questions, Bad Questions
What to Do If You Can't Find the Answer
====
Introduction
====
In the hacker world, what kind of answer can you get when you ask a technical question? It depends on the difficulty of digging out the answer, and also on the way you ask the question. This guide is designed to help you improve your questioning skills to get the answer you most want.
First of all, you must understand that hackers only prefer difficult tasks or good questions that can stimulate their thinking. If not, why are we here? If you have a good question worth our repeated pondering, we will be very grateful to you. A good question is an inspiration, a generous gift, which can improve our understanding and usually expose problems we never realized or thought about before. For hackers, "Good question!" is a heartfelt great compliment.
Although hackers have a bad reputation for despising simple questions and being unfriendly, sometimes it may seem that we are hostile to novices and those with poor knowledge, but that's not the case.
We don't want to hide our contempt for such people - those who are unwilling to think or don't do what they should do before asking questions. Such people will only kill time - they only want to take, never give, and waste our time needlessly, while we could have spent the time on more interesting questions or more worthy people. We call such people "lusers" (due to historical reasons, we sometimes spell it as "lusers").
We also know that many people just want to use the software we write and are not interested in technical details. For most people, the computer is just a tool, a means to an end; they have more important things to do and a more important life to live. We understand this and don't expect everyone to be interested in the technical questions that drive us crazy. However, our style of answering questions is aimed at such a group of people - those who are interested and willing to actively participate in solving the problem. This will not change and should not change; if it changes, we will lose the efficiency we are proud of.
We are largely volunteers, taking time out of our busy lives to answer questions, and are often overwhelmed by questions. So we ruthlessly filter out some topics, especially those that seem like losers, in order to use time more efficiently to answer the questions of winners.
If you feel that our overly arrogant attitude makes you uncomfortable and wronged, you might as well put yourself in our shoes. We didn't ask you to submit to us - in fact, most of us like fair deals the most. As long as you make a little effort to meet the minimum requirements, we will welcome you into our culture. But it's meaningless to let us help those who are not willing to help themselves. If you can't accept this "discrimination", we suggest that you spend some money to find a commercial company to sign a technical support agreement, don't beg hackers for help.
If you decide to ask us for help, of course, you don't want to be regarded as a loser, and even less want to be a member of losers. The best way to get an effective answer immediately is to ask like a winner - smart, confident, with ideas for solving the problem, just occasionally needing a little help on a specific question.
(Welcome to put forward improvement suggestions for this guide. Any suggestions please send an email to esr@thyrsus.com, however, please note that this article is not a general guide to netiquette, and I usually refuse suggestions that are not helpful for getting useful answers in technical forums.)
(Of course, if you write in Chinese, it's better to send it to DHGrand@hotmail.com;-)
========
Before Asking Questions
========
Before asking a technical question via email, newsgroup, or chat room, check if you have done:
1. Read the manual thoroughly and try to find the answer by yourself.
2. Find the answer in the FAQ (a well-maintained FAQ can cover everything:).
3. Search on the Internet (personally recommend google~~~).
4. Ask your friends who are good at this around you.
When you ask a question, first explain what you have done before; this will help establish your image: you are not a beggar who wants to get something for nothing and is not willing to waste others' time. It's even better if you can explain what you have learned from these operations. If the questioner can learn something from the answer, we are more willing to answer his question.
Thoughtfully prepare your question. Hasty questioning can only get hasty answers or no answers at all. The more you show the efforts you have made to solve the problem before seeking help, the more substantial help you will get.
Be careful not to ask the wrong question. If your question is based on a wrong assumption, an ordinary hacker (J. Random Hacker) will usually answer you with a meaningless literal explanation, thinking "stupid question...", hoping that you will learn a lesson from the answer to the question (rather than the answer you want).
Never think you are entitled to an answer, you don't have this entitlement. After all, you haven't paid any remuneration for this service. You have to "earn" an answer by asking a meaningful, interesting, and thought-stimulating question - a question that has a potential contribution to the community's experience, rather than just passively asking for knowledge from others - to earn this answer.
On the other hand, showing that you are willing to do something in the process of finding the answer is a very good start. "Can anyone give some hints?" "What's missing in my example?" and "What should I check?" are easier to get a response than "Please post the exact process". Because you seem to have the ability and determination to complete it as long as someone points out the correct direction.
========
How to Ask Questions
========
------------
Choose the Forum Cautiously
------------
Be careful to choose the place to ask questions. If it's described as follows, you are likely to be ignored or regarded as a loser:
1. Post your question in an irrelevant forum
2. Post a very basic question in a forum discussing advanced skills; and vice versa
3. Post cross in too many different newsgroups
Hackers usually cut off questions asked in the wrong place to protect their community from being flooded with a large number of irrelevant posts. You don't want your post to be cut off like this.
In general, it's easier to get useful answers by sending the question to a carefully selected public forum than to a closed small circle. There are several reasons for this phenomenon, one of which is that there are more potential question answerers in the public forum; another reason is that there are more listeners in the public forum. Hackers are more willing to let as many people as possible - rather than a limited one or two - benefit from the answer.
----------------
Try to Use Mailing Lists
----------------
If a project has its own development mailing list, send the question to this mailing list instead of a certain developer, even if you know very well who can answer your question best. Carefully check the project documentation and project homepage to find the email list address of this project. The reasons for doing this are fourfold:
1. Any good question worth asking a certain developer is worth asking the entire development community. Conversely, if you think this question is not worth mentioning in the mailing list, there is no reason to harass any developer with it.
2. Asking questions in the mailing list can share the workload of developers. A certain developer (especially when he is the project leader) may be too busy to answer your question.
3. Most mailing lists have historical archives and can be retrieved in search engines. People can find your question and answer from them without asking again and again in the list.
4. If a certain question is often asked, developers can improve the documentation or software accordingly to reduce users' confusion. But if the question is always asked privately, no one will have an overall grasp of it.
If you can't find the email list address of the project and can only see the maintainer of the project, then write to the maintainer. In this case, don't think that the mailing list doesn't exist. Write in your letter that you have tried your best to find it and still can't find the mailing list. Also indicate that you don't mind transferring this message to others. (Most people think that private letters should be private, even if there is nothing to keep secret. Allowing your message to be forwarded to others gives the recipient a choice in handling your email.)
----------------------------
Use Appropriate Words, Correct Grammar, and No Spelling Errors
----------------------------
We have found from experience that careless writers are usually also sloppy thinkers (I bet). It's not worth answering the questions of careless people, and we would rather spend time elsewhere.
Therefore, it's very important to clearly and fully express your question. If you find it troublesome to do so, we will be lazy to pay attention to you. Pay attention to refining your words. You don't have to use rigid and formal language - in fact, the values of hacker culture are informal. Use slang and humorous language accurately, but don't misuse them; you must show that you are thinking and paying attention.
Correct spelling, punctuation, and capitalization are important. Don't confuse "its" and "it''s" or "loose" and "lose". Don't use all uppercase forms, which is regarded as rude shouting (all lowercase is not much better either, because it will make reading difficult. Alan Cox can use all lowercase, but you can't).
More generally, if your question is written like a semi-literate, you are very likely to be ignored. If it's written like a pj enthusiast or a script kiddie (someone who only uses ready-made tools to make trouble), it's definitely asking for trouble, and you can be sure that you will get nothing but ruthless resistance (or, the best result is to get a lot of sarcastic "help").
If you are asking questions in a forum in a non-native language, you can make some small mistakes in spelling and grammar - but never be sloppy in thinking (yes, we can distinguish the two). In addition, unless you are exactly sure what language your answerer will use, please use English. Hurried hackers usually simply skip questions they can't understand, and English is the working language on the Internet. Using English can reduce the risk that your question is discarded without being read.
------------------
Send Questions in a Readable Format
------------------
If you make your question difficult to read and understand artificially, it will be easier to be ignored. Therefore, you should:
1. Use plain text email and don't use HTML (it's not difficult to turn off HTML).
2. Usually, you can attach MIME attachments, but there must be real content (such as attached source files or patches), not just the file template generated by your email client (such as a copy of your email).
3. Don't put all the questions in one long paragraph that keeps wrapping lines. (This will make it difficult for the person replying to answer part of the questions. Even if all questions can be answered, I would rather have them one by one in an orderly manner:). It's very possible that the recipient can only read the letter on a text display with a width of 80 characters, so set the line wrapping mode accordingly within 80 characters.
4. Don't send in MIME Quoted-Printable encoding in an English forum; this encoding format is very necessary for languages that cannot be expressed in ASCII code, but many email agents don't support it. At this time, full of "=20" symbols split the text, which is not only ugly but also distracting.
5. Never expect hackers to be willing to read files in closed proprietary formats, such as Microsoft Word format. Most hackers' reaction to this is like you piling up hot pig manure on the doorstep steps (meaning no one will step into your door - translator's note).
6. If you send an email through a computer installed with Windows, turn off Microsoft's stupid "smart quotes" function. This can save you from having garbage characters in your email.
----------------------------
Use a Descriptive and Accurate Title
----------------------------
In the mailing list or newsgroup, the subject title within about 50 words is the golden opportunity to catch the attention of senior experts. Don't waste this opportunity with wordy "Help me" (let alone the annoying words like "Help!!!"). Don't try to move us with the degree of your pain, and don't use spaces instead of the description of the question, even if it's extremely short.
Stupid question:
Help! My laptop can't display normally!
Smart question:
Mouse cursor distorted under XFree86 4.1, display chip of Fooware MV1005.
If you raise a question in the reply, remember to modify the content title to indicate that there is a question in it. A question that looks like "Re: Test" or "Re: New bug" is difficult to attract enough attention. In addition, quote and cut the previous content to leave clues for new readers.
------------------
Describe Precisely and Provide Abundant Information
------------------
1. Describe the symptoms carefully and clearly.
2. Provide the environment where the problem occurs (machine configuration, operating system, application program and anything else).
3. Explain how you studied and understood this problem before asking the question.
4. Explain what steps you took to solve it before asking the question.
5. List the recent hardware and software changes that may have an impact.
Try to imagine how a hacker would ask you back and pre-answer him when asking the question.
Simon Tatham has written an excellent short article titled "How to Report Bugs Effectively". It's highly recommended that you also read it.
--------
Don't Talk Too Much
--------
You need to provide precise and effective information. This doesn't mean that you simply dump tons of error codes or data completely into your question. If you have a huge and complex test condition, try to cut it as small as possible.
There are at least three uses of doing this. First, it shows that you have made efforts to simplify the problem, which can increase your chance of getting an answer; second, simplifying the problem increases your chance of getting a useful answer; third, in the process of refining your bug report, maybe you can find the problem or make a correction by yourself.
------------------
Only State Symptoms, Not Guesses
------------------
It's not helpful to tell hackers how you think the problem is caused. (If your inference is so effective, why do you need to ask others for help?) Therefore, make sure you tell them the symptoms of the problem exactly, without adding your own understanding and inference. Let hackers diagnose it.
Stupid question:
I keep encountering SIG11 errors in kernel compilation. I suspect that a flying wire is connected to the trace on the mainboard. What's the best way to check this situation?
Smart question:
I have a self-made K6/233 system, the mainboard is FIC-PA2007 (VIA Apollo VP2 chipset), 256MB Corsair PC133 SDRAM. I keep getting SIG11 errors in kernel compilation. This situation occurs frequently after 20 minutes of booting, and never occurs within the first 20 minutes after booting. Restarting doesn't help, but shutting down for a night and then it can work for 20 minutes again. All memories have been replaced, but it's of no effect. The typical compilation record of the relevant part is as follows...
------------------
List Symptoms in Chronological Order
------------------
The most helpful clue for finding the problem is often a series of operations before the problem occurs. Therefore, your description should include the operation steps and the computer's reaction until the problem occurs. In the case of command line operations, saving an operation record (for example, using a script tool) and citing about 20 relevant commands will be very helpful.
If the crashing program has a diagnostic option (for example, use -v to switch to detailed mode), try to carefully consider choosing the option to add useful debugging information in the operation record.
If your description is long (more than four paragraphs), it will be helpful to briefly describe the problem at the beginning and then elaborate in chronological order. Then hackers know what to look for in your description.
--------------
Don't Ask for Private Responses
--------------
Hackers think that the process of solving the problem should be open and transparent. As long as any more insightful person notices that the answer is imperfect or incorrect, this initial answer can and should be corrected. At the same time, the answerer is rewarded as he is noticed and accepted by everyone through his ability and knowledge.
If you ask for a private answer from the other party, this not only disrupts the entire process but also the reward system. Don't mention this requirement. It's the right of the answerer to choose whether to answer privately - if he chooses to do so, it's usually because he thinks the answer is too obvious or has a bad public impact and others won't be interested.
There is only a limited exception: if you expect to receive a large number of similar responses, you can say: "Send the answer to me, and I will summarize it." Rescuing the mailing list or newsgroup from a large number of repeated posts is very gentlemanly - but please remember to fulfill your promise about summarizing.