在开发者的世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。
首先你必须明白,大牛们只偏爱艰巨的任务,或者能激发他们思维的好问题,对大牛而言,“问得好!”是发自内心的大力称赞。
尽管大牛们有蔑视简单问题和不友善的坏名声,有时看起来似乎对新手,对知识贫乏者怀有敌意,但其实不是那样的。
大牛们不想掩饰对这样一些人的蔑视--他们不愿思考,或者在发问前不去完成他们应该做的事。这种人只会谋杀时间--他们只愿索取,从不付出,无端消耗大牛的时间,而大牛本可以把时间用在更有趣的问题或者更值得回答的人身上。
如果你决定向大牛们求助,希望立刻得到有效答案的最好方法,就是像智者那样提问--聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。
提问之前
在提出技术问题前,检查你有没有做到:
通读手册,试着自己找答案。
在FAQ里找答案(一份维护得好的FAQ可以包罗万象)。
在网上搜索(个人推荐google~~~)。
向你身边精于此道的朋友打听。
当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果你确实想从答案中学到东西,大牛们更乐于回答你的问题。
周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
你愿意在找答案的过程中做点什么,是一个非常好的开端。“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心。
怎样提问?
精确描述,信息要全
谨慎明确的描述症状。
提供问题发生的环境(机器配置、操作系统、应用程序以及别的什么)。
说明你在提问前是怎样去研究和理解这个问题的。
说明你在提问前采取了什么步骤去解决它。
罗列最近做过什么可能有影响的硬件、软件变更。
尽量想象一个大牛会怎样反问你,在提问的时候预先给他答案。
话不在多
你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。
这样做的用处至少有三点。第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加;第二,简化问题使你得到有用答案的机会增加;第三,在提炼你的bug报告的过程中,也许你自己就能找出问题所在或作出更正。
只说症状,不说猜想
告诉大牛们你认为问题是怎样引起的没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本说明了问题的症状,不要加进你自己的理解和推论。让大牛们来诊断吧。
按时间顺序列出症状
对找出问题最有帮助的线索,往往就是问题发生前的一系列操作。因此,你的说明应该包含操作步骤,以及电脑的反应,直到问题产生。
如果你的说明很长,在开头简述问题会有所帮助,接下来按时间顺序详述。这样大牛们就知道该在你的说明中找什么。
温馨提示:内容为网友见解,仅供参考