就“编程像什么”这个问题,我思考了很久了,可以说每隔一段时间都会有新的想法,但始终没有一个令自己满意的结论。此篇博客尝试将自己思考的一些内容都总结出来。
1.武侠
上大学的时候,在图书馆翻到一本书叫《编程高手箴言》,这本书的作者同时也是播放器“超级解霸”的作者,梁肇新。算是老一辈的大神程序员,稍微大一点的人应该知道这款播放软件,当时中国盗版光盘盛行,但播放盗版vcd,dvd电影会很卡,正是超级解霸这种本土软件,用了一个“跳跃的算法”,尝试在卡的视频上进行“跳帧”,满足了当时老百姓用电脑看盗版盘的需求。这段故事在这本书里也有介绍。梁肇新在书的开篇,用“手中无剑,心中有剑, 手中无剑,心中也无剑”等几个阶段,来形容编程的几个阶段,现在看来是有点中二,但是当年看到这段文字的时候,确实心中有些激动,脑海中浮现出一个通过不断练习,让自己水平越来越高的一个程序员的形象。或者说不是一个程序员,更像是一个功夫世界里的侠客。
虽然我是90后,但我其实比较关注老一辈程序员的。我在学生时代,就特别喜欢听他们讲过去编程的故事,写汇编程序,在dos上开发程序,精通MSDN。当年有本叫《疯狂的程序员》的小说,是一个80后程序员将自己真实经历改编而成的。可以看到他们当时的编程环境差,日子艰苦,一本技术书翻到烂,但是又觉得很快乐。从他们的故事里,你会发现一种特别的武侠情节,也许金庸小说是他们年少时期的快乐源泉。这是一个简单直白的想法,也是许多程序员的想法,做好技术。通过练习变得更强,在这件事上,古今中外应该是统一的吧,比如在小时候看的动画片七龙珠里,甚至出现了“精神时光屋”这种东西,找一个异次元空间花大量时间练习,国外传过来这几年很火的10000小时定律也是这个思路。想要变得更强么?练习吧。
但是不仅限于变得更强,学出境界,武侠情节还有另一层意思是武侠与人世间的是是非非,与世无争,所以类似侠客,还有一个词叫工匠,这个词同样描绘了一个苦心修炼技术,与世无争,牛逼又低调的人。貌似日本尤其吹嘘这种工匠精神,做一件事,把它做到极致。虽然中国也有很多的极致的工匠,比如玉雕,木雕啥的,但没有像日本吹的那么邪乎,动不动这个仙人那个仙人的。