程序修行从“拔刀术”到“万剑诀”

程序修行路上走了一段时间,终于成为了高级程序员,然后就该碰到瓶颈了。近来就有高级程序员和我聊起这个瓶颈问题,这正是《两种增长类型》这篇文章中提到的「对数增长」的瓶颈期。

在这个对数缓慢增长的瓶颈期,我也曾困扰许久。在摸索尝试了一段时间后,慢慢走出下面这样一条路径,下面我想用点形象的类比来说明。

拔刀斩

拔刀术来自日本古武道,其核心思想便是一击必杀,利用瞬间高速的拔刀攻击对敌人造成出其不意的打击。讲究的是快,也即速度和锋利度。

武士不断修行拔刀术,力求一击杀敌,而程序员学习和练习编程的过程也是类似的。最终,你的编程技到达了一个什么样的程度,就是看它的锋利度。面临一个程序问题能否一刀见血,一击必杀。

刚入门的程序员上线发布碰到了一个问题,抓耳挠腮、冥思苦想、加班加点终不得解。于是跑来向你这个高级程序员请教,此时时钟指向了凌晨一点。你放下手中刚泡好正准备吃的方便面,一支燃烧着的半截烟头挂在你的指尖。你犹豫了一下:是猛抽两口还是灭掉烟头去处理这个紧急问题?最终你终究不舍的把半截烟头小心的放在方便面盒边沿,再用塑料的方便叉把面盖和烟头一起固定住。

然后,你挽起了袖子走到这个年轻程序员的电脑前,迅速扫了几眼报错的错误日志,再调出你心爱的 vi 编辑器,噼里啪啦的改动了几行代码,保存、关闭、再重新构建、发布。电脑黑底白字的界面不停的滚动着,你已站起身向散发着两种味道的方便面走去,并回头轻轻对年轻程序员说了声:可以了。

这就是你向年轻程序员展示的你的拔刀术,问题一斩而绝。好吧,这是一种诡异的优雅,似乎任何问题对于电影里的程序员,在电脑前噼里啪啦敲上几行代码都能解决。现实中大部分时候都比看上去更困难一些,真实世界的拔刀术和剑心(动漫《浪客剑心》主角)的「天翔龙闪」相比,终归显得笨拙许多。

在我们追求「天翔龙闪」的境界时,看上去并不远,却越走越慢了,似乎永远也走不到,然后我们知道这就是进入了瓶颈区。

御剑术

这个招数的类比来自好多年前(初中)玩过的一个电脑游戏——《仙剑奇侠传》。如果过去面临问题你需要拔刀解决,那这里的刀就是你的知识、技能和经验。那御剑术里的剑又是什么?

在一篇关于高级程序员的文章中,提出了一个组合三角的观点,先看下面这张图:

从编程入门到成为高级程序员,你需要得到的帮助和指导越来越少,而你能提供的帮助和指导应该越来越多。所以前面那个场景中,作为高级程序员的你更理想的做法是去指导年轻程序员如何解决问题的思路,而不是自己拔刀,唰唰两下搞定。

网友评论