文章节选自《提问也是一门学问》(原版为英文,作者不详),有删改
1、简介
本指南旨在帮助你提高提问技巧,以获取你最想要的答案。
尽管前辈们有蔑视简单问题的坏名声,有时看起来似乎他们侗Ρβ手不够友善,但其实不是那样的。
他们只是不想掩饰对这样一些人的蔑视--他们不愿思考,或者在提问前不去完成他们应该做的事。这种人只会谋杀时间--这种人只知催促尽可能详细的解决方案,却不肯多花自己的哪怕一点时间对问题一次性作出尽可能清楚的描述,这种人也可能认为前辈们整天无所事事,无聊到看见有人提问就会蜂拥而上。他们称这样的人为“失败者”(由于历史原因,我们有时把它拼作“lusers”)。
他们在很大程度上属于志愿者,从繁忙的生活中抽出时间来解惑答疑,而且时常被提问淹没。所以他们无情的滤掉一些话题,特别是抛弃那些看起来象失败者的家伙,以便更高效的利用时间来回答胜利者的问题。
如果你觉得他们过于傲慢的态度让你不爽,让你委屈,不妨设身处地想想。他们并没有要求你向他们屈服--事实上,他们中的大多数人最喜欢公平交易不过了,只要你付出小小努力来满足最起码的要求,他们就会欢迎你加入到他们的文化中去。但让他们帮助那些不愿意帮助自己的人是没有意义的。如果你不能接受这种“歧视”,他们将建议你花点钱找家商业公司签个技术支持协议得了。
如果你决定向他们求助,当然不希望被视为失败者,更不愿成为失败者中的一员。立刻得到有效答案的最好方法,就是象胜利者那样提问,并且只是偶尔在特定的问题上需要获得一点帮助。
2、提问之前
提出技术问题前,请检查你是否已经通读过使用手册以及是否已在论坛里使用站内搜索。
同时请周全的思考,准备好你的问题,草率的提问只能得到草率的回答,或者根本得不到任何答案。前辈们绝不会为几十字的问题写出几百字的回答,特别是该答案可以在论坛里搜索到。
如果你的问题基于错误的假设,多数前辈通常会用无意义的字面解释来答复你,并且一边在心里想着“蠢问题...”,希望着你会从他的回答(而非你想得到的答案)中汲取教训。
决不要自以为够资格得到答案,没有人有这种资格。毕竟大家都没有为这种服务支付任何报酬。你要自己去“挣”回一个答案,提出一个有内涵的、有代表性的新问题、一个使论坛的后来者不需要再问的问题,而不仅仅是被动的从前辈处索要知识。
3、怎样提问
3.1 谨慎选择提问途径
前辈们通常会砍掉问错地方的问题,以保护自己的论坛不被大量无关帖子淹没。你不会希望自己的帖子被这样砍掉吧。 特别需要提醒的是,不要企图要求前辈们在MSN私聊中单独为你解决问题。这一现象有多种原因,其中之一是公众论坛有更多的听众。前辈们更愿意让尽量多的人--而非有限的一两个--从回答中受益。
3.2 (略)
3.3 用辞贴切,语法正确,拼写无误
前辈们往往已从从经历中发现,粗心的写作者通常也是马虎的思考者(我敢打包票)。回答粗心大意者的问题很不值得,他们宁愿把时间耗在别处。因此,明确充分表述你的问题非常重要。如果你嫌这样做麻烦,他们也会懒得搭理你。
更一般的说,如果你的提问写得象个半文盲,你很有可能被忽视。如果写得象一个窥客(破解爱好者)或者灰客(只会用现成工具的捣乱者)绝对是自己找死,保证你除了无情的抵制什么也得不到(或者,最好的结局是得到一大堆挖苦嘲笑的“帮助”)。
3.4 用易读格式发送问题
如果人为造成你的提问难以收到有用的回复,将会更容易被人忽略。因此你不要把所有问题放在不停换行的一整段中。这将让答复的人难于回答其中一部分问题,即使能回答所有问题,他们也更希望条理清楚的一个一个来。
3.5 使用含义特指,描述准确的标题
别用喋喋不休的“帮帮忙”(更别说“救命啊!!!!!”这样让人反感的话)、“xx问题”(到底是什么问题)之类去浪费这个机会。不要妄想用你的痛苦程度来打动他们,别用空格代替问题的描述,哪怕是极其简短的描述。
蠢问题:1、急~!!!!我的数据库启动不了啦!2、有没有添加,删除库存但是不留记录的办法
聪明问题:基于sql数据库的程序有没有添加,删除库存但是不留记录的办法
注意,“蠢问题2”与“聪明问题”是有本质区别的,至少你为更多的使用sql的人能在网上搜索到它提供了机会,而这一点,恰恰为前辈们所看重。
3.6 精确描述,信息量大
1. 谨慎明确的描述症状。2. 提供问题发生的环境(机器配置、操作系统、应用程序以及别的什么)。 3. 说明你在提问前是怎样去研究和理解这个问题的。4. 说明你在提问前采取了什么步骤去解决它。5. 罗列最近做过什么可能有影响的硬件、软件变更。尽量想象一个前辈会怎样反问你,在提问的时候预先给他答案。
3.7 (略)
3.8 只说症状,不说猜想
告诉前辈们你认为问题是怎样引起的没什么帮助(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,不要加进你自己的理解和推论。让前辈们来诊断吧。
蠢问题:我在内核编译中一次又一次遇到SIG11错误,我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好?
聪明问题:我自制的一套K6/233系统,主板是FIC-PA2007 (VIA Apollo VP2芯片组),256MB Corsair PC133 SDRAM,在内核编译中频频产生SIG11错误,从开机20分钟以后就有这种情况,开机前20分钟内从没发生过。重启也没有用,但是关机一晚上就又能工作20分钟。所有内存都换过了,没有效果。相关部分的典型编译记录如下...。
3.9 按时间顺序列出症状
对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,因此,你的说明应该包含操作步骤,以及电脑的反应,直到问题产生。回忆整个操作记录接下来按时间顺序详述。这样前辈们就知道该在你的说明中找什么。
3.10 别要求私下答复
前辈们认为解决问题应该有公开、透明的流程。只要任何更有见地的人注意到答案的不完善或者不正确,这个最初的答案就可以和应该得到纠正。同时,通过能力和知识被大家注意,被大家接受,回答问题者得到了应有的奖励。
如果你要求对方私下回答你,这既破坏了整个流程,也破坏了奖励制度。别提这要求,这是回答者的权利,由他来选择是否私下答复--如果他选择这样做,通常是因为他认为这个答案过于显而易见或者有不良的公开影响,别人不会感兴趣。
3.11 明白你想问什么
漫无边际的提问近乎无休无止的时间黑洞。最能给你有用答案的人也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞不太感冒,因此也可以说他们对漫无边际的提问不大感冒。
如果你明确表述需要回答者做什么(提供建议,发送一段代码,检查你的补丁或是别的),就最有可能得到有用的答案。这会定出一个时间和精力的上限,便于回答者集中精力来帮你,或者让他事先安排好其它事情再来,而不是回了一段,然后你发现原来的问题有几个地方没说清楚,接着跟帖说明,接着......又发现还是有几个地方被你描述得容易造成误会。这很凑效。
要理解专家们生活的世界,要把专业技能想象为充裕的资源,而回复的时间则是贫乏的资源。解决你的问题需要的时间越少,越能从忙碌的专家口中掏出答案。
因此,优化问题的结构,尽量减少专家们解决它所需要的时间,会有很大的帮助--这通常和简化问题有所区别。因此,问“我想更好的理解X,能给点提示吗?”(这个能得到关键的几点提示)通常比问“你能解释一下X吗?”(很难想象在专家的眼中有几千字就能解释清楚的X)更好。如果你的代码不能工作,问问它有什么地方不对,比要求别人替你修改要明智得多。
3.12 别问应该自己解决的问题
前辈们总是善于分辨哪些问题应该由你自己解决;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。你要问一个软件安装失败的问题,不要企图让前辈们给你写出每一步,而是把你做的每一步写出来,让他们去发现你在其中做错的地方,就算你用ghost安装windows,过程至少也可冶ΡΥ出400字吧,不肯写的话,能不能得到切实有效的答案就要看运气了。
3.13 去除无意义的疑问
别用无意义的话结束提问,例如“有人能帮我吗?”或者“有答案吗?”。首先:如果你对问题的描述不很合适,这样问更是画蛇添足。其次:由于这样问是画蛇添足,前辈们会很厌烦你--而且通常会用逻辑上正确的回答来表示他们的蔑视,例如:“没错,有人能帮你”或者“不,没答案”。
3.14 谦逊绝没有害处,而且常帮大忙
彬彬有礼,多用“请”和“先道个谢了”。让大家都知道你对他们花费时间义务提供帮助心存感激。
3.15 问题解决后,加个简短说明
问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。 如果问题在论坛中引起了广泛关注,应该在那里贴一个补充说明。
补充说明不必很长或是很深入;简单的一句“你好,原来是网线出了问题!谢谢大家--Bill”比什么也不说要强。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇学术论文更好。
最后(至少?),这种补充有助于所有提供过帮助的人从中得到满足感。如果你自己不是老手或者前辈,那就相信我们,这种感觉对于那些你向他们求助的导师或者专家而言,是非常重要的。问题久拖未决会让人灰心;前辈们同样渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次贴出新问题时尝到甜头。
本文转自
http://www.sddbbs.net/bbs/forum.php?mod=viewthread&tid=25044