在职场上、在生活中提问无处不在,有时我们扮演着提问者,有时我们扮演着回答者。
有些人可能觉得不就是提个问嘛?有啥难的?我很认真的告诉你,提问是一门技术活。
如何正确地提出问题,是一个至关重要的技能。
在写公众号之后,有很多同学会私信我,问我各种问题,作为过来人,我当然懂得那些初入行的程序员们的困惑,我也经历过那个阶段。
在入行初期,我也会问出一些让人难以回答的问题,后来经过社会的毒打,我才渐渐地懂得提问的艺术。
今天我就想谈谈程序员们应该如何提问,有些观点可能听着有点刺耳,但这就是现实。
错误的提问提的问题其实只要简单的用下搜索引擎就能得到答案。
比如有人问:什么是区块链?
很难吗?身为程序员搜索引擎都不会用?
还是你已经懒到需要别人把:
打开搜索引擎
输入关键字
点击搜索
点击答案
这几步骤帮你做了,然后再发你链接,你直接点就行了?
再比如一些代码错误,搜索引擎随便一搜即可得知答案,比如:
前人栽树后人乘凉,你偏不在那棵树下待着,拉着别人让他当场种树。
我从来没劝退过学编程的,看到这种的我要劝退你了。
搜索引擎都不会用写什么代码?
你不适合写代码,你没有编程细胞,你适合做少爷。
所以提问之前至少要先自己搜搜吧?别遇到个问题就抛出来,自己都不努力,不去尝试,就想着饭来张口吗?
还有工作上的一些事情,也需要提一提。
比如领导上周发了个代码规范手册,内容很多,上百条。
然后你今天写代码的时候忘了里面一项具体的约束,但是你有点印象,这时候我建议你自己去拉下那个文档找一找,而不是去问同事。
你可能会觉得问下同事更快,但是你自己记不得不要期望别人能记得,公司文件盘就在那里,你自己下载,翻一下很快,能不打扰别人尽量不要打扰别人。
职场上养成这样的习惯,同事间的关系会更加融洽。
就像小时候妈妈教的,自己的事情自己做。
提一些范围过于大的问题。
比如有人问:如何才能学好编程?
我很能理解你想要努力成长奋斗的热血之心。
人人都想上进,人人都想成为别人家的孩子。
但是问题范围过于大,怎样才算是你心目中的学好编程?
是做出个网站就算了吗?还是做出个有口皆碑的轮子?
是月薪达到 1W、2W、3W?
这类问题很模糊,而且只言片语间是说不清的,这肯定是需要经过系统的研究,这估计得一个专栏才能讲得清,这样你让人如何回答?
如果非得让我给出一个答案,那我只能说努力学习?
我估计得到这答案你又不乐意了,说我在敷衍你。
再来个问题:mysql 如何调优?
我感觉你在面试我,我只能回答你:***********。
懂的掌声!
问题冗长,错别字连篇,一堆代码。
这类问题在我们程序员中还是比较常见。
因为我们碰到的问题经常是需要结合一大段代码,需要涉及具体业务逻辑。
然后一堆代码直接微信发过来,没有任何排版,问题有好几段话,直接一扔,坐着解答。
还有一些打了错别字,语句不通,你聊天的时候打错字可以理解,但是你现在是在提问,是请求别人帮你解答。
你需要为自己的提问负责,你的问题都说不清晰,回答者为什么要耗费精力去解读你的提问?
是有几十套房整天想着如何收租,真的闲的蛋疼了吗?
将心比心,别人向你提问的时候这样一堆甩过来,代码一堆,问题都读不通顺,你有何感想?
所以上点心,这种问题,我贴个 RocketMQ issue template,参照这样的格式,写出来,然后发过来提问。
还有和业务强相关的问题,在你充分研究都束手无策之下,真心建议问下你 leader,放着 leader 不用干嘛?外人理解你业务都得花很大精力。
leader 不是拿来供着的,是拿来用的。
正确的提问自己要先想清楚细节,精简问题。
问题不要张口就来,你遇到问题你真的努力思考过了吗?
你真的理清数据的来龙去脉的吗?
你真的自己打断点一步一步调试过了吗?
还是你只看到,呀,这个服务报错了,怎么回事?
于是问旁边的老哥,我这调用怎么报错了,你帮我看看?
我以前就是这样的,因为我是真的不懂,束手无策,那时断点都打不利索。
随便出点问题就睁眼瞎。
这时候就需要反思下自己,去学习,让知识武装自己。
再说回来,如果你仔细思考过你可能会发现问题被你解决了。
有时候就是缺少前后的梳理,你就集中在某个点,一直想一直想,抓破脑袋也想不出来。