提问的智慧(2)

Posted on 2014-05-19

#提问时

##认真选择论坛

谨慎地要选择提问的地方,如果你做了下述事情,多半会被忽视或被看成loser:

    1. 张贴与论坛主题无关的问题;
    1. 在面向高级技术问题的论坛上张贴初级的问题,反之亦然;
    1. 在不同的论坛或讨论小组同时张贴同一个问题;
    1. 向非熟人或没有义务解决你问题的人发送私人问题邮件。

为防止论坛被灌水,黑客们(论坛管理员)会删掉那些与论坛及主题无关的问题,你不想自己的问题被删掉吧。

因此,第一步是找到正确的提问论坛。谷歌和其它搜索引擎是你好帮手,当你遇到问题时,它们可以帮你搜索到与问题最相关的网站或者论坛。那里通常都会有「常见问题解答」(FAQ)、讨论组及文档的链接。如果你的努力(包括阅读 FAQ)都没有结果,这些讨论组就是你最后能取得帮助的地方。这些网站通常会有报告bug(错误)的地方或链接,你可以尝试通过这个方式按照指示反馈信息。

冒昧地向陌生人发送邮件或在不熟悉的论坛发表主题是一件比较「冒险」的事情。你不要天真地以为一个经验丰富的网站架构师会给你提供免费解答,也不要以为你的问题会在论坛中引起巨大反响,除非你很确定这一点,否则还是发送去其他地方去吧,或者最好就别发了。

在选择论坛和讨论组时,不要被他们的名字迷惑了,先看看FAQ或者版规以明确你的问题是否切合这个论坛的风格。发帖之前先翻翻已有的帖子,感受一下论坛的讨论氛围。事实上,善用论坛的搜索功能将会给带来极大的便利,或者这样你就更容易找到答案,即使没有,这也可以让你更好地表述出你的问题。

不要像机关枪似的一次性「扫射」所有的帮助通道,这样的行为像泼妇骂街一样令人抓狂,要有重点地一步一步来。

要搞清楚你提问的主题是什么!最典型的错误就是跑去苹果的论坛问关于Unix或Windows的问题,如果你不明白,最好在搞清楚概念,否则什么也别问。

一般来说,在公共论坛中提问比在封闭论坛中提问更容易得到有用的回答。选择依据:一是评估潜在的回复数较多,二是估算论坛的活跃度较高,相比之下,黑客更喜欢回答那些能启发多数人的问题。

同时,你可以理解,一些经验丰富的黑客和流行软件的作者正在承受过多的非议,因为涌入其私人邮箱的垃圾邮件变得越来越多,他们实在无法忍受,同时,你的加入有可能使情况更加恶劣,就像那根最后压垮骆驼背的稻草一样,所以,一些流行软件的作者正陆续停止对软件的更新和支持。

##通过新手论坛和在线客服可获得最快的回复

本地发行商会为宣传新产品会专门为新手设置论坛或在线客服(IRC)[8],这些地方是提问的好地方,特别是当你觉得遇到的是很普通的问题时。通过专门的在线客服或者公开新手提问专区,一般可以得到实时的回复。

事实上,如果出问题的程序来自某发行版(这很常见),最好先去该发行版的论坛中提问,再到程序本身的项目论坛中提问,否则该项目的黑客可能仅仅回复「尝试用我们的代码」来搪塞你。

在任何论坛发帖之前,先看看有没有搜索功能。如果有,就试着用问题的几个关键词搜索一下,这会给你带来帮助。如果在此之前你已做过全面的网页搜索(你应该这样去做),还是应该再搜索一下论坛,搜索引擎有可能还没建立此论坛的内容索引[9]。

目前,通过论坛或在线客服为用户提供帮助已经成为一种趋势,电子邮件交流方式则更多地为项目开发者保留。所以,新手一般建议在通过论坛或在线客服寻求与该项目相关的帮助。

【本章注释】

[8]「IRC」全程为Internet Relay Chat,即时聊天工具,在国内常见的是挂在网页内的QQ客服。

[9]也有部分论坛会屏蔽来自搜索引擎的爬虫,所以有时候还得在论坛中搜索。

##使用项目组的论坛

当某个项目组设立有开发者论坛[10]时,要向论坛而不是其中的个人成员提问,即使你确信他能为你提供最好的回答。查看一下项目的说明文件和主页,找到论坛地址并注册使用。采用这种办法有几个很好的理由:

    1. 如果向个人开发者提的问题足够好,他的回答也将对整个项目组有益。相反,如果你认为自己的问题对整个项目组来说太白痴,这也不能成为骚扰个人开发者的理由。
    1. 向论坛提问可以分散开发者们的负担,个人开发者(尤其是项目领导)也可能太忙,以至于没法回答你的问题。
    1. 大多数论坛记录都会存档,那些存档将会被搜索引擎索引,如果你向论坛递交的提问得到解答,将来其他人可以通过网页搜索找到你的问题和答案,那么他们就不用再次提问了。
    1. 如果某些问题经常被问到,开发者可以利用此信息改进说明文件或软件本身,以使其更清晰明白。如果只是私下提问,就没有人能知道最常见问题是什么,也无法建立一个常见问题解答手册。

如果一个项目论坛中既有「用户」 也有「开发者」(或 「黑客」,而你又不钻研那些高深代码,那就向「用户」组论坛提问。不要以为自己会在「开发者」论坛中会受到欢迎,那些人只会认为你是一个在装逼的傻逼。

然而,如果你确信你的问题十分特殊,在「用户」组论坛中提问了好几天都没有回复,可以尝试在「开发者」论坛提问。建议你在发帖前最好先潜水一阵以了解那的行事风格(事实上这是参与任何私有或半私有论坛的好主意)。

如果你找不到一个项目组的论坛,只能查到项目维护者的邮箱地址,可以向其发送邮件。但即便在这种情况下,也不要以为这个论坛是不存在的。在电子邮件中你可以陈述你试图寻找这个论坛的事实,告诉维护者也可以转发该邮件到相关的人员手中(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。

【本章注释】

[10]原文为邮件列表,邮件列表是论坛的初始形态,以前的论坛是以邮件名称作为联系ID交流,所以,在此篇文章中,邮件列表可视作论坛。

##使用含义丰富,描述准确的标题

请在论坛中用五十个或更少的字来描述你的主题,这是你吸引专家专家注意力的黄金法则,

精练的标题是你吸引专家注意的黄金机会,别喋喋不休地用诸如「帮帮我」的标题,这种主题只会被条件反射式地删掉,浪费掉一次提问的机会。不要试图用你深深的痛苦来打动我们,相反,要在讨论空间中使用简明扼要语句来描述问题。

撰写主题的规则是「对象──偏差」式的描述,许多技术支持组织就是这样做的。「对象」部分需要指明是哪一个或哪一组项目有问题,「偏差」部分则描述与期望的行为不一致的地方。

愚蠢的问题描述:救命啊!我的笔记本播放不了视频!

明智的问题描述:X.org 6.8.1 鼠标光标出现偏差,MV1005型号的某显卡芯片组

更明智的问题描述:使用 MV1005 型号的某显卡芯片组在 X.org 6.8.1 的鼠标光标出现偏差

撰写「对象──偏差」式的主题描述有助于引发你对问题的细致思考:是什么导致了这个问题?仅仅是鼠标光标出问题或者还有其它原因?只在X.org中出现抑或是在6.8.1的版本中?是针对某显卡芯片组还是或者只是其中的 MV1005 型号?一个黑客只需瞄一眼就能够立即知道你遇到的什么问题和解决方案。

为了方便索引查找,你需要正确地用标题来描述你的问题,以便下一个搜索类似主题的人能够迅速定位到你的答案中来,无须再发帖提问。

如果你想在回复中提问,请修改主题名称,以注明你是在问一个问题,例如「Re: 测试」或者「Re: 新bug反馈」这样的信息就不能引起足够的注意,同时,请注意删除与新主题无关的引用内容。

对于论坛消息,请不要直接点击回复(按钮)来开始一个全新的主题索引,这将限制主题的参与者。例如有些论坛允许隐藏消息,如果你这样做的话,别人就永远看不到你发的消息了。

有时候,仅仅改变标题还不够。其他的一些论坛还会检查你论坛主题的其他信息,以便为其提供索引,所以这时候宁可重新发一新帖。

成熟的论坛有一套完善的讨论规则,参与者发送的信息与特定的主题紧密结合,所以通过回复来提问也未尝不可。但并不是所有论坛都允许在回复中出现分支的主题,这样做的结果就是基本上没有人会去看[11],而且通过回复来继续提问是一种成效较低的做法,因为它们只会被正在查看该主题的人看到。所以,除非你只想向当前活跃的人群中提问,否则还是另发新帖比较好。

【本章注释】

[10]论坛中经常会出现灌水或者是版聊的情况,一大群人一个主题下你谈你的我谈我的,原主题容易就会被冲散。

##让回答来得更简便一点

用「请将回答发送到……」这样的方式来提问会使你的问题得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都嫌麻烦,我们也懒得花几秒钟去考虑你的问题。如果你的邮件客户端程序不支持设置,请换一个;如果你的操作系统不支持这种邮件客户端程序,也请换一个。

实际上,在论坛中,要求回答者通过电子邮件回复你的提问是粗暴无礼的,除非你确定他回复的比较敏感或涉及隐私的(现在的论坛也可以设置「私人可见」的回复)。如果你只是想在有人回复主题时得到电子邮件提醒,可以要求论坛发送。几乎所有论坛都支持诸如「留意本主题」、「有回复发送邮件」等功能[12]。

【本章注释】

[12]实际上,目前中国的论坛已很少使用邮件通知回复,只有少数索取资料的主题要求留些邮箱发送而已,大部分的论坛已采用消息提醒的方式来显示回复。

##用字义清晰、语法标准、拼写正确的语句撰写问题

经验告诉我们,粗心草率的人通常也会粗心草率地思考与编程。回答这些粗心草率者的提问没有什么好处,我们宁可将时间花在其他地方。

清楚、正确地表达你的问题非常重要。如果你嫌斟字酌句麻烦,那我们也懒得回复。所以,请稍微花一点点时间组织语言,也用不着太正式和死板──事实上,黑客文化提倡使用非正式词句、网络语言和幽默的语句,同时注意在遣词造句的过程中体现文字的准确性和你思考问题的积极性。

正确地拼写、使用标点和大小写,不要将「its」混淆为「it’s」,「loose」搞成「lose」或者将「discrete」弄成 「discreet」。不要全部用大写,这会被视为粗鲁无礼的大声嚷嚷 (全部小写也好不到哪去,因为不易阅读。Alan Cox[13]也许可以这样做,但你不行。)

一般来说,如果你像个半文盲般来提问,你多半会被无视。也不要使用短信中的简写,如将「you」简化为「u」,这会让你看起来像偷懒的傻逼。更有甚者像个小孩似地用火星文来提问,那就绝对是在找死,真的是喊破喉咙也没有人来理你(或者会有人在围观,并给你一大堆指责与挖苦)。

如果你在非母语(中文)的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上懒惰(没错,我们能看得出其中的差别)。同时,除非你知道回复者们使用的语言,否则请使用英语书写。如果你用黑客看不懂的语言发送提问,繁忙的黑客一般会直接无视并立即除。英语是互联网上的通用语言,用英语书写可以避免你的问题被直接无视。

如果你要用英文作为第二语言来提问,你可以使用以下的语句来进行说明,降低回答者对你语言使用的不适感:

    1. English is not my native language; please excuse typing errors.
    1. If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question.
    1. I am familiar with the technical terms, but some slang expressions and idioms are difficult for me.
    1. I’ve posted my question in $LANGUAGE and English. I’ll be glad to translate responses, if you only use one or the other.

【本章注释】

[13]Alan Cox:著名黑客,Linux 内核的重要参与者