程序员“好为人师”有错吗?
我很乐于将自己的想法见解分享给他人,却被他人冠上“好为人师”的名头,这不是一个好的形容词,意为喜欢当别人的教师。常常得到这个词的人会被别人以为不谦虚,自以为是,爱摆老资格。出自《孟子·离娄上》。
—— 以上释义摘自百度百科
但是今天,笔者将揭开这个词的另一层含义,并给大家分享一个学习方法,也是笔者常常使用屡试不爽的学习方式。
一、理查德弗曼学习法
相信不少人听说过这个学习方法,没有听说过也没关系,以下是理查德弗曼学习法的说明:
理查德弗曼学习法
通常网络上将这个学习法拆分为4步(也有人将其拆分为3步)
- 选择一个你想要理解的知识,可以是任何行业的任何理论知识
- 设想一下,你要向别人传授这个知识(也可以是一个苹果、梨或者任何一个你臆想出来的人物),学习这个知识后尝试去给他/她/它讲解
- 如果过程中出现了问题,就重新回顾这个知识,重复上一步
- 如果你觉得能将这个知识传授给别人的时候,就尝试让你的讲解越来越简单易懂
这是不是效率最高的学习方式笔者不得而知,但是这是笔者个人认为最容易搞懂一个知识的方式。
引用爱因斯坦的一句名言:“如果你不能简单地说清楚,那说明你还没有完全明白”
向大家说明了这么多,接下来就让我们回归到“好为人师”的这个话题——“对于程序员来说,好为人师有错吗?如何优雅的好为人师?”
二、好为人师的我
笔者坦言,我自身就是一个“好为人师”的人,我总是迫不及待将自己获取到的知识通过某种形式分享出去,即使有的知识在一段时日后被证明是片面的甚至是错误的。但是我通过这个方式也收获颇丰。
当我下定决心系统性的去学习一门技艺时(不光是编程艺术,也可能是尝试一道新的菜品),我总是首先想好这门技艺的“出路”。比如我将要学习一门新的技术的时候,我首先会想好用这项技术做一个什么东西或是传授给某人,或者我会将这门技术整理成为一个MarkDown文档,正如各位看官看到的这篇文章一样;亦或是我将要尝试一门新菜的时候,我也会在周末提前邀约好朋友,让他们过来共享“美食”。
当我在某一天闲暇之余刷视频发现我之前用的学习方法叫做“理查德弗曼学习法”时,我尝试用“理查德弗曼学习法”去解释“理查德弗曼学习法”给大家。
接下来,我们就该进行“理查德弗曼学习法”的第4步了——简化“理查德弗曼学习法”
用一句话来说明“理查德弗曼学习法”就是尽可能用一句话来说明一个知识
对于难以表述的知识可以采用比喻,类比,类推的方式去让小白更容易明白
比如在给一个企业家描述什么是微服务,就可以采用企业人员组织架构的形式,讲述一个小公司(单体应用)如何发展成为一个中大型企业(分布式应用),人们组织分工越来越明确,这时需要一个通信软件或是通信机制,保障在细分业务后还能保证高效的通讯,企业用的是“钉钉”,而微服务里称之为微服务网关或是RPC;还有企业的抗风险能力,一个部门离职了几个核心成员如何保障整个公司正常运转下去,这就是分布式系统中的A(Availability 高可用)云云。
大家不要忽视这个能力,保证跨领域的沟通能力往往可能比你自身学习的知识更为重要。
这也是“理查德弗曼学习法”能带给你的另一项好处——跨领域的思考能力,这个在工作和以后可能的创业中都是及其重要的能力。
三、找好你的倾述对象
若是把你放在无人岛上一个月、两个月甚至一年,你逃离那个环境回到人类社会后最想做的是什么?
我想除了饱餐一顿和洗个热水澡以外,就是随便找个人去倾述。没有一个正常人会拒绝有效沟通,而有效沟通有很多种,把你学习的知识与他人分享,我认为也是一种有效沟通——因为沟通分两方面,“讲述”和“聆听”,在你自身完成一次“讲述”的同时,你巩固了自己的知识见解,而别人同时也收获了知识。
学习氛围好的学校和企业都会鼓励同学或同事之间的交流(当然是学习和工作上的,而不是一些花边新闻),这正是这种平等的,互相做老师的交流会让我们的知识和技能更加的稳定和深刻。
但是你一定要寻找到一个良好的“倾述对象”,这个倾述对象一定要对你讲述的知识充满兴趣(至少不反感),程序猿千万不要给你的女朋友讲类与对象,除非她也是个程序媛。如若没有,自己可以幻象一个,也可以学习完成后站在镜子前给自己演讲一番,这样也能树立起自己的自信。不善言谈的你也可以像我一样,用整理笔记的方式或者写一篇博客,把自己学到的东西大胆分享出来,不要怕被嘲笑,因为知道得越多的人越不会嘲笑你,因为“知道的越多,不知道的越多”。
所以作为一个程序员,“好为人师”是一项基本素质,至少笔者在面试或者在和人交谈技术的时候,人们眼中的“大神”往往不善言谈,但是一聊起技术就会滔滔不绝、眉飞色舞。也许他们也不知道自己用的是何种学习方法,但是他们在潜移默化中就渐渐习得了这种方法,这源于他们对技术的热忱和对未知的大胆探索。