一、
上学的时候,老师一遍一遍的告诉同学们:“有问题要多问,有个成语叫“不耻下问”。回到家里爸妈也告诫我们:“要多问老师问题,老师最喜欢问问题的孩子了。
”离开了学校以后,家里长辈也常说:“嘴巴长在你嘴上,要多问”,不是有句话嘛,叫“路在嘴边”。
关于这些大道理出自何处,到底有没有道理。暂且不去讨论。关键是,我们真的领悟到问问题的本质了吗? 还是为了问问题,而问问题。
现在时代变了,有些问题老一套的方法并不一定正确,就算正确也不一定是高效的方法。就算是高效的方法,我们用了以后,也许很快就忘了。
二、
最近我在学习JavaScript编程语言课程,老师为了大家学习,建立了微信群。群里面大家的讨论也是相当的热烈。
新手学编程,自然会遇到很多问题,大大小小,千奇百怪。老师也自然是鼓励提问,不管问题有多LOW,都没问题,只管提问。
因为群里小白学生众多,大家在基本操作上很容易遇到共性的问题,老师为了统一解答这些问题,将基本的一些后台,代码操作知识,给写成了一个一个的文档,文档的内容非常的详尽,且通俗易懂。老师把它放在公共平台上,让大家去阅读,去理解。
可是就这样,还是有人在群里提问那些基本的操作问题。大家一看就知道这位同学,没有去看文档,或者没有仔细看文档。
碰到这样的情况,老师也是无奈,但是又不能不理会,只能再一次解答。可是过了几天后,这位同学又将操作方法给忘记了,又来问老师。老师也是一脸无奈,直接把文档的链接抛给他。
随着课程的加深,大家都在讨论新、更复杂的问题时。还是会有一小戳人来提问老师文档里已经总结过的基础问题,这时,群里面直接就给忽视掉了......
这类同学而且不止一个,总是在这些基础的问题上反复询问,到最后,做测验,他们的成长也是最慢的。
还有一类同学,他们很少,或者基本上不会去提问那些基本的操作问题。他们不但不提问这些基础的问题,反而去主动去解答小白们的问题,都成了老师的助手了。这类同学就跟我们上学时的“学霸”一样一样的。
难道是他们太聪明了,没有遇到基本的问题?
No,大家都是一个起跑线过来的,都是从来没有接触过编程的人,怎么可能不遇到基本的问题呢。后来才了解到,学霸也一样会遇到基础的问题。甚至有一些很low的问题,学霸也会遇到,比如字母大小写搞错了,标点符号写中文的了,甚至文件不保存,直接就点击运行,结果运行结果显示“出错了”,这些又基础,又low的问题,学霸也会遇到。
但是“学霸”跟那些,动不动就喜欢“抛问题”的同学最大的区别就是:“学霸知道如何查资料,如何思考,如何排查出问题,最终找到答案”。因为他们有主动学习,且主动思考,所以他们的进步也是最快的。
学霸们遇到的问题以后,首先会去老师的文档里去找解决方法,老师的文档里找不到的,他们回去网上搜,查资料。然后在一步一步调试自己的代码。
最后,还是搞不定的,再去问老师。因为他们向老师提问了“高质量”的问题,曾不止一次的被老师当众表扬。
三、
那些老是喜欢一遇到问题,就随手抛到群里的同学,貌似看上去“不耻下问”,实质上与“伸手党”,没有任何区别。
为什么大家到后来直接忽视这类“不耻下问”的同学呢?
首先,程序员这类群体,大部分都是性格比较耿直,直来直去。再个,“伸手党” 的提问,在别人看来是在浪费自己的时间,或者感觉到了自己的时间不被尊重,所以,直接就忽视掉了。
“学霸” 们的问题,之所以收到老师赞扬,因为他们的问题,是经过自己反复查找资料,且思考了许久,他们再提问时,不但给出了问题,还给出了问题出现的背景,且给出了自己思考的一些结果,虽然这些结果可能是不对的,但是,对于老师来说,这已经是难能可贵了。
“学霸”提出的问题,老师基本上都是要琢磨一会,然后才给出方法。看上去学霸是在问老师问题,实质上实在同老师探讨问题。
四、
如何才能像“学霸”一样提出高质量的问题,快速提高自己的成长呢?
根据,对学霸的观察:
第一,高质量的问题一定是自己先前查找过的,并思考过,且没有找到答案的。
现在的搜索引擎那么发达,国外的就不说了,国内的网络搜索就很发达,90%的基本问题其实都是可以通过网络搜到。
比如,你碰到一个不会读的单词,你一上来就去问身边的人:“哎,这个咋读?”
这个时候,别人处于礼貌,一般会马上告诉你答案。
如果,你又碰到了第二个,第三个单词,又去问。别人有可能就会极不耐烦的告诉你:“卧靠,你不会买本字典啊。”
就算别人嘴上回答了你,但是心里面也是会很反感。因为,你的问题太傻瓜,他会认为你你浪费了他的时间,不尊重他。
对于大多数人来说,都是喜欢回答别人提问的。只不过这个回答仅限于回答聪明的问题。没有人喜欢回答一个即傻瓜,又愚蠢的问题。
其实大多数问题,在网上,我们都能找到答案,且不止一个人回答。
有些问题,虽然网上给不了直接答案,比如“数学题”,数学题的答案,就非常严谨,且唯一。要么是“1”,要么是“2”。
通过网上搜索查资料,不可能直接得到准确答案,除非所有题干条件都一模一样,虽然得不到答案,但是我们一定能找到相关的解题思路。
有了思路,我们再根据自己问题的实际情况,去分析,自然水到渠成。
二、提问问题时,一定要说清楚问题的背景,以及你已经为此做出了哪些努力。
在学习JavaScript编程课时,有很多同学在写完代码后,运行代码结果时,会显示 :“”not found,或者error。”
于是,很多人就会向群里老师,同学请教,提问的时候仅仅就把结果的截图给抛了出来
这个时候,热心的老师,或者“学霸”就会提醒同学,“这位同学,不要那么抠门,学大方一点”。
意思就是说:“截图的时候,把整个代码流程尽可能的多截出来,这样才便于别人分析原因,你直接抛一个 error结果,鬼知道咋回事啊。”
在向别人提问时,我们要把问题出现的背景,详细的说出来,因为不同的背景下,问题出错的原因也是不一样的,同样的,因为背景不同,答案也会不一致。
在别人帮我们分析问题时,要及时跟对方沟通,我们为解决问题付出了哪些努力,比如查了多少资料,自己思考的结果告诉对方。
这样做,便于别人提高解决问题的效率,同时也会感觉自己受到了尊重。而不是像回答单词读音一样,感觉自己浪费了时间。
学会提问问题,从本质上讲,就是要培养我们主动学习的习惯。而主动学习,着重体现在自己主动的去解决一个又一个问题,这也是快速提升自己的一个终极大招。
在提升自己技能的道路上,我们还会遇到很多问题,愿我们都能快速成长,拒绝做一枚“伸手党”。