yescode

在职场上、在生活中提问无处不在,有时我们扮演着提问者,有时我们扮演着回答者。

有些人可能觉得不就是提个问嘛?有啥难的?我很认真的告诉你,提问是一门技术活。

如何正确地提出问题,是一个至关重要的技能。

在写公众号之后,有很多同学会私信我,问我各种问题,作为过来人,我当然懂得那些初入行的程序员们的困惑,我也经历过那个阶段。

在入行初期,我也会问出一些让人难以回答的问题,后来经过社会的毒打,我才渐渐地懂得提问的艺术。

今天我就想谈谈程序员们应该如何提问,有些观点可能听着有点刺耳,但这就是现实。

错误的提问

提的问题其实只要简单的用下搜索引擎就能得到答案。

比如有人问:什么是区块链?

很难吗?身为程序员搜索引擎都不会用?

还是你已经懒到需要别人把:

  1. 打开搜索引擎

  2. 输入关键字

  3. 点击搜索

  4. 点击答案

这几步骤帮你做了,然后再发你链接,你直接点就行了?

再比如一些代码错误,搜索引擎随便一搜即可得知答案,比如:

前人栽树后人乘凉,你偏不在那棵树下待着,拉着别人让他当场种树。

我从来没劝退过学编程的,看到这种的我要劝退你了。

搜索引擎都不会用写什么代码?

你不适合写代码,你没有编程细胞,你适合做少爷。

所以提问之前至少要先自己搜搜吧?别遇到个问题就抛出来,自己都不努力,不去尝试,就想着饭来张口吗?

还有工作上的一些事情,也需要提一提。

比如领导上周发了个代码规范手册,内容很多,上百条。

然后你今天写代码的时候忘了里面一项具体的约束,但是你有点印象,这时候我建议你自己去拉下那个文档找一找,而不是去问同事。

你可能会觉得问下同事更快,但是你自己记不得不要期望别人能记得,公司文件盘就在那里,你自己下载,翻一下很快,能不打扰别人尽量不要打扰别人。

职场上养成这样的习惯,同事间的关系会更加融洽。

就像小时候妈妈教的,自己的事情自己做。

提一些范围过于大的问题。

比如有人问:如何才能学好编程?

我很能理解你想要努力成长奋斗的热血之心。

人人都想上进,人人都想成为别人家的孩子。

但是问题范围过于大,怎样才算是你心目中的学好编程?

是做出个网站就算了吗?还是做出个有口皆碑的*?

是月薪达到 1W、2W、3W?

这类问题很模糊,而且只言片语间是说不清的,这肯定是需要经过系统的研究,这估计得一个专栏才能讲得清,这样你让人如何回答?

如果非得让我给出一个答案,那我只能说努力学习?

我估计得到这答案你又不乐意了,说我在敷衍你。

再来个问题:mysql 如何调优?

我感觉你在面试我,我只能回答你:***********。

懂的掌声!

问题冗长,错别字连篇,一堆代码。

这类问题在我们程序员中还是比较常见。

因为我们碰到的问题经常是需要结合一大段代码,需要涉及具体业务逻辑。

然后一堆代码直接微信发过来,没有任何排版,问题有好几段话,直接一扔,坐着解答。

还有一些打了错别字,语句不通,你聊天的时候打错字可以理解,但是你现在是在提问,是请求别人帮你解答。

你需要为自己的提问负责,你的问题都说不清晰,回答者为什么要耗费精力去解读你的提问?

是有几十套房整天想着如何收租,真的闲的蛋疼了吗?

将心比心,别人向你提问的时候这样一堆甩过来,代码一堆,问题都读不通顺,你有何感想?

所以上点心,这种问题,我贴个 RocketMQ issue template,参照这样的格式,写出来,然后发过来提问。

还有和业务强相关的问题,在你充分研究都束手无策之下,真心建议问下你 leader,放着 leader 不用干嘛?外人理解你业务都得花很大精力。

leader 不是拿来供着的,是拿来用的。

正确的提问

自己要先想清楚细节,精简问题。

问题不要张口就来,你遇到问题你真的努力思考过了吗?

你真的理清数据的来龙去脉的吗?

你真的自己打断点一步一步调试过了吗?

还是你只看到,呀,这个服务报错了,怎么回事?

于是问旁边的老哥,我这调用怎么报错了,你帮我看看?

我以前就是这样的,因为我是真的不懂,束手无策,那时断点都打不利索。

随便出点问题就睁眼瞎。

这时候就需要反思下自己,去学习,让知识武装自己。

再说回来,如果你仔细思考过你可能会发现问题被你解决了。

有时候就是缺少前后的梳理,你就集中在某个点,一直想一直想,抓破脑袋也想不出来。

这时候就可以通过为了要正确的提问反推一下自己,因为正确的提问需要提炼问题,需要清楚里面的细节,所以迫使你自己从头开始理,往往到最后问题就被你自己解决了。

就算还有疑问,那问题也相当精简和准确,面对回答者的反问,你能很清晰地把流程说清楚,提高解决问题的效率。

所以自己先摸清细节,精简问题,既能锻炼自己的问题排查能力,提炼能力,还能更好地提问,百利而无一害。

不要觉得替你解决问题理所当然,要珍惜每一次提问。

我其实是一个不喜欢提问的人,我觉得会麻烦别人,除非自己真的解决不了我才会发问。

奈何能力有限,所以我还是会经常问别人问题,我也有提问得不到回复的时候,我会气愤,凭什么不回答我的问题。

人之常情,我很能理解编辑了一段话之后得不到任何回应的感受。

但是反过来想想人家可能在赶项目?

人家可能每天凌晨两点到家?我又没给人钱,人家有什么义务和责任来回答我的问题?

所以要接收这个现实,也没什么好抱怨的,他不是你爸妈,他也很忙,理解一下。

所以有人回答你的提问时你要珍惜,在提问之前你要思考这个问题这样问好不好,是不是模棱两可?

别人抽出时间回答你的问题,你能做的就是缩短别人回答的时间,最高境界就是能提出一些有价值的问题,让双方都得到收益。

还有,保持尊重,不要用向你提问是给你面子一样的语气说话,蜜汁自信?

尽量自己先思考得出几个可能性,或者说几个方案。

提问之后说出自己的理解,至少证明你努力思考过。

毕竟你自己是当事人,你熟悉自己的问题场景,所以可以说说几个大方向,或者备选方案。

我随便举个例子,比如:我现在要做些日志的处理,消息队列用哪个好?

把这种问题换成:我现在要做些日志的处理,消息队列是用 Kafka 、RocketMQ 还是 RabbitMQ?

这样问题就更加具体,这里就有个选择题好过简答题的说法。

比如你向领导提问,让他做决定。

提问 A:领导,最近业绩有点下滑,我这里有两个方案,A方案需要XXXX,B方案需要XXXX,您觉得哪个比较好?

提问 B:领导,最近业绩有点下滑,我该怎么办?

你是领导,你喜欢哪个?

毋庸置疑,在考试的时候我就喜欢做选择题,而不是简答题。

领导招你是要你想给方案,而不是给你想方案。

最后

这篇文章的目的不是出于讽刺,而是希望大家都能正确的提问。

正确的提问不仅能提高个人对问题的分析能力、提炼能力,还能提高解决问题的效率。

这样,你好我好大家好,才是真的好。

别做伸手党,有些问题真的是需要自己钻研才能成长,别人告诉你的和你自己研究出来的不一样。

还有强调一下,这篇文章不是让我们不要提问,而是正确的提问。

然后再推荐看一篇文章,《How-To-Ask-Questions-The-Smart-Way》,专门写给我们编程人士看的。

英文版地址:http://www.catb.org/~esr/faqs/smart-questions.html

中文版地址:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

欢迎关注我的公众号【yes的练级攻略】,更多硬核文章等你来读。


我是 yes,从一点点到亿点点,欢迎在看、转发、留言,我们下篇见。

相关文章: