好几天没写博文了,最近LZ在研究如何编译和调试JAVA虚拟机的源码,如今已经小有收获,LZ已经可以成功的调试System.out.println("hello world!")这样的程序了,很有感觉吧。过几天LZ会将这部分内容阐述一下,不过在此之前,还有GC相关的最后一章。不过这最后一章其实已经没什么写的了,主要是参数的罗列以及参数的说明。
本文LZ和各位探讨一下程序猿的几个境界,不用说,最后一个境界就是LZ所向往的理想国度了。LZ个人觉得,自己应该属于第二重迈向第三重的阶段。
废话不多说,下面我们一起来看看吧。
程序猿第一重:抄
“抄”是程序猿的最低境界,处于这一境界的程序猿们,还只会复制粘贴。而且此处的复制粘贴,是全盘复制,而后针对需要修改的地方稍作修改已达到目的。
通常情况下,此境界的程序猿还不会思考在复制的过程中,所复制的内容是否全部都需要,能不能砍掉一部分,或是内容当中有没有坏味道的代码等等一系列问题。而且复制的内容一旦出现问题,处于“抄”这一境界的程序猿往往会束手无策,第一反应一定是“度娘”,倘若“度娘”也解决不了,那么小A、小B、小C等等可能就被你请来解决问题了。
你会经常因为一个空指针而花费一两个小时的时间,也会因为一个非法参数异常而苦恼。如果这些异常发生在你自己所写的代码当中还好,倘若是在第三方类库当中,此时的你或许会大有去年买了个表的心情。
程序猿第二重:改
当你在第一重徘徊一段时间,或许是一个月、半年、一年甚至N年(N>=1),大部分人都会轻松的进入“改”这一境界。
此时的你仍然只有复制粘贴的功能,只不过此时的你已经学会了挑剔自己所复制的代码。当你在准备复制代码而不得以去读代码的时候,你可能会说出以前从未说过的话,“这代码写的真是狗shi啊”。
于是,你会对你复制的代码挑挑拣拣,这删点,那改点,希望它最终可以符合你自己的爱好,并会不自觉的欣赏一会自己的小杰作。
而在这个时候,一旦出现什么问题,你的第一反应不再是“度娘”,而是会先自己判断一下可能是哪里出现了问题。不仅如此,或许还会有处于“抄”境界的程序猿不小心“抄”了你的代码,出现问题之后还会来请教你。大部分时候,你会很happy的去给别人解决问题。
程序猿第三重:悟
“悟”之境界就不如第二重那么容易进入了,或许会有一些程序猿,甚至在自己的编程生涯结束时,都没能进入这一境界。不过这其中大部分的原因是因为,他们还未碰触到这一重境界,就抛弃了编程转而投入了其它领域。有时候,这也许是一件幸事。
从第二重完全的走入第三重,需要一个漫长的领悟过程。在这一阶段里,你已经感觉到了瓶颈,再也无法像以前一样,能够感觉到自己实力的快速提升。你的提升,完全取决于知识的积累。当积累达到一定程度时,以前一些无法完全理解的问题,常常会在你无意之间想通。
此时的你已经对自己所从事的开发工作了如指掌,应对自如,同时你的代码也可能会被大部分人复制粘贴着,并且你会是团队中的“异常天敌”,任何问题到了你手里大部分都可以迎刃而解。
通常情况下,此时的你已经对上面这些事习以为常,你只是在一次次的顿悟当中,寻找着通往究极的途径。
程序猿第四重:造
其实大部分人走到第三重,已经是终点了。至少,作为一个程序猿,你已经很优秀了。
不过要想走到终极境界,还需要做一件事,那就是----造。
造?
是的。造一个spring,一个MVC框架,一个struts2,一个ORM框架。
或许你会说,这没问题啊,我已经可以写一个简单的ORM框架了。
非也。
造的前提是毁,要毁掉你认知的一切东西,从而造出一个真正意义上的新事物。这个时候,你的代码不会再是你的团队在使用,而是全世界在使用。
结束语
“抄”的多了就会“改”了,“改”的多了就会“悟”了,“悟”的多了却不一定能“造”。