23
社区成员




How To Ask Questions The Smart Way
提问的智慧
Copyright (C) 2001 by Eric S. Raymond
当你提出问题的时候,首先要说明在此之前你干了些什么,这将有助于树立你的形象——你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。能说明你从这些操作中学到了什么就更好了。
另一方面,表明出你愿意在找答案的过程中做点什么。“谁能给我一点提示?”,“我这个例子里缺了什么?”,“我应该检查什么地方?”。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心。
1. 谨慎选择论坛
小心选择提问的场合。
问题发到精心挑选的公众论坛,比发到封闭的小圈子更容易得到有用的答案。
2. 尽量使用邮件列表
如果某项目有自己的开发邮件列表,要把问题发到这个邮件列表而不是某个开发者,即使你很清楚谁能回答你的问题。仔细检查项目和项目主页,找到这个项目的邮件列表地址,这样做的理由如下:
如果你找不到项目的邮件列表地址,只能看到项目维护者的,那就写给维护者吧。在这种情况下,也别以为邮件列表不存在。在你的信中写明你已尽力寻找,仍无法找到邮件列表。另外表明你不介意将此消息转给他人。
3. 用词贴切,语法正确,拼写无误
粗心的写作者通常也是马虎的思考者。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。因此,明确充分表达你的问题非常重要,如果你嫌这样做麻烦,我们也会懒得搭理你。更一般的说,如果你的提问写得像个半文盲,你很有可能被忽视。如果你在使用非母语的论坛提问,你可以犯点拼写和语法上的小错误,但绝不能在思考上马虎。另外,除非你确切知道你的回答者使用什么语言,否则请使用英文。
4. 用易读格式发送问题
如果人为造成你的提问难以阅读和理解,将会更容易被人忽略。
5. 使用含义丰富,描述准确的标题
在邮件列表或者新闻组中,大约50字以内的主题标题是抓住资深专家注意力的黄金时机。如果你在回复中提出问题,记得要修改内容标题,表明里面有一个问题。
6. 精确描述,信息量大
尽可能想象一个黑客会怎样反问你,在提问的时候预先给他答案。
7. 话不在多
你需要提供精确有效的信息。这并不是要求你简单地把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件、尽量把它裁剪的越小越好。
这样做的用处至少有三点:
8. 只说症状,不说猜想
告诉黑客们你认为问题是怎样引起的没什么帮助,因此要确信你原原本本告诉了他们问题的症状,不要加进你自己的理解和推论。
9. 按时间顺序列出症状
对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,因此,你的说明应该包含操作步骤,以及电脑的反应,直到问题产生。如果崩溃的程序有诊断选项,试着仔细考虑选项以在操作记录中增加有用的调试信息。
如果你的说明很长(超过四个段落),在开头简述问题会有所帮助,接下来按时间顺序详述,这样黑客们就知道该在你的说明中找什么。
10. 别要求私下答复
黑客们认为解决问题应该有公开、透明的流程,只要任何更有见地的人注意到答案的不完善或者不正确,这个最初的答案就可以和应该得到纠正。同时,通过能力和知识被大家注意,被大家接受,回答问题得到了应有的奖励。
如果你要求对方私下回答你,这既破坏了整个流程,也破坏了奖励制度。别提这要求,这是回答者的权利,由他来选择是否私下答复。
11. 明白你想问什么
漫无边际的提问近乎无休无止的时间黑洞,最能给你有用答案的人也正是最忙的人,这样的人对无节制的时间黑洞不太感冒。如果你明确表达需要回答者做什么(提供建议、发送一段代码、检查你的补丁或者是别的),就最有可能得到有用的答案。这会定出一个时间和精力的上限,便于回答者集中精力来帮你,这很有效。要理解专家们生活的世界,要把专业技能想象为充裕的资源,而回复的时间则是贫乏的资源。要解决你的问题需要的时间越少,越能从忙碌的专家口中掏出答案。
因此,优化问题的结构,尽量减少专家们解决它所需要的时间,会有很大的帮助。比如,如果你的代码不能工作,问问它有什么不对,比要求别人替你修改要明智的多。
12. 别问应该自己解决的问题
有些问题得由你来搞定,你会从中学到东西,你可以要求给点提示,但别要求得到完整的解决方案。
13. 去除无意义的疑问
别用无意义的话结束提问,例如“有人能帮我吗?”或者“有答案吗?”,首先,如果你对问题的描述不很合适,这样问更是画蛇添足,其次:由于这样问是画蛇添足,黑客们会厌烦你。
14. 谦虚没有害处,而且常帮大忙
彬彬有礼,多用“请”。让大家都知道你对他们花费时间义务提供帮助心存感激。虽然黑客一般更喜欢直截了当而技术上敏锐的bug报告,而不是彬彬有礼的废话。
但是,如果你有很多问题无法解决,礼貌将会增加你得到有用答案的机会。
15. 问题解决后,加个简短说明
问题解决后向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢,如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个补充说明。
补充说明不必很长或者很深入,简单的一句话也比什么都不说要强。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇学术论文更好,说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。
除了表示礼貌和反馈信息以外,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
这种补充有助于所有提供过帮助的人从中得到满足感。
1. RTFM 和 STFW
这些答复意味着回答者认为:1. 你需要的信息非常容易获取;2. 你自己去搜索这些信息比灌给你能让你学到更多。
2. 还是不懂
如果你不是很理解答案,别立刻要求对方解释,像你以前试着自己解决问题时那样(利用手册、FAQ、网络、身边高手),去理解它们,如果你真的需要对方解释,记得表现出你已经学到了点什么。
如果仍然得不到答案,请不要以为我们觉得无法帮助你,有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分,总的来说,简单的重复张贴问题是个很蠢的想法,这将被视为无意义的喧闹。你可以通过其它渠道获得帮助,这些渠道通常更适合初学者的需要。