提问的艺术
提问之前
在你准备要通过电⼦邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情:
- 尝试在你准备提问的论坛的旧⽂章中搜索答案。
- 尝试上⽹搜索以找到答案。
- 尝试阅读⼿册以找到答案。
- 尝试阅读常⻅问题⽂件(FAQ)以找到答案。
- 尝试⾃⼰检查或试验以找到答案。
- 向你身边的强者朋友打听以找到答案。
- 如果你是程序开发者,请尝试阅读源代码以找到答案。
我们更乐于回答那些表现出能从答案中学习的⼈的问题
提问时
慎选提问的论坛
⼩⼼选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者:
- 在与主题不合的论坛上贴出你的问题。
- 在探讨进阶技术问题的论坛张贴⾮常初级的问题;反之亦然。
- 在太多的不同新闻群组上重复转贴同样的问题(cross-post)。
- 向既⾮熟⼈也没有义务解决你问题的⼈发送私⼈电邮。
常见论坛
Stack Exchange 已经成⻓到超过⼀百个⽹站,以下是最常⽤的⼏个站:
Super User 是问⼀些通⽤的电脑问题,如果你的问题跟代码或是写程序⽆关,只是⼀些⽹络连线之类的,请到这⾥。
Stack Overflow 是问写程序有关的问题。
Server Fault 是问服务器和⽹管相关的问题
使⽤有意义且描述明确的标题
编写 ⽬标 —— 差异式描述的过程有助于你组织对问题的细致思考。是什么被影响了? 仅仅是⿏标光标或者还有其它图形?只在 X.org 的 X 版中出现?或只是出现在 6.8.1 版中? 是针对某牌显卡芯⽚组?或者只是其中的 MV1005 型号? ⼀个⿊客只需瞄⼀眼就能够⽴即明⽩你的环境和你遇到的问题
蠢问题:救命啊!我的笔记本电脑不能正常显示了!
聪明问题:X.org 6.8.1 的⿏标光标会变形,某牌显卡 MV1005 芯⽚组。
更聪明问题:X.org 6.8.1 的⿏标光标,在某牌显卡 MV1005 芯⽚组环境下 - 会变形
⽤清晰、正确、精准且语法正确的语句
如果英⽂是你的外语(Second language),提示潜在回复者你有潜在的语⾔困难是很好的
以下附上原⽂以供使⽤
English is not my native language; please excuse typing errors.
英⽂不是我的⺟语,请原谅我的错字或语法。
我把我的问题⽤某语⾔和英⽂写出来,如果你只⽤⼀种语⾔回答,我会乐意将其翻译成另⼀种
使⽤易于读取且标准的⽂件格式发送问题
如果你⼈为地将问题搞得难以阅读,它多半会被忽略,⼈们更愿读易懂的问题,所以:
- 使⽤纯⽂字⽽不是 HTML (关闭 HTML 并不难)。
- 使⽤ MIME 附件通常是可以的,前提是真正有内容(譬如附带的源代码或 patch),⽽不仅仅是邮件程序⽣成的模板(譬如只是信件内容的拷⻉)。
- 不要发送⼀段⽂字只是⼀⾏句⼦但⾃动换⾏后会变成多⾏的邮件(这使得回复部分内容⾮常困难)。设想你的读者是在 80 个字符宽的终端机上阅读邮件,最好设置你的换⾏分割点⼩于 80字。
- 但是,对⼀些特殊的⽂件不要设置固定宽度(譬如⽇志档案拷⻉或会话记录)。数据应该原样包含,让回复者有信⼼他们看到的是和你看到的⼀样的东⻄。
- 在英语论坛中,不要使⽤ Quoted-Printable MIME 编码发送消息。这种编码对于张贴⾮ ASCII语⾔可能是必须的,但很多邮件程序并不⽀持这种编码。当它们处理换⾏时,那些⽂本中四处散布的 =20 符号既难看也分散注意⼒,甚⾄有可能破坏内容的语意。
- 绝对,永远不要指望⿊客们阅读使⽤封闭格式编写的⽂档,像微软公司的 Word 或 Excel ⽂件等。⼤多数⿊客对此的反应就像有⼈将还在冒热⽓的猪粪倒在你家⻔⼝时你的反应⼀样。即便他们能够处理,他们也很厌恶这么做。
- 如果你从使⽤ Windows 的电脑发送电⼦邮件,关闭微软愚蠢的 智能引号 功能 (从[选项] > [校订] [⾃动校正选项],勾选掉 智能引号 单选框),以免在你的邮件中到处散布垃圾字符。
- 在论坛,勿滥⽤ 表情符号和 HTML 功能(当它们提供时)。⼀两个表情符号通常没有问题,但花哨的彩⾊⽂本倾向于使⼈认为你是个⽆能之辈
精确地描述问题并⾔之有物
仔细、清楚地描述你的问题或 Bug 的症状。
- 描述问题发⽣的环境(机器配置、操作系统、应⽤程序、以及相关的信息),提供经销商的发⾏版和版本号(如: Fedora Core 4 、 Slackware 9.1 等)。
- 描述在提问前你是怎样去研究和理解这个问题的。
- 描述在提问前为确定问题⽽采取的诊断步骤。
- 描述最近做过什么可能相关的硬件或软件变更。
- 尽可能的提供⼀个可以重现这个问题的可控环境的⽅法
问题解决后,加个简短的补充说明
问题解决后,向所有帮助过你的⼈发个说明,让他们知道问题是怎样解决的,并再⼀次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了⼴泛关注,应该在那⾥贴⼀个说明⽐较恰当。
如何解读答案
RTFM 和 STFW:如何知道你已完全搞砸了
有⼀个古⽼⽽神圣的传统:如果你收到 RTFM (Read The Fucking Manual) 的回应,回答者认为你
应该去读他妈的⼿册。当然,基本上他是对的,你应该去读⼀读。RTFM 有⼀个年轻的亲戚。如果你收到 STFW(Search The Fucking Web) 的回应,回答者认为你应该到他妈的⽹上搜索。那⼈多半也是对的,去搜索⼀下吧。(更温和⼀点的说法是 Google 是你的朋友!)