CSDN专家博客精华版

为人民服务!
  首页  :: 新随笔  :: 管理

提问的艺术

Posted on 2007-12-17 10:17  csdnexpert  阅读(78)  评论(0编辑  收藏  举报


曾经为CSDN整理的,提问的艺术,网上流传已久,在我没毕业就已经看过了,为CSDN做了小小的修改,里面提到的建议。

http://community.csdn.net/Expert/TopicView.asp?id=3229596


当我们提出一个技术问题时,你能得到怎样的回答?这取决于答案的难度, 同样取决于你提问的方法。好的提问方法可以最大限度地获得你最想要的答案,并且解决你的问题。

    不想掩饰对这样一些人的蔑视——他们不愿思考,或者在发问前不去完成他们应该做的事。这种人只会谋杀时间——他们只愿索取,从不付出,无端消耗解答者的时间,而解答者本可以把时间用在更有趣的问题或者更值得回答的人身上。我们称这样的人为"失败者"(由于历史原因,有时把它拼作"lusers")。

A. 提问之前我应该做什么?(Before You Ask)

在提出技术问题前,问问自己有没有做到:

  1. 使用系统自带的帮助,试着自己找答案解决问题;
  2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象);
  3. 在网上搜索,你的问题可能很多人已经碰到,去Google找找吧;
  4. 向你身边精于此道的朋友咨询。

当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果提问者和解答者能从答案中学到东西,解答者更乐于回答他的问题。

    周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。

    另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。"谁能给点提示?"、"我这个例子里缺了什么?" 以及 "我应该检查什么地方?" 比 "请把确切的过程贴出来" 更容易得到答复。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心,而并非一步一步地搀扶。

B. 我应该怎样提问 (When You Ask)

谨慎选择专区

小心选择提问的场合。如果象下面描述的那样,你很可能被忽略掉或者被看作失败者:

  1. 在风马牛不相及的论坛或专区贴出你的问题;
  2. 在探讨高级技巧的论坛张贴非常初级的问题;反之亦然;
  3. 在太多的不同区组交叉张贴;

用辞贴切,语法正确,拼写无误

()我们从经验中发现,粗心的写作者通常也是马虎的思考者(我敢打包票)。回答粗心大意者的问题很不值得,解答者宁愿把时间耗在别处。

()正确的拼写,标点符号和大小写很重要。更一般的说,如果你的提问写得象个半文盲,你很有可能被忽视。

()如果你在使用非母语的论坛提问,你可以犯点拼写和语法上的小错--但决不能在思考上马虎 (没错,解答者能弄清两者的分别)

()使用含义丰富,描述准确的标题,在提问中中,大约50字以内的主题标题是抓住资深专家注意力的黄金时机。别用喋喋不休的 "帮帮忙"(更别说 "救命啊!!!!!" "跪地裸求" 这样让人反感的话)来浪费这个机会。不要希望用你的痛苦程度来打动解答者,别用空格代替问题的描述,哪怕是极其简短的描述。

描述不清楚的问题:

救命啊!我的Windows 98不能正常显示了!!!!!!

建议的表述:

求助!我的Windows 98一直很好,但最近进入系统后花屏,鼠标不听使唤了。


精确描述,信息量大

  1. 谨慎明确的描述症状;
  2. 提供问题发生的环境(机器配置、操作系统、网络拓扑,应用程序设置等);
  3. 说明你在提问前是怎样去研究和理解这个问题的;
  4. 说明你在提问前采取了什么步骤去解决它;
  5. 罗列最近做过什么可能有影响的硬件、软件变更。

Simon Tatham写过一篇名为《如何有效的报告Bug》的出色短文。强力推荐你也读一读。

话不在多

你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。这样做的用处至少有三点。

第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加;
第二,简化问题使你得到有用答案的机会增加;
第三,在提炼你的bug报告的过程中,也许你自己就能找出问题所在或作出更正。

描述不清楚的问题:

大家好!有一台 XP 的机器 在内网能看见可就是打不开!这种情况应该怎样检查最好?

建议的表述:

一个局域网中,服务器是Windows 2000 server。客户机是Windows XP Pro,服务器Ping 客户机,可以Ping 通。但是搜索计算机,找不到客户机。请问,这是什么问题?怎么解决?谢谢!

按时间顺序列出症状

对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,因此,你的说明应该包含操作步骤,以及电脑的反应,直到问题产生。如果你的说明很长(超过四个段落),在开头简述问题会有所帮助,接下来按时间顺序详述。这样就会让人知道该在你的说明中找什么。

明白你想问什么

漫无边际的提问近乎无休无止的时间黑洞。最能给你有用答案的人也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞不太感冒,因此也可以说他们对漫无边际的提问不大感冒。 如果你明确表述需要回答者做什么(提供建议,发送一段代码,检查你的补丁或是别的),就最有可能得到有用的答案。这会定出一个时间和精力的上限,便于回答者集中精力来帮你,这很凑效。

解决你的问题需要的时间越少,越能从忙碌的专家口中掏出答案。因此,优化问题的结构,尽量减少专家们解决它所需要的时间,会有很大的帮助--这通常和简化问题有所区别。因此,问 "我想更好的理解X,能给点提示吗?" 通常比问 "你能解释一下X吗?" 更好。如果你的代码不能工作,问问它有什么地方不对,比要求别人替你修改要明智得多。

别问应该自己解决的问题

这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示和建议,但别要求得到完整的解决方案。

去除无意义的疑问

别用无意义的话结束提问,例如 "有人能帮我吗?" 或者 "有答案吗?" "没有人办到吗?"。

首先:如果你对问题的描述不很合适,这样问更是画蛇添足。其次:由于这样问是画蛇添足,别人会很厌烦你——而且通常会用逻辑上正确的回答来表示他们的蔑视,例如:"没错,有人能帮你" 或者 "不,没答案"。

谦逊绝没有害处,而且常帮大忙

彬彬有礼,多用 "请" 和 "非常感谢"。让大家都知道你对他们花费时间义务提供帮助心存感激。并且,如果你有很多问题无法解决,礼貌将会增加你得到有用答案的机会。

问题解决后,加个简短说明

问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个补充说明。补充说明不必很长或是很深入;简单的一句 "谢谢楼上的,今晚回去试试。" "你好,原来是网线出了问题!谢谢大家!" 比什么也不说要强。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇学术论文更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。

除了表示礼貌和反馈信息以外,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。这种补充有助于所有提供过帮助的人从中得到满足感。这种感觉对于那些你向他们求助的导师或者专家而言,是非常重要的。

补充,问题解决后请及时结贴,结贴的时候,建议根据回答的价值给分,把分数给那个最重视你的问题的解答者,这样能带动回答者的积极性,体现解答者的劳动价值,而不是不论回答平均分配分数,问题久拖未决会让人灰心;好人有好报,满足他们的渴望,你会在下次贴出新问题时尝到甜头。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=158284