编程三境界

原创
2018/09/26 20:38
阅读数 188

        古人喜欢把做一件事情的过程体验分成三个境界,清代国学大师王国维就把人生分为三个境界。

                第一境界:昨夜西风凋碧树,独上高楼望尽天涯路。

                第二境界:衣带渐宽终不悔,为伊消得人憔悴。

                第三境界:众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

        王国维把人生分为三境界,同样编程我们也可以分为三境界。

                第一境界:hello world。

                第二境界:ctrl+c,ctrl+v。

                第三境界:抛开代码的具体实现,重在程序实现的思想。

        在编程界的三境界中,你一定会遭遇这么一个过程,“看山像山,看水像水”。这个时候,也就是你刚开始写代码的时候,一切皆是hello world。某项技术或者软件,看着别人这么用,那就这么用。别人跟你说java是一门高级的面向对象编程语言。你就跟别人说,java是一门高级的面向对象编程语言。殊不知,你认为java是一门高级的面向对象编程语言时。你却不知道他同时具备面向过程编程的性质。在你脑海里你就不会认为java是一门面向过程的编程语言了。

        再接着你接触多了,你就会觉得,“看山不是山,看水不是水”。这个时候,你发现它即可以面向对象编程,又可以面向过程编程。那他到底还是不是面向对象编程的语言。当某一门技术没有系统的掌握,你就会觉得,这是一个很高级的东西,他很博大精深,不仅仅如此。这个时候你也就步入了第二境界了。

        当某一天你发现,面向对象编程的过程中,也是逃离不了具体对象之间的交互流程的。这个时候你才发觉,原来面向对象和面向过程是同时存在的。这就好比某一项技术你深入透彻的学习了之后,才发现原来是这么回事。这个时候你就会觉得:“看山还是山,看水还是水”。但这种看山还是山,看水还是水。其实是在学习某项技术过程中你个人的一种体会过程。便不是我内心中编程境界的体会,我个人认为:“编程只是众多职业里面的一种罢了,即便你达到了看山还是山,看水还是水的境界,也只能说明你已经掌握了这门技术而已。

        漫长的人生道路上,选择某个职业只是你谋生的一种手段而已。而无论你选择什么职业,也都会经历一个由简单到复杂,由容易掌握到越学越深,最后到了然于胸这么个过程。由简单到复杂比较顺其自然,而由越学越深到了然于胸是个艰难困苦的过程。很多人也会在这个过程中,被困难阻挡,能达到了然于胸彻底的掌握某一门知识的人少之又少。更有急功近利的人选择刻苦修炼或直接放弃。选择直接放弃和刻苦修炼都没有错,关键是看作出选择的人此时的心态。当经历到这个过程的时候,没有良好的心态是很难精进的。这也是古人为什么说上善若水,厚德载物。当你没有很好的心态的时候,做什么都会感到浮躁。心以收敛而细腻,没有足够细腻的心境,你如何步入一个更高的境界呢。

        所以,在职业中发现这门职业的美,是每一个职业发展过程中树立良好心态的关键。也只有良好的心态你才可能把你的职业,技术推向更高的层次。而我个人在编程中发现的美是,程序的设计和世界的组成。程序的设计艺术,正如人生的艺术一般。所以我把编程的境界分为以下三个境界:

            第一境界:编程之道,即万物之道。

            第二境界:万物之道,指引编程之道。

            第三境界:万物之道,皆无道。

         这第一境界,编程之道,即万物之道。我的理解,就是优秀的程序设计,就像世间万物的道理一样。一个程序该如何去设计,才能达到更稳定,更健壮。现实生活中的管理层,代码中的抽象类。编程中的缓存,生活中的大大小小容器(如:打水用的瓢,吃饭用的勺都是和编程中使用缓存是同一个道理)。要想编写出优秀的程序,必然要懂得发现生活中的事物之道。有句话叫做智慧源于生活就是这个道理。

        这第二境界,万物之道,指引编程之道。第一境界中我们说了,编程之道就像生活中的事物之道一样。我们发现了各种设计模式,和生活中的联系,这样不难想象出设计模式和各种优秀框架是怎么设计出来的了。那第二境界就是,万物之道,指引编程之道了。当你了解了万物之间具有想通性之后,你就能像设计各类开源框架的作者一样。能够通晓自然中的道理,编写(领悟)出一些更为合理的程序出来。

        这第三境界,万物之道,皆无道。这是一个比较高深的境界了,普通人能达到第一境界就够了。真正的大神,能达到第二境界也已经够了。那究竟什么样的人才能达到这第三境界呢?达到这个境界的人,编程和万物是想通的。那你是不是说你又回到第一境界了,编程之道即万物之道。其实不是的,达到这个境界的人。把程序的实现,如同剑法的招式都不是那么重要了。他们知道设计模式,而心中已经没有设计模式了。我们说任何一种设计模式,或者程序的实现方式必然会带来另外一方面存在的局限。这个境界的人,不仅仅能把各种实现方式用到恰到好处。还能扬长避短,主动创造各种设计模式的改进。使得他的实现方式,已经不再局限任何一个实现套路。甚至,能把编程与生活都化于无形。如同剑法中的手中无剑,心中无剑。而后,进入了无境之境了。这无境之境,就是我所说的第三境界,万物之道,皆无道。

        看到这里很多小伙伴,一定觉得我又在装逼了。其实不是我故弄玄虚,大道理人人都懂,小情绪却难于控制。这也说明不光光是我个人懂得这个大道理,也不是我要把自己的境界推向更高层次。而是修炼内心提升境界是一个持续不断的过程。他就像你内心里面长的草,你不时刻修剪,他就会生出很多杂念。这也是任何一件事第三境界都很难达到的原因,如果你选择放弃了,只能更好的说明换一件事,你也达不到那第三境界。因为第三境界不是某一天达到了就可以了,而是一种持续修行的心态。

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部