盘点那些让人上火的提问方式(论如何让交流更高效)

2017-02-18 董付国 Python小屋 Python小屋

还有一周就开学了,今天不发Python技术文章了,聊个闲天。

当老师17年了,每学期第一节课都会把自己的各种联系方式留给学生,这样学生课下遇到不会的问题可以问我。但是总有些问题很难回答,简单回顾一下:

(1)总有学生问“老师,你在吗?”,我每次看到这样的问题都会非常上火,一般都会故意过很久(当然有时候也确实是过了很久才看到,毕竟有很多工作要做)才回复“在”,然后学生又问“我想问个问题,可以吗?”,唉,我好不容易压下去的火气瞬间又被勾了起来。哪有老师会不让学生问问题啊?你问的越多我才越喜欢啊,但是你能不能直接说说想问什么问题啊??????

附一段大概是2004年左右有一天半夜11点半多我和学生的短信:

学生:老师,你好!

我:好。

学生:老师,你在哪?

我:在家。

学生:老师,你在家干吗呢?

我:看书,备课。(补充:我在2012年之前基本上都是每天看书到凌晨2点才睡,后来年龄大了不敢熬夜了,就改成12点之前睡觉了。)

学生:那我想问个问题不知道可以不可以。

我:可以,问吧。

学生:那真是不好意思,这么晚还打扰你。

我:没事,说说什么问题。

学生:好的,老师。

到这里的时候我已经快疯了,直接给他打电话沟通,结果是个很简单的问题,几句话就说明白了。

(2)大概2年前,有学生在微信上发给我一个链接,说上面的代码看不懂,想让我看看然后给他讲讲,我打开一看,十多页代码,我问他哪里看不懂,他说哪里都看不懂,让我从头到尾给讲一下。我脑子里瞬间浮现出一个想法:这孩子是不是有病啊?且不说老师有没有时间从头到尾看完十多页代码再给你讲,就算给你讲你能听懂和吸收多少?

(3)“老师,你觉得Java语言好还是C#好?“”董老师,你觉得Python与C、C++、C#和Java相比有哪些优势呢?“”老师你觉得Python和C#哪个好?“,虽然我每次遇到类似的问题都会耐心解释几句不同语言的特点和优势,但是说实话,我觉得这样的问题一点意义都没有。就好比,你去问别人”你觉得橘子好吃还是苹果好吃?“或者”你觉得跑步和慢走哪个健身效果好?“,,,,不要问那么多,存在就有道理,各有各的优点,总是纠结哪个好还不如赶紧选择一个,然后撸起袖子加油学。

(4)近几年来接触Python比较多,还陆续出版了《Python程序设计》、《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》等系列图书,于是经常有朋友发微信或者在问我”老师,Python都能做什么?“”老师,我想用Python做图像处理,该怎么做?“”老师,Python能做****(这里不是敏感词被替换,而是问啥的都有,用几个星号代替一下)吗?“。唉,要是平时面对面聊天吧这么问问还可以,但是微信或者QQ上这么问,我要打很多字才能说清楚的啊,并且这样的问题在网上稍微一搜就会有铺天盖地的答案啊。

(5)发过来一个代码小片段,问是什么意思。说实话,这对我的期望值有点高了,代码中每个语句都要结合上下文才能准确说明其含义和作用,孤零零几行代码真的很难说清是做什么用的。

(6)“老师,我有个特别简单的问题想问你。”不解释,不评论。

(7)”老师,这个问题我要是去网上搜的话应该搜什么关键字?“,我觉得这样的问题非常让人难过。大学生了啊,读了十几年书都读哪去了啊,把问题提炼一下,找几个词搜搜试试,在搜索的过程中适当调整关键词,大部分问题都可以搜到的啊。

附一段大概5年前我和一个跟我做毕业设计的同学的对话片段,背景是寒假前我让他们确定好题目以后到网上找一些资料假期看看,然后开学后我喊他们来教研室开会检查进度。

我:你打算做个什么方面的毕业设计,题目想好了吗?

学生:想好了,是*******。

我:还可以,假期都看的什么资料呢?

学生:没看,我在网上找了很久,没有这方面的资料。

我:怎么可能,这方面的资料网上有很多,你肯定是没找,偷懒了。

学生:真的,老师,我没骗您,真找不到。

我(打开谷歌,直接输入几个关键词,找到一堆资料):过来,你看看这都是什么?

学生:哎呀,老师你这电脑好啊,我也是这么搜的,怎么在我电脑上就没搜到呢。

晕啊,我电脑好,气的我差点喷一屏幕血。


当然,说了这么多,并不是说不能问别人问题。恰恰相反,必须要经常问别人问题,我也特别欢迎别人问我问题,这可能是老师的职业病吧。特别怀念16年前学生为了听我的C语言课去抢前排座位而把教室的门挤掉2次,特别怀念当年我讲C语言课时一个能容纳380人的大教室里居然来了600多学生而导致过道上、讲台前都很多学生站着、蹲着听课,更特别怀念经常下了课之后学生问题不断,和我一边往回走一边问问题,然后急匆匆再跑到另外的教室去上别的课,那时候的孩子是真爱学习啊,也真是爱问问题。交流是个互相学习、互相提高的过程,关键是应该怎么问,这是个技术活。我觉得有效的沟通应该是这样子的:

(1)首先自己应该反复思考要问的问题,准确定位卡住自己的难点。

(2)充分利用网络资源,搜索一下自己的问题难点,看看能不能解决。当然,网上的答案很可能是五花八门的,很可能会把你搞的更晕。这也没关系,尝试着梳理出几种答案来,最好能试一试验证一下。

(3)在问别人或者交流时,概要介绍问题的背景,准确说明问题难点,最好能提出自己的想法。我喜欢的开场白是这样的‘老师,我有个问题想问一下,问题是这样的****,我主要是这个地方***看不太懂,我在网上查了一些资料,大概有****、****、****这么几种答案,我的理解是这样的****,不知道对不对,或者你有没有更好的答案和想法?”

(4)在线交流要有始有终。如果老师恰好在线,不管问题有没有得到完美解决,对话过程都应该有个简单的结束语,例如“好的老师”、“嗯,多谢老师,我明白了”、“好的,我再理解一下,要是还不明白就再来麻烦你”。

(5)如果是当面问老师问题的话,不用太拘束,但是要有礼貌。礼貌这个词涵盖的内容很多,不好一一列举。还是举个例子吧,大概7、8年前,有个学生经常来教研室问我问题,每隔几天就会来一次。每次来的时候我都会让他把旁边那个老师的椅子拉过来坐下问问题,但是他走的时候从来都不记得把椅子放回去。过了3、4次之后,他有一次再来的时候没用我说,他自己就把旁边的椅子拉过来坐下了,但是走的时候还是不记得把椅子放回去。我觉得他这样应该属于不礼貌,于是就给他讲了一下,过了好几年他有一次在QQ上跟我说当时幸亏我教育了他,工作之后才知道这些的重要性。


最后,还是介绍个Python知识吧,一个新的矩阵乘法运算符@,Python 3.5及更新版本支持,Python本身并没有提供矩阵类型,这个运算符需要配合扩展库numpy中的矩阵来使用。

>>> import numpy    #numpy是用于科学计算的Python扩展库
>>> x = numpy.ones(3)    #ones()函数用于生成全1矩阵,参数表示矩阵大小
>>> m = numpy.eye(3)*3    #eye()函数用于生成单位矩阵
>>> m[0,2] = 5   #设置矩阵指定位置上元素的值
>>> m[2, 0] =3
>>> x @ m     #矩阵相乘
array([ 6.,  3.,  8.])