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

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

拔刀斩

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

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

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

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

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

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

御剑术

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

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

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

对,很多高级程序员都会以“等把他教会,我自己都搞定了”为由,忍不住自己拔刀。理解掌握并应用好一种知识或技巧是你的「拔刀术」,但分享传递并教授这种知识或技巧才是「御剑术」,而剑就是你面前的年轻程序员。

曾经多少次面对年轻程序员交付的结果,都有一种懊恼的心情,怀疑当初是不是该自己拔刀?突然就会理解了驾校老司机为何总是满腔怒火的吼着:让你松点离合,只松一点儿就好...但当初我一开始不是松少了,就是熄火了。

「御剑术」是你修行「万剑诀」的必经之路,恩,游戏里也是这么设定的。

万剑诀

所有的程序员都是从修行「拔刀术」开始,但只有极少数人最终走到了剑心「天翔龙闪」的境界,所有未能突破的我们都进入了对数慢增长区间。我们曾经不断学习和练习终于练到拔刀由心,收发自如,终成习惯,但为了突破这个瓶颈区却正是需要打破这个习惯。

「万剑诀」正如其名,御万剑而破敌。回到现实中,这是一项高杠杆率的技能。而高杠杆率的活动包括:

  • 一个人可以同时影响很多人。
  • 一个人可以对别人产生长远的影响。
  • 一个人所提供的技术、知识或信息,会对一群人的工作造成影响。

这就是「万剑诀」的核心要诀。应用到程序员修行之路上,修行拔刀术有成的程序员如若也具备了技术领导力,他可能就逐步走上了架构师之路。而如若他也喜欢分享、交流和传授,那么同时也具备了技术布道师的特性。

「万剑诀」和「御剑术」的共通之处在于都以人为剑,观察、揣摩每把剑的特性,先养剑再御剑最后以诀唤之。若「拔刀术」是自己实现的能力,那「御剑术」和「万剑诀」都是借助他人使之实现的自信和能力,只是后者相比而言规模更大,杠杆率更高。「万剑诀」的重心在追求问题解决的覆盖面,而面临每个问题就需要依赖每把剑的锋利度了。

另外「御」之一字更着重了一层控制的含义,而「诀」之一字在于影响多于操控,这里面的关键点就是剑本身的成熟度。不够成熟的剑只能「御」之,足够成熟的剑方能「诀」之。

...

走上「万剑诀」之路后,还能再领悟「天翔龙闪」的奥义么?


写点文字,画点画儿。
微信公众号「瞬息之间」,遇见了不妨就关注看看。

程序修行从“拔刀术”到“万剑诀”相关推荐

  1. 程序员进阶攻略-笔记-051~061(完)

    技术债务,有意或无意的选择      代码既是资产也是债务          技术债务:在程序设计与开发过程中,有意或无意做出的错误或不理想的技术决策,由此带来的后果,逐步累积,就像债务一样.    ...

  2. 《程序员进阶攻略》学习笔记

    整个专栏分七讲,下面总结作者感触颇深的内容. 一.征途:启程之初 1.有时选择对了合适的路,比光顾着赶路要重要得多. 2.技术的选择,都是赚取长期回报,短期的波动放在长期来看终将被抵消掉,成为时代的一 ...

  3. 漫谈程序员系列:怎样成为技术达人

    作为程序员,身边总是有牛逼的前辈.后辈或者同辈.牛逼的人总是让人羡慕.比如自己苦搞一天的 BUG ,头发快抓掉完了,人家扫上两眼,改一行代码,问题就解决了:比如自己干了十年开发,薪水还不到 10K , ...

  4. 漫谈程序员系列 怎样成为技术达人

    作为程序员,身边总是有牛逼的前辈.后辈或者同辈.牛逼的人总是让人羡慕.比如自己苦搞一天的 BUG ,头发快抓掉完了,人家扫上两眼,改一行代码,问题就解决了:比如自己干了十年开发,薪水还不到 10K , ...

  5. 如何成为一个牛逼的程序员

    一个快乐的人,不是因为他拥有的多,而是因为他计较的少:心态比勤劳更重要,用心做好事. 作为程序员,身边总是有牛逼的前辈.后辈或者同辈.牛逼的人总是让人羡慕.比如自己苦搞一天的 BUG ,头发快抓掉完了 ...

  6. 【转】如何成为一个牛逼的程序员

    来自:http://www.cnblogs.com/preacher/p/4205277.html   说的很有道理!!! 上边这个网站不是原文网站,,,原文网站地址:http://blog.csdn ...

  7. 漫谈程序员:怎样成为技术达人

    作为程序员,身边总是有牛逼的前辈.后辈或者同辈.牛逼的人总是让人羡慕.比如自己苦搞一天的 BUG ,头发快抓掉完了,人家扫上两眼,改一行代码,问题就解决了:比如自己干了十年开发,薪水还不到 10K , ...

  8. u盘安装linux系统自动关机,将u盘拔出后电脑自动关机怎么解决【解决方法】

    u盘已不仅仅局限在拷贝文件的功能上了,我们可以使用u盘做启动盘来装系统.电脑开机锁等等,但在使用过程中也会出现问题,如u盘文件丢失.u盘中毒.u盘启动缓慢等等,而今天我们和大家聊的是将 u盘拔出 电脑 ...

  9. 我的世界服务器拔刀修复,我的世界拔刀剑怎么修复?minecraft拔刀剑教程

    我的世界拔刀剑怎么修复?minecraft拔刀剑教程 魔剑[阎魔刀] 刀的名称 妖 名刀特有的属性,共有封,印,妖 有其中之一才有锻造价值*封:代表这把刀有锻造的价值印:出现SA(远程攻击技能).同时 ...

最新文章

  1. linux的yum update命令
  2. 探秘Hadoop生态12:分布式日志收集系统Flume
  3. 数学公式难懂?动态图片来解答,孩子看一遍秒懂
  4. 内存中的堆和栈(heap stack)
  5. 在chinapub买的书还没有到?
  6. 怎么把图片压缩到30K以下?如何用手机快速压缩图片?
  7. 计算机同步时间解析错误,Windows时间同步时出错该怎么解决?
  8. 总结一些pr的快捷键,让你的剪辑速度翻倍~
  9. GitHub 上 10 个顶级开源项目,从基础到源码统统帮你搞定
  10. 数据库管理及常用语句
  11. amd显卡风扇调节_AMD Crimson驱动会烧毁显卡?其实是因为风扇锁定低转速了
  12. linux硬盘的两个分区合并_linux 多分区合并(lvm)实例
  13. iOS常用的第三方库
  14. ZN-61A网络型PLC可编程控制器实训装置
  15. idea配置Camunda Modeler
  16. 外贸老手告诉你:外贸实用工具
  17. Markdown教程--Markdown图片
  18. 知识经济时代,企业该如何进行知识管理?
  19. 未来生活进行时: 互联网”进化论”——达尔文与人工智能的故事?!
  20. winform 使用SplashScreen窗口

热门文章

  1. 苹果抛弃 OpenGL !
  2. 22考研初试成绩公布时间
  3. linux桌面图标不见_Ubuntu系统桌面任务栏和启动器全部消失解决方案
  4. linux显示点阵字体,使用文泉驿点阵字体解决Linux中文化问题
  5. 北京铁警的春运日记本:“手机、爷爷、救护车”
  6. 计算机原理随堂练答案,计算机原理随堂练习(第二章)
  7. App广告投放数据统计
  8. 基于快速傅里叶变换实现的狗声识别器(人工智能)
  9. 如何为戴尔灵越15 5559加装内存条和固态硬盘
  10. 6月书讯(上)| 浅夏读新书,与世间万物一起成长