王国维在人间词话道出人生三境界
1
2
3
昨夜西风凋碧树。独上高楼,望尽天涯路。
衣带渐宽终不悔,为伊消得人憔悴。
众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。
在茫茫人海,红尘滚滚的俗世里沉浮,我们终将体会这三句话,不论以何种方式。而我以不才之心,思量了软件编程里的四种境界。 向金庸江湖致敬,我以天龙八部里的逍遥派的武功说明。金庸先生的逍遥派,参考了庄子的逍遥游。庄子的散文浪漫,充满了哲思。
1
2
3
4
5
6
7
8
北冥有鱼,其名为鲲。鲲之大,不知其几千里也。化而为鸟,其名为鹏。鹏之
背,不知其几千里也,怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。
南冥者,天池也。《齐谐》者,志怪者也。《谐》之言曰:“鹏之徙于南冥也,水
击三千里,抟扶摇而上者九万里,去以六月息者也。”野马也,尘埃也,生物之以
息相吹也。天之苍苍,其正色邪?其远而无所至极邪?其视下也,亦若是则已
矣。且夫水之积也不厚,则其负大舟也无力。覆杯水于坳堂之上,则芥为之舟;
置杯焉则胶,水浅而舟大也。风之积也不厚,则其负大翼也无力。故九万里,则
风斯在下矣,面后乃今培风;背负青天而莫之夭阏者,而后乃今将图南。
以第二人称的经历来谈软件学习。
学徒
作为一个对软件茫然无知的新人,面对铺天盖地的词汇,你既是新奇也是迷茫。《黑客帝国》三部曲勾起了你对软件的无限美好,互联网热潮让你心潮澎湃。你要么待在大学或者某个培训机构内,双眼盯着天花板发呆,老师讲得太难理解了。作为一个软件业的学徒,你开始了头悬梁锥刺股的学习。主要有前端和后台两个大方向,一个负责展示业务给客户看,一个负责真实的后台业务逻辑。你最终面临抉择,坚持下去成为大神或者面对恼人的舶来词放弃。
江湖是险恶的,你可能不会师出名门,也可能没有良师益友,你可能过着无处借力的日子。坚持还是放弃,这是个问题?
天山折梅手
网上有很多的IT网站,很多人写了自己的学习经验。他们学习了某个框架,它的语法、技巧,贴上了他们的代码。你怀着贪婪的心学习,掌握基础知识,比如HTTP/TCP/UDP网络基础理论,HTML/CSS/JS技巧,jquery的使用,EntityFramework的使用,Spring全家桶的使用技巧。Java、Python、C++、HTML、JS、C#,各种武功,各种招式,眼花缭乱。那么多的所谓大神发贴立山头,纷纷欲开宗立派,不过大多数都是蜻蜓点水,浮光掠影。
我称这个阶段为天山折梅手,新人面对山头林立的江湖无所适从,只能到处模仿,这个时候练的是外功,以招式为主。这个时候是打基础的时候,你可以加入一个镖局走镖养活自己,顺带发展人脉,锻炼你的技巧。
小无相功
经过一段时间的走镖,你的薪水不能养活自己。你对于市面上主流的框架,主流的思想使用上已经得心应手。镖局已经不能容纳你的思想,不能负担起你找侠女的渴求。
于是你加入了一个组织,一个门派或者小山寨。经过先前的磨炼,你已经有了能力,可以把别人的招式,经过自己的改良,变成适合自己的。你下山劫富济贫的时候已经游刃有余,各种武功灵活运用,还能加上自己的见解改良。内功有了基本的底子,开始思考武功的源头。
对于新出的语言或者框架,你怀着好奇的心学习,不过你发现,它们不过是在以前的武功上推陈出新,很快你就掌握了。而且你有了自己的点子,开始独自发明新的武功。融合你自己的见解,你的武功已经有了自己的特色,别人无法模仿你。
不过江湖上你这样的人很多,熟练运用框架,基础功扎实,内功已有底子。我称这个阶段为小无相功,就是具备了抽象的能力,新的框架和语言你很快就能模仿使用,因为大多是类似的。比如Struts->WebWork->Spring MVC.但是内功太差,遇见真正的高手只能被秒杀。你并不了解各个框架、语言的内部工作机制,你只能优秀的模仿,灵活的运用到业务逻辑中。
北冥有鱼
经过不知多少年的卧薪尝胆,你的内功越发扎实。学习了数不尽的招式、框架,你已经海纳百川,兼收并蓄。终于有一天,你觉悟了。一叶一菩提,一花一世界。新出的语言和框架在已经入不了你法眼,它们都不过是推陈出新,你能很快通过阅读源码的 方式告诉别人,它们到底加了什么新功能。
面对江湖上一帮杂鱼,你谈笑风生间,把他们灰飞烟灭。你已经到了架构师的级别,能把各个框架、语言的优缺点了然于胸,取长补短创造出新的武功。
这个阶段我称之为北冥有鱼 ,取意逍遥派的北冥神功,能吸收别人的功力为己用。新手见了你只能拱手称你为大师,你已具备了开宗立派的能力。能自己领悟天地法则独创一门毁天灭地的武功,但天外有天人外有人,你离终极的真相始终有一道鸿沟。
逍遥
1
若夫乘天地之正,而御六气之辩,以游无穷者,彼且恶乎待哉?
你自废武功,忘却前尘往事。把学过的所有框架、语言统统忘却,只保留其中的精华。你已没有了北冥有鱼的气势,你就像一个新的学徒。别人看不出你是一个高手,却把你当成农夫。
你挥挥手,别人感到春风拂面。别人因遇见你功力大进,双手合十称你为大师。你浮光掠影,却把别人的攻击化为无形。领悟了道,领悟了一生二,二生三,三生万物。
作为逍遥散人,你四处漂泊,合乎天地,造福四方。
总结
以逍遥派的武功分了四个境界,天山折梅手->小无相功->北冥有鱼->逍遥。目前的软件开发人员大多数人停留在第一、第二境界。我们编程不仅要学会用,还得思考为什么。