一名“山寨版”电力工程师成长的故事

随着点滴零碎知识点的积累,我们更应该顺势开始构建自己的知识体系。体系化学习策略可以帮助我们将零碎的知识网络化,相对于传统学习,几乎是碾压式的存在。

在高中求学时,我的数学老师是北师大高材生,也是校级优秀教师,体系化学习策略就是老师谆谆教导的,对我后来的学习工作帮助颇大。任何知识学习过程中一开始都容易呈现离散特性,如这段时间学习三角函数,过一段时间学习解析几何,当好不容易学完解析几何,三角函数已经忘的差不多了,导致很多人的学习生涯就是在不断的学与忘之间反复震荡。

如何克服这个难题呢?体系化学习策略要求学习的时候需要持续总结反思,新学习到的知识需要尽可能的和原有知识关联起来,或者说,要用原有的知识体系去碰撞溶解新知识。如三角函数中有很多复杂的公式推理,其中很多是可以用解析函数去验证或加深理解的,更重要得是这个过程会帮助大家在抽象的数和直观的形之间建立一种连接关系。我记忆中这方面最经典的例子是证明一元三次方程一定有一个实数解了。大家都知道一元二次方程可能有一个解、两个解,或者干脆没解(限实数域内),但为啥到了一元三次方程就转性了呢?因为一元三次方程在解析几何中对应的曲线总是一头趋向正无穷大,一头趋向负无穷大,此时,一定有一个实数解不是很直观的结论吗!
一名“山寨版”电力工程师成长的故事
我学的是计算机专业,但很意外的是一朋友竟然邀请我去做电力方面的咨询。我个人猜测,可能是他了解到我曾在没有电力专业人员的协助下,单独做出一款电力系统产品的缘故吧!实际上,这背后是我的一条颇为坎坷的电力系统学习之路,或许也能让大家理解没有体系支撑的心酸。

可能一些朋友会好奇,你一个学计算机的,老老实实的写软件就好,为何会去学习电力系统呢?可关键问题是,你会好奇,我也会好奇啊!我工作初期是做微机保护产品研发的,下面这幅图就是早期我眼中的微机保护产品知识结构:

一名“山寨版”电力工程师成长的故事
我早期参与电力系统微机保护装置研发,当时整个公司分为三个团队:软件,硬件和保护。一开始,我被分配在软件组,跟着领导写嵌入式软件规约程序,但没多久我就对开始对底层数据模型感兴趣了,顺手读了源代码后,又开始对更底层的驱动程序感兴趣了。

驱动程序部分我碰到一个小门槛。当时产品大部分驱动都已成型,我虽然细细阅读了代码,但总还是有一种朦朦胧胧的感觉。一次机缘巧合的机会,我需要用一款很新的芯片做产品预演(2005年,摩托罗达公司在国内推荐他们最新的V2核芯片),需要尽快的完成驱动程序编写。我英语很糟糕,面对上千页的英文资料,我真的有点傻眼。但这款芯片太新了,网络上也没有太多有价值的资料,仅剩下官方文档华山一条路了。

记得那是一段难熬的日子,刚开始读一小段就要查好多次单词,但后来不知为何,竟然也可以一目十行,感觉自己不是在读英文,而是在查资料。三个月后,这款芯片的驱动都被我搞定了,早期朦朦胧胧的感觉也自然烟消云散了。而且,调试芯片驱动带给我一个额外收获,不再害怕阅读英文资料了(仅限IT领域,如bus在我眼中的第一词义是总线,而非公共汽车),我经常闲逛github,stack overflow等网站,也喜欢去关注IT前沿的发展趋势。

至此,软件项目组就没啥我好奇的东西了,反而因为我有较强的PC软件编程能力,甚至可以开始多领域结合做一些创新工作了,如脚本、GUI模块等。又因为调试驱动的原因,我开始慢慢的对硬件部分感兴趣。以前调试驱动时,我仅会阅读数字芯片的资料,现在顺势读一读印制板上的其他芯片资料,就可以开始理解完整硬件原理图了。

阅读硬件原理图,需要使用protel软件,又因为使用protel软件,我顺势折腾了一段时间pcb板绘制。我一同事绘制的PCB板上布置着很多块网格填充区,随便修改一根线就需要重新刷新一遍,很烦恼。我当时编写了一套宏脚本可帮助他完成自动刷新,记得很有成就感。

上述这些学习经历基本没有碰到太大的波折,甚至感觉自己都没费太大力气,一路顺风顺水得,但辛酸的旅程马上开始了。

◇◇◇

我一要好的同事,大学学习的是电力系统专业,属于保护组。一次他兴奋得给我演示他用matlab仿真的东西,他告诉我他克服了一个很关键的算法。当时,我只能共享他的情绪,至于他做了啥,嗯,一个字也看不懂。没多久后,该同事的专利发表了,而且获得了公司好大一笔资金奖励。

羡慕妒忌恨,我感觉好像没几行matlab程序啊,真可谓字字千金,再看看自己写的大段大段的代码,瞬间心理不平衡起来。而且,如果我能理解基本保护原理,就可以完整的理解保护产品了。从此,我开始电力系统学习之旅。

在我眼中,微机保护中电力知识主要有三部分:微机保护原理、采样算法和matlab仿真。同事的发明专利是一种新的采样算法,我找来了同事桌上由我们学校杨奇逊院士编写的一本书开始尝试。

一名“山寨版”电力工程师成长的故事
这是一本讲解微机保护基本算法的书籍,第一章很容易,但第二章立马给我当头一棒,满篇的数学公式,不知道都是些什么东东。看不懂,肯定是有一些基础知识我不具备,我分析这些公式,发现大多有积分和虚数符号,如下图所示。

一名“山寨版”电力工程师成长的故事
记得大学时自己曾学过微积分和复变函数,虽然都还给老师了,但我天真的认为只要回去快速的复习一下,就能搞懂上面的公式啥意思了。在赚钱的欲望驱动之下,我翻开了尘封已久的大学微积分和复变函数教材。

不知经历了几劫几难,我好不容易复习完了微积分和复变函数,甚至还记录了一本厚厚的学习笔记,然而上面的公式我依然不理解,更郁闷的是,我发现并非所有基于复数的积分都是复平面的积分,复变函数白复习了,我的想当然破产了。更苦恼的是,因为回忆复变函数,让我对复数的本质产生了很大兴趣,这个现实世界中不存在的虚无的东西,偏偏在很多实际问题中都有重要的应用,翻了很多书籍后愈发迷糊了,平添一段烦恼。

一条路走不通后,我开始尝试另外一条路,研究微机保护原理。继续从买书开始,我开始阅读该领域最经典的一本书:《电力系统继电保护原理》。

一名“山寨版”电力工程师成长的故事
很遗憾,这本书我依然读不懂,很多奇怪的符号,很多名词仅拆成字我认识,组成词就不知道说啥了。没法子,一个个的概念通过百度搜索,我发现电力系统用的设备种类好多啊,一点都不好玩。还有很多公式也不理解,我记得大学时电路一课中好似讲过一些,但大学教材已经被我当废纸卖掉了(大学教材我仅保留了数学书),只好额外再买一本。我找来了当前最流行的大学电路教材,如下:
一名“山寨版”电力工程师成长的故事
“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”,大家有过那种卡壳问题被一招突破后爽快的感觉吗?这本全新的电路书依次讲解了一阶和二阶电路在时域及频域的分析过程,当读完这些内容后,真正的理解频域概念后,原先学习采样算法的那些复杂公式瞬间消融了。

从此,我对电力系统知识的学习好似进入了快车道,竟然仅凭着教科书上的内容做出了电力系统变压器保护和低周减载自动设备,下图是我做得频率突变时采样波形matlab仿真图:

一名“山寨版”电力工程师成长的故事

自信心爆棚的直接后果就是很容易被打脸,当我开始以“山寨版”电力专家的身份自居时,几次现场事故分析经历就狠狠的打了我的脸。电力系统事故分析时,不仅需要分析故障时刻各种电气量特征,还需要熟悉各种电气设备的数学模型,甚至还需要了解各种故障或非稳态运行的特征差异等。没有深厚的电力系统稳暂态分析能力,我的那些所谓的关于电力系统的零零碎碎的知识压根都是空中楼阁。

◇◇◇

两段类似的学习旅程,一段顺风顺水,一段却颇为坎坷心酸。这背后到底隐藏着什么原因呢?肯定不能用难易枯燥等表面原因来回答,实际上IT领域很多算法也蛮复杂枯燥的,也经常用到复杂的数学过程。

细细思量,我认为关键原因是熟悉度。一开始的软硬件学习过程中,虽然也是在学习新知识,但总能和我原有知识体系关联上,如很多优秀的算法会使用各种B树,虽然具体细节都忘光了,但因为我大学时曾学习过数据结构,知道其大致工作原理和要解决的问题,因此就容易克服了。但与此相对应,在学习电力系统时,一看到各种电力模型分析就头疼,虽然知道了很多表面概念,但总感觉朦朦胧胧的缺少根基,或许这些根基就是电磁学、电力系统分析等电力系统基础课程吧。

这就是有体系和没体系学习的差别,一边可以基于复利持续积累,另一边却像猴子摘棒子般一边捡一边丢。在大学阶段学习的主要课程,如数据结构、计算机组成及计算机体系结构、操作系统、网络、编译原理等课程,我们会感觉枯燥且不实用,不如自己去学个python或java写个小程序有价值,但实际上,正是这些枯燥的课程,才能成为体系的支撑点。

如果你是一名大学生,又幸运的看到了该文,我强烈建议你认真对待大学的基础课程,工作后python好学,但数据结构可不是那么容易补上来的。而且,在工作实践中,我们发现培训机构的学员虽然开始上手快,但远不如正规学校的毕业生后劲足,导致大家都不太敢招培训机构的学员了。

从此,我开始果断止损,不再花太多精力学习电力系统了,因为付出与回报不成正比。当然,任何经历都是有价值的,对我来说其最大的价值就是帮我构建了一个完整的产品观,而且也容易同电力专家交流了。