在成长的路上,回首望去是否感觉是一个刀剑如梦的过程?
杀人术
你狠狠的敲下键盘的回车键,终于看见程序按预期输出了正确结果,长长吐了一口气。点上一支烟,环顾四周,独自一人,又是一个夜深人静的晚上。在一种搞定 bug 的满足和空旷寂寥的忧伤中,你不禁迷惘。记不清这是你修复的第多少个 bug 了,甚至记不清这是你参与开发和维护的第几个系统了。就像一个剑客在这个江湖上行走多年,已记不清死在自己剑下人有多少,拔剑收剑,有人倒下,你继续行走,如今「杀人术」已成。
对一个程序员何谓「杀人术」?你选择了一门语言开始学习编程,像一个刚入江湖的人选了学剑或刀,也可能是飞刀。再弄了几本江湖宝典,假想了一个项目开始练习,熟悉基本的使用套路。然后走入江湖,拜入门派,腥风血雨,数年后剑鸣空灵、刀啸云天,飞刀无影,「杀人术」终成。这就是一个程序员的成长之路,你选了门武器,学了基本招式,然后进入江湖不停的在厮杀中成长。终于你能搞定各种各样的系统问题,了解不同系统的设计模式。每过数月或一年半载,你总发现过去代码写的不好,再重构上一遍,改进你的招式。数年后,终成江湖高手,汝今剑术已成,然拔剑四顾,却心下茫然。
一个程序员修成「杀人术」大概需要多久?按照一万小时理论,如果你在某一领域每天持续学习和实践十小时,最快也要三年。但三年是没算各种可能的中断的(生病、假期等等),所以但绝大部份人可能需要五年。五年成术已算理想,实际上我自身用了更长的时间,走了更多些弯路。从 Basic 程序入门,后来 VB 再到 Delphi 然后 C 最后 Java,Java 也经历了几代变迁,但还算一脉相承。技术的发展,时代的变迁会让「杀人术」也在不停的演化,刚觉剑术小成,却发现已进入枪炮时代,不免茫然。
升维学习
在我修行成术的过程中出现了好多新技术,当时我总想忙完这阵就抽空去学习了解下。但一过几年一直没能抽出空去看,如今再去看时发现好些当年的新技术已不需再看了。五年成术是立足于一点,成立身之本,而下一阶段不该是寻找更多的点,而是由点及线、由线成网、由网化形。围绕一个点去划线,由一组线结成网,最后由网化成形,化形表达一种更高级的知识和技能运用形态,比一堆离散的知识技能点有价值的多。很多修真小说中一些生物和同境界的人相比要弱,直到这些生物完成了化形为人的升级,就会变的比同境界的人更强。小说里的化形有个隐含意思就是让生物具备了人的智慧,可以更智慧的运用它们的能力,它们的实力就变得比人更强大(原因是身体属性更强)。我这里借用了这个类似的隐喻,表达更智慧的运用知识技能。
《三体》这本小说近些年大热,所以大家可能听说过这里面发明的一个词「降维攻击」,在互联网圈这个词用的很多。而关于学习的由点及线、由线成网、由网化形,其实是一种「升维学习」之道。这个过程几乎没有终点,是一个持续学习不断完善的过程,最终结多大的网,成什么样的形,全看个人修为。一条线至少要两个点才能画出,那么第二个点的选择就要看能不能和第一个点连的起来了,而这比在一个维度上去预测和乱踩点要有效的多。
除了在修真小说中有隐隐的比喻,其实这套道理在金庸设计的武学体系中更觉明显。要不就以大家最熟悉的《射雕》三部曲为例,我们来看下。郭靖一开始师从江南七怪,后来又跟全真七子中的几位学过功夫。这在功夫里就是两个点,但没看出这两个点有何联系,最后郭靖江湖成名,终成一代高手靠的是什么?降龙十八掌。为什么有十八掌这么多,从小说里的描述表达了一个体系的意思,一个体系结网成形,最后的形态命名为降龙十八掌。其实郭靖还学了一个另一个更有体系,形态更牛x的武功《九阴真经》。除了郭靖《九阴真经》很多人看过学过,有高手如:黄药师、王重阳等,也有一般人如:梅超风。高手们本身有自身的武功体系和形态,所以看了《九阴真经》也仅仅是从中领悟,融入自己的体系中甚至因此创造出新的武功形态。而梅超风之流则仅仅是学点其中招式(九阴白骨爪),和之前自身所学其实没有太多关联,武功境界终有限。
理论与实践
关于升维学习结网化形之道,到底是应该更宽泛的看书学习建立理论边界,还是在实战中领悟提升。关于这点我一直以来思考的结论是建立两者的平衡,走两个极端都不合适,五年成术的过程更多偏实战。那么后面的阶段可能需要更偏理论,提升抽象高度,因为现实会制约你能参与实战的经历,导致有些东西不去抽象的思考是无法获得的。
历史上关于理论和实战有很多争论,还留下了一些著名的成语。理论派的负面历史代表人物:赵括,有一个关于他的成语,纸上谈兵。他谈起军事理论一套一套的,一上战场真打起来就葬送了数十万将士的性命,所以大家都会以赵括为例来批评没有实战经验支撑的理论靠不住。但其实还有另一个更著名的历史人物,也是理论派出身,在真正拜将之前也没什么实战经验。关于他的成语,如:背水一战,这是他抽象的思考过很久的战法,但也是第一次上战场使用,一战而历史留名。最终关于韩信,历史上说他率军出陈仓、定三秦、擒魏、破代、灭赵、降燕、伐齐,直至垓下全歼楚军,无一败绩,天下莫敢与之相争。王侯将相韩信一人全任,一时国士无双,属于中国古代谋战派代表人物。韩信的对手项羽在历史上就是一个实战派代表人物,个人「杀人术」比韩信高出怕不止一个等级。但其实他和韩信根本不在一个维度上,韩信在最后面对项羽的前,已通过大量大小战斗去不断实证和完善了他的谋战理论。垓下之战项羽中十面埋伏,导致其乌江自刎,更像是一场高维打低维的降维攻击啊。所以关于理论和实战的关系,从这个历史故事可以有所体会,结合自身情况来选择合适的平衡。
回首自己的成长之路,通常每五年就会感觉碰到一个成长的瓶颈点。在传统 IT 行业的第一个五年后,感觉明显进入技术成长的瓶颈期,之后也算运气通过转换到互联网行业升级了到新的技术维度。又过了五年,站在十年后的一端,回望过去,刀剑相接,如梦似幻,我知道明天又将是一个升维后的新战场。