本文是《提问的智慧》在 Cytoid 2.0 公测群的定制版本。
考虑到 Github 上的文章并不是所有人都有条件获取,且其部分内容并不完全适用于 Cytoid 2.0 公测群,故进行适当改编和删节后移植于此。
仅采用 MIT 许可证并附加 SATA 进行许可,不使用全站公共的 CC BY-NC-ND 协议。
文章比较长,如果您只是想要得到一些要点的话,推荐只看每个标题行的内容。
以下是原作的版权信息:
Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen
本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。
原文网址:http://www.catb.org/~esr/faqs/smart-questions.html
Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu
本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译;
协助指出翻译问题,请发 Issue,或直接发 Pull Request 给原作者。
本文另有繁體中文版。
在提问之前
在您准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情:
- 尝试在您准备提问的论坛的旧文章中搜索答案。
- 尝试上网搜索以找到答案。
- 尝试阅读手册以找到答案。
- 尝试阅读常见问题文件(FAQ)以找到答案。
- 尝试自己检查或试验以找到答案。
- 向您身边的强者朋友打听以找到答案。
如果您是程序开发者,请尝试阅读源代码以找到答案。
当您提出问题的时候,请先表明您已经做了上述的努力;这将有助于树立您并不是一个不劳而获且浪费别人的时间的提问者。如果您能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。
运用某些策略,比如先用 Google 搜索(没有条件使用 Google 的也可以使用 bing 国际版搜索)您所遇到的各种错误信息,这样很可能直接就找到了能解决问题的文件或邮件列表线索。即使没有结果,在邮件列表或新闻组寻求帮助时加上一句「我搜过下列句子但没有找到什么有用的东西」也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做(加上搜索过的字串)也让遇到相似问题的其他人能被搜索引擎引导到您的提问来。
别着急,不要指望几秒钟的搜索就能解决一个复杂的问题。在向他人求助之前,再阅读一下群公告和常见问题解答、放轻松、坐舒服一些,再花点时间思考一下这个问题。相信我们,他们能从您的提问看出您做了多少阅读与思考,如果您是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因您的第一次搜索没有找到答案(或者找到太多答案)。
准备好您的问题,再将问题仔细的思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前您为解决问题所付出的努力,您越有可能得到实质性的帮助。
小心别问错了问题。如果您的问题基于错误的假设,某个专家多半会一边在心里想着「蠢问题」, 一边用无意义的字面解释来答复您,希望着您会从问题的回答(而非您想得到的答案)中汲取教训。
绝不要自以为够格得到答案,您没有;您并没有。毕竟您没有为这种服务支付任何报酬。您将会是自己去挣到一个答案,靠提出有内涵的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献社区经验的问题,而不仅仅是被动的从他人处索取知识。
另一方面,表明您愿意在找答案的过程中做点什么是一个非常好的开端。「谁能给点提示?」、「我的这个例子里缺了什么?」以及「我应该检查什么地方」比「请把我需要的确切的过程贴出来」更容易得到答复。因为您表现出只要有人能指个正确方向,您就有完成它的能力和决心。
当您提问时
低声下气不能代替您的功课
有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:「我知道我只是个可悲的新手,但…」或是「萌新刚玩cytoid」等等。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。
别用原始灵长类动物的把戏来浪费您我的时间。取而代之的是,尽可能清楚地描述背景条件和您的问题情况。这比低声下气更好地定位了您的位置。
使用有意义且描述明确的表述
在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的「帮帮忙」、「跪求」、「急」、「萌新求助」(更别说 「救命啊!!!!」这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用您的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。
想象一下您正在一个只显示标题的存档讨论串(Thread)索引中查寻。让您的表述更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。
精确地描述问题并言之有物
- 仔细、清楚地描述您的问题或 Bug 的症状。
- 描述问题发生的环境(手机型号、网络环境以及相关的信息等)。
- 描述最近做过什么可能相关的硬件或软件变更。
- 尽可能的提供一个可以「重现这个问题的可控环境」的方法。
- 尽量去揣测他人会怎样反问您,在您提问之前预先将他人可能反问的问题回答一遍。
以上几点中,当您报告的是您认为可能在代码中的问题时,给开发者一个可以重现您的问题的环境尤其重要。当您这么做时,您得到有效的回答的机会和速度都会大大的提升。
Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐您也读一读。
按发生时间先后列出问题症状
问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,您的说明里应该包含您的操作步骤,以及机器和软件的反应,直到问题发生。在 Cytoid 2.0 公测版中,提供一段控制台记录的截图会非常有帮助。
如果您的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样别人在读您的记录时就知道该注意哪些内容了。
清楚明确的表达您的问题以及需求
漫无边际的提问是近乎无休无止的时间黑洞。最有可能给您有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。
如果您明确表述需要回答者做什么(如提供指点、发送一段代码、检查您的补丁、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮您。这么做很棒。
界定一下您的问题,使专家花在辨识您的问题和回答所需要付出的时间减到最少,这技巧对您有用答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问「我想更好的理解 X,可否指点一下哪有好一点说明?」通常比问「您能解释一下 X 吗?」更好。如果游戏不能运作,通常请别人看看哪里有问题,比要求别人替您改正要明智得多。
别把自己家庭作业的问题贴上来
专家们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由 您 来搞定,您会从中学到东西。您可以要求给点提示,但别要求得到完整的解决方案。
如果您怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在使用者群组,论坛或(最后一招)在项目的使用者邮件列表或论坛中提问。尽管专家们会看出来,但一些有经验的使用者也许仍会给您一些提示。
去掉无意义的提问句
避免用无意义的话结束提问,例如「有没有人能帮我?」或者「有没有答案?」。
首先:如果您对问题的描述不是很好,这样问更是画蛇添足。
其次:由于这样问是画蛇添足,他人会很厌烦您 —— 而且通常会用逻辑上正确,但毫无意义的回答来表示他们的蔑视, 例如:「没有(无慈悲」。
一般来说,避免用「是或否」、「对或错」、「有或没有」类型的问句,除非您想得到 是或否类型的回答。
如何解读答案
STFW:如何知道您已完全搞砸了
如果您收到类似 STFW(例如:「自己百度」)的回应,回答者认为您应去网上搜索。那人多半也是对的,去搜索一下吧。
在论坛,您也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为您提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。
通常,这样的答复意味着回答者认为:
- 您需要的信息非常容易获得;
- 您自己去搜索这些信息比灌给您,能让您学到更多。
您不应该因此不爽;依照黑客的标准,他已经表示了对您一定程度的关注,而没有对您的要求视而不见。您应该对他祖母般的慈祥表示感谢。
如果还是搞不懂
如果您看不懂回应,别立刻要求对方解释。像您以前试着自己解决问题时那样(利用手册,教程,说明书,网络,身边的高手),先试着去搞懂他的回应。如果您真的需要对方解释,记得表现出您已经从中学到了点什么。
在下一节,我们会谈到另一个问题,当 您行为不当 时所会受到的「冒犯」。
如何避免扮演失败者
在一些社区的论坛中有那么几次您可能会搞砸 —— 以本指南所描述到的或类似的方式。而您会在公开场合中被告知您是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。
这种事发生以后,您能做的最糟糕的事莫过于哀嚎您的遭遇、宣称被口头攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、忘了关马桶盖等等。相反地,您该这么做:
熬过去,这很正常。事实上,它是有益健康且合理的。
社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送,它不是这样运作的。当有人评论您的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。
记着:当他人说您搞砸了,并且(无论多么刺耳)告诉您别再这样做时,他正在为关心您和他的社区而行动。对他而言,不理您并将您从他的生活中滤掉更简单。如果您无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对您。
有时候,即使您没有搞砸(或者只是在他的想像中您搞砸了),有些人也会无缘无故地攻击您本人。在这种情况下,抱怨倒是真的会把问题搞砸。
这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试您是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点您不用操心。
也别让自己卷入口水战,最好不要理睬大多数的口水战 – 当然,这是在您检验它们只是口水战,并且未指出您有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。
如果得不到回答
如果仍得不到回答,请不要以为我们觉得无法帮助您。有时只是看到您问题的人不知道答案罢了。没有回应不代表您被忽视,虽然不可否认这种差别很难区分。
总的来说,简单的重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道您问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能您的问题一开始就没有组织好。
您可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。
有许多网上的以及本地的音游群组,由热情的音游爱好者(即使他们可能从没亲自写过任何谱面)组成。通常人们组建这样的团体来互相帮助并帮助新手。
相关资源
Cytoid 2.0 大群群公告和文件中有很多有帮助的资料。
另外,游戏的很多相关资源可以去官网【社群维基】查询(需要梯子)。