fun4gao Everything that counts

如何高效提问

2019-03-27

提问是一个人一生中不可避免的问题,但提问,特别是高效提高,并不是人天生就会的本领。为什么要高效提问?人生苦短,要把时间花到美好事物身上,而不是浪费在低效沟通、误会甚至相互抱怨当中。

高效提问的两个核心

  1. 态度问题:不偷懒,不做伸手党

    不要以为自己除了简单的把问题抛出去,什么都不用做,就等着答案了

  2. 能力问题:表达的技巧

    明确地表达自己的目标,自己的思考过程,采取的措施和步骤,卡在哪一步,需要得到什么帮助

本文内容大多来自网络,略有修改:

引用一、提问的智慧

在工作和生活中,总是会有很多人问问题。有一些时候,问问题的和答问题的总是会有一些不爽的事情发生。如下面的几种情况:

  • 比如:“我的电脑老是蓝屏,怎么办?”,通常这样的问题90%以上的回答是:“重装吧”。这让问问题的人感到很沮丧,但你不能不承认那是答案。而且有时候让人无法解答,比如:“我的makefiel出错了,你帮我看看我的makfile”,我通常会反问,报了什么错吗?

  • 另一种情况是,回答问题的人首先对问问题的人的抱怨,你问的问题就不对,或是,你问的这个问题是什么意思,而导致问问题的人却在不停地解释,结果花了好长时间来讨论问题本身是什么。

  • 还有一种情况是,问的问题太简单了甚至太白痴了,比如你自己试一试或是读读文档就知道了的问题,或是问这个问题直接表明了你的无知或是懒惰。这种问题会相当影响别人对你的印象。

  • 第四种情况是,提问者滔滔不绝,扯这扯那,讲了一大堆,听得听累了。最后都不知道你要干什么。

所以,怎么去问问题,怎么问一个好的问题,是一个很重要的事。你提问的技术直接关系到了你是否能够很快得到你满意的答案。

以下是从提问的智慧中摘取的要点:

  • 提问前,先自己尝试查找答案,读读文档、手册,看看有没有相似的问题,看看那些方法能不能帮你解决问题,自己去试一试。如果你是程序员,你应该先学会自己调查一下源代码。(不然,人家回答你的一定是——RTFM – Read The Fucking Manual)这样的问题很多。很多人不愿意回答这样的问题,他可能会觉得问问题的人把他当成了他的小跟班了。不要做伸手党,先向搜索引擎求助,自己查阅相关资料,找解决办法。不要查一下没有就放弃了,百度不行何不试试Google,或者简化一下自己问题,用关键词来搜索。为什么我们要先向搜索引擎求助呢?首先,大多数时候我们遇到的问题别人大都遇到过,我们需要的东西在网上也非常容易获得;其次,我们自己搜索这些东西比别人灌给我们,我们能学到更多。如果网上查找不到你想要的答案,那再花点时间思考一下这个问题,搞清来龙去脉,做到有备而来。草率的提问很可能得到草率的回答。在提问问题之前做的准备越充分,越有可能得到实质性的帮助。

  • 提问的时候,找正确的人或是正确的论坛发问。向陌生人或是不负责的人提问可能会是很危险的。不正确的人,会让你事倍功半。如果你问Linux的人Windows太慢怎么办?他们一定会让你把Windows删了装Linux去的。

  • 问的问题一定要是很明确的,并且阐述你做了哪些尝试,你一定要简化你的问题,这样可以让你的问题更容易被回答。对于一些问题,最好提供最小化的重现问题的步骤。

  • 你一定要让问题变得简单易读,这和写代码是一样的。只有简单易读的邮件,人们才会去读,试想看到一封巨大无比的邮件,读邮件的心情都没有了。而且,内容越多,可能越容易让人理解错了。

  • 你问问题的态度应该是以一种讨论的态度,既不是低三下四,也不是没有底气。只有这样,你和你的问题才能真正被人看得起。要达到这个状态,不想让别人看不起你,你就一定需要自己去做好充足的调查。问题问得好的话,其实会让人觉得你很有经验的,能想到别人想不到的地方。

  • 不要过早下结论。比如:“我这边的程序不转了,我觉得是你那边的问题,你什么时候能fix?”,或是“太难调试了,gdb怎么这么烂?!”。当你这么做的时候,你一定要有足够的信息和证据,否则,你就显得很自大。好的问题应该是,“我和你的接口的程序有问题,我输入了这样的合法的参数,但是XX函数却总是返回失败,我们能一起看看吗?”,“我看了一下gdb的文档,发现我在用XXX命令调试YYY的时候,有这样ZZZ的问题,是不是我哪里做错了?”

  • 明确表达你的问题及需求。用清晰、正确、精准的语句来表述你的问题,如果你觉得这样措辞比较麻烦,浪费时间,那你把一个乱糟糟毫无逻辑的问题抛给回答者只会让情况变得更加糟糕。

    精确地描述问题并言之有物,话不在多在精,将自己的问题进行总结提炼,这个过程本身本身就不容易,同时这也是一个复盘问题的过程,有助于把问题想得更透彻。这样提问更有针对性,同时能理解的更加深刻。

  • 直入主题,切忌因个人情感的过分表达影响的问题的表述。提问前不要用喋喋不休的“帮帮忙、跪求、救命啊”等你个人的痛苦来浪费时间和机会,即使问题很紧急,也不要光顾着渲染紧急气氛而忽略问题本身。提问时也不要低声下气,把自己的位置放的很低,以免主次不分而把问题描述的模模糊糊,你不是来诉苦的,而是来求助的,没有人会嘲笑一个认真问问题的人。

    我偶尔会在英文论坛提问别人关于手机或电脑的问题,那时候我所有的精力都集中在如何用最准确的单词和句子来表述自己的问题,根本就没时间无病呻吟。

    漫无边际的提问近乎无休无止的时间黑洞,最有可能给你有用答案的人通常也正是最忙的人。去掉无意义的提问句,例如,在吗?你能帮我吗?你连问题都不说,别人怎么知道能不能帮你。

    这里可以联想到微信,很多不怎么联系的微信好友会时不时冒出来,问你一句“在吗”,或者发一个搞笑的表情,然后就打死也不说话了。这种情况下对方大都是有求于你,而且还都是不痛不痒的问题,但是谁都忙,没有时间去猜你的问题,何不直接说出问题,对方如果有能力且时间合适,就直接帮你解决问题了,万一回了你一个“在”,然后你那边抛出一连串不痛不痒的问题,这时不帮不好,帮,自己又没那么多时间,很尴尬。我对于这种信息一般是直接忽视,如果你真有事情,你肯定会想办法说出来的。

  • 描述问题而不是讲述你的猜测。把最原始的问题告诉对方,不要加工,也不要把个人猜想加进去。指出问题是什么,而不是一味的说是不是我这一步应该这样做或者我那一步应该那样做……别人是在用他们的思维来考虑问题,而不是被你的思维拽着走。

  • 描述你的目标而不是过程。先告诉别人你的问题是什么,你想要得到什么结果,不要一上来就说你哪一步感觉不对。因为可能一开始你解决问题的方法就错了。先抓大,再深究。

    比如,如果你打算尝试自己重装系统,那就先自己查找教程一步步来,真到了哪一步,实在过不去了,再问懂得人,问的时候不要直接说哪一步过不去了,先说你用的哪一种方法装的系统,然后再说哪里出了问题。

  • 如果对方给了答案之后,还是搞不懂,不要着急接着去问,先自己想一想,尤其是要换个角度想一想,毕竟对方在解答问题的时候很可能站的角度和我们是不同的。如果研究一番之后真搞不懂,那就充分准备好你的问题,找合适的时间再向对方提问。

    这个可以联想我们初高中做数学题,真不会的题,看了答案之后有时候还是不会,任凭我们想破脑袋都想不通,这时候就是角度错了。

  • 好问题与坏问题

    坏问题:我在哪里可以找到关于坐享的资料啊?

    好问题:我在网上了查了很多地方那个都没找到关于坐享的资料,可否提供一些关于坐享的资料啊?

    坏问题:这个下载工具好不好用啊?(好问题就是不要问别人,自己试试就知道了。)

引用二、提问的几个原则

  • 原则一、向适当的人提问适当的问题

    大牛喜欢有挑战性和激发思考的好问题。如果你提的问题在百度知道都可以找到答案,就莫怪他们鄙视你了,你也应该反省一下,你自己为什么那么懒?!这些懒人们在高手眼中就像是蛀虫一样,本来大牛们的时间就不多,与其回答你的傻问题,不如花时间去回答其他更有意义的问题。

  • 原则二、提问前先搜一搜

    将你的问题放进搜索引擎过滤一遍,这其实不是什么难事,事实证明,90%的问题都可以用搜索引擎解决了,百度不行,用Google,Google不行用知乎。

    什么?怎么搜索?!

    这里刚好有一篇《十大高明的Google搜索技巧》,拿去用吧。

    什么?链接在哪里?!

    看原则二!

  • 原则三、提问前先试试自己解决

    如果你的问题在网络上找不到答案,你也需要自行思考试图解决,解决不了,再向大牛们提问,大牛们喜欢看勤于思考,喜欢自己动手的人,不要以为你可以随便地忽悠大牛,大牛们的经验比你丰富,一眼就可以看得出你对待问题的态度,所以,认真地思考,准备好你的问题。

  • 原则四、准确地描述问题

    问题的描述应该包含以下内容:

      1. 清晰的细节;
      2. 问题发生的背景;
      3. 提问前做过的调查研究及对其的理解;
      4. 提问前为确定问题而采取的诊断步骤;
    

    注意:千万不要用什么“跪求”,“在线等”,“紧急”等之类哗众取宠的词语来吸引别人的注意,在很多人看来,这些问题根本不值得去回答。

  • 原则五、问题解决后汇报一下结果

    别的不说,别人帮你解决了问题,你得向别人说声谢谢吧,这是最基本的礼节。

    如果你厚道的话,也可以将解决问题的过程写下来,让以后有问题的人不要重蹈覆辙。这个举动不仅是在总结经验,而且是在为自己攒人品,大牛看到你的总结会欣赏你的作为,以后就更加喜欢回答你的问题。

引用三、X-Y Problem

对于X-Y Problem的意思如下:

1.有人想解决问题X
2.他觉得Y可能是解决X问题的方法
3.但是他不知道Y应该怎么做
4.于是他去问别人Y应该怎么做?

简而言之,没有去问怎么解决问题X,而是去问解决方案Y应该怎么去实现和操作。于是乎:

1.热心的人们帮助并告诉这个人Y应该怎么搞,但是大家都觉得Y这个方案有点怪异。
2.在经过大量地讨论和浪费了大量的时间后,热心的人终于明白了原始的问题X是怎么一回事。
3.于是大家都发现,Y根本就不是用来解决X的合适的方案。

X-Y Problem最大的严重的问题就是:在一个根本错误的方向上浪费他人大量的时间和精力!

示例

Q) 我怎么用Shell取得一个字符串的后3位字符?
A1) 如果这个字符的变量是$foo,你可以这样来 echo ${foo:-3}
A2) 为什么你要取后3位?你想干什么?
Q) 其实我就想取文件的扩展名
A1) 我靠,原来你要干这事,那我的方法不对,文件的扩展名并不保证一定有3位啊。
A1) 如果你的文件必然有扩展名的话,你可以这来样来:echo ${foo##*.}

再来一个:

Q)问一下大家,我如何得到一个文件的大小
A1)size = `ls -l $file  | awk '{print $5}'`
Q) 哦,要是这个文件名是个目录呢?
A2) 用du吧
A3) 不好意思,你到底是要文件的大小还是目录的大小?你到底要干什么?
Q)  我想把一个目录下的每个文件的每个块(第一个块有512个字节)拿出来做md5,并且计算他们的大小 ……
A1) 哦,你可以使用dd吧。
A2) dd不行吧。
A3) 你用md5来计算这些块的目的是什么?你究竟想干什么啊?
Q) 其实,我想写一个网盘,对于小文件就直接传输了,对于大文件我想分块做增量同步。
A2) 用rsync啊,你妹!

所以,我们在寻求别人帮助的时候,最好把我们想解决的问题和整个事情的来龙去脉说清楚。


上一篇 第一篇笔记

Comments

Content