杂谈-----程序猿的几个境界,您属于哪一重呢?

发布时间:2013-09-04 21:57:00作者:左潇龙阅读(2103 )评论(27)

             好几天没写博文了,最近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框架了。

              非也。

              造的前提是毁,要毁掉你认知的一切东西,从而造出一个真正意义上的新事物。这个时候,你的代码不会再是你的团队在使用,而是全世界在使用。

              

    结束语

     

              “抄”的多了就会“改”了,“改”的多了就会“悟”了,“悟”的多了却不一定能“造”。


    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    11
    精彩
    0
    感动
    0
    搞笑
    0
    开心
    0
    愤怒
    0
    无聊
    0
    灌水
    0
    惊讶
#1楼     时间:2013-09-04 22:03:00      来源:Me_duke
处于第一至第二阶段
#2楼     时间:2013-09-04 22:45:00      来源:一叶兰舟飘
第四境界后是不是就飞升成仙了
#3楼     时间:2013-09-04 22:55:00      来源:路过秋天
我嚓,造完之后就“化无”了~~~
#4楼     时间:2013-09-04 22:56:00      来源:左潇龙
@ 一叶兰舟飘
阁下戳中LZ笑点了。0.0。
#5楼     时间:2013-09-04 22:59:00      来源:以利亚
#6楼     时间:2013-09-04 22:59:00      来源:左潇龙
@ 路过秋天
并劳记略懂、还行、你说呢等谦虚用语。
再次戳中LZ笑点。0.0。秋天兄。。。。
#7楼     时间:2013-09-04 23:22:00      来源:逆火狂飙
运维的不如编码的,编码的不如监工头,监工头不如打单的,打单的不如甲方。

程序猿们请对号入座。
#8楼     时间:2013-09-05 08:36:00      来源:lixuanzheng
#9楼     时间:2013-09-05 17:33:00      来源:Blue-Geng
说的太准确了,哈哈,但是我发现自己换了公司后,又从头来了,之前也最多是2,3的样子,能解决大部分问题,知道怎么去改整个程序,哪里好,哪里不好,但是换了公司后,有固定的标准格式,不能随意改,每个方法都是固定的,不知不觉又回到1了,哎,后退严重啊
#10楼     时间:2013-09-06 09:42:00      来源:左潇龙
@ 孤单的蓝色
如果真是这种情况,LZ奉劝阁下要注意自己的知识积累了啊,千万要记得不进则退。
#11楼     时间:2013-09-06 10:33:00      来源:幽灵~
想问楼主,搬砖工有没有境界之分?
#12楼     时间:2013-09-06 11:53:00      来源:乱舞春秋
我怎么觉得第四重像是刚刚入门,,,
#13楼     时间:2013-09-06 13:14:00      来源:左潇龙
@ 幽灵~
搬砖工。。。。是指的搬代码的工人吗。。。
#14楼     时间:2013-09-06 13:15:00      来源:左潇龙
@ 乱舞春秋
第四重基本相当于玄幻当中创造一个位面的能力,敢问阁下,这怎么能是刚刚入门啊。这是逆天之力啊。
#15楼     时间:2013-09-06 14:03:00      来源:乱舞春秋
@ 左潇龙
引用@乱舞春秋
第四重基本相当于玄幻当中创造一个位面的能力,敢问阁下,这怎么能是刚刚入门啊。这是逆天之力啊。

我现在大概是在第二层吧。

但是我觉得你描述的第四重只是拿现有技术(或者说是一些工具)来创造一个“框架(组合成另一个好用的工具)”,这是一种揉合,而非创造。
这种感觉就像是你得到一本绝世武功秘籍,然后你依据他们自创了你的门派,对大众来说你是创造者,但是对于你自己来说,恐怕是刚刚买入大门吧,况且是在别人的思想影响下。
#16楼     时间:2013-09-06 14:13:00      来源:幽灵~
@ 左潇龙
引用@幽灵~
搬砖工。。。。是指的搬代码的工人吗。。。

那倒不是,因为我很久以前经常在思考一个问题,为什么我们辩论的时候总是谁都不服谁呢?后来发现,是低层的依据不一样。换句话说,如果理想主义的人和一个金钱主义的人谈人生,永远谈不出个结果。
楼主分了四个境界,那底层的依据是什么呢?这个依据对人生或事业发展有多大的影响呢?换句话说,到了楼主的第四层了,如果当年Linux作者在写linux的时候,中国有个像我们一样的程序员在写一个跟linux差不多的系统,而且比linux更强一些,那今天是linux会被它压住消失在历史呢,还是linux会被某些别的因素决定战败这个好系统呢?
我说的问题比较多,如果楼主感觉有的讨论,请也尊重我,详细道来。
#17楼     时间:2013-09-06 14:37:00      来源:左潇龙
@ 乱舞春秋
施主,贫僧有礼了。
贫僧有说造的前提是毁的啊,因此此处的造绝非是【拿现有技术(或者说是一些工具)来创造一个“框架(组合成另一个好用的工具)”】,不仅是不用现有的技术框架,甚至可能背道而驰。总之就是要毁。
举个简单的已经存在的例子,就像spring毁掉EJB一样。说不定哪天会出来一个XXX毁掉spring。大致就是这个意思了。
具体这个XXX怎么才能造出来,贫僧就不知道了,贫僧离这个境界还差得远啊。。。
#18楼     时间:2013-09-06 14:47:00      来源:乱舞春秋
@ 左潇龙
引用@乱舞春秋
施主,贫僧有礼了。
贫僧有说造的前提是毁的啊,因此此处的造绝非是【拿现有技术(或者说是一些工具)来创造一个“框架(组合成另一个好用的工具)”】,不仅是不用现有的技术框架,甚至可能背道而驰。总之就是要毁。
举个简单的已经存在的例子,就像spring毁掉EJB一样。说不定哪天会出来一个XXX毁掉spring。大致就是这个意思了。
具体这个XXX怎么才能造出来,贫僧就不知道了,贫僧离这个境界还差得远啊。。。

但是这个东西始终是个框架而已,框架本身就没多少技术含量,所以即使你创造一个出来,也不是什么难事。
我也不知道,我也是差好远,就是觉得大概是这么回事,哈哈。
#19楼     时间:2013-09-06 15:26:00      来源:左潇龙
@ 乱舞春秋
贫僧忽然想到,施主是搞.NET的吧。
经常见园子里有人说写了自己的框架,都是搞.NET的猿友写的。可能.NET所谓的“框架”比较好写吧。因此会让施主觉得第四个境界太简单了。
不过贫僧所说的“造出的框架”是指具有一定影响力(像最后一句说的,全世界在使用),而且一般情况下“造出的框架”很可能是现有的具有一定影响力的框架的替代品(比如JAVA中有名的spring,struts2,hibernate,ibatis),具体.NET当中有名的框架,恕贫僧不知。不过就C++来说,应该大致相当于MFC这个东西吧,不过也不确定,毕竟贫僧C/C++的造诣仅仅也只是为了观看JAVA虚拟机的源码。
这岂能是简简单单就能写出来的,或者说到底,贫僧第四重中所说的“框架”可非一般的“框架”啊。。。。还请施主三思啊。
#20楼     时间:2013-09-06 15:28:00      来源:左潇龙
@ 幽灵~
施主的问题有些深奥,待贫僧下班之后好好与施主探讨啊。
#21楼     时间:2013-09-06 17:08:00      来源:乱舞春秋
@ 左潇龙
引用@乱舞春秋
贫僧忽然想到,施主是搞.NET的吧。
经常见园子里有人说写了自己的框架,都是搞.NET的猿友写的。可能.NET所谓的“框架”比较好写吧。因此会让施主觉得第四个境界太简单了。
不过贫僧所说的“造出的框架”是指具有一定影响力(像最后一句说的,全世界在使用),而且一般情况下“造出的框架”很可能是现有的具有一定影响力的框架的替代品(比如JAVA中有名的spring,struts2,hibernate,ibatis),具体.NET当中有名的框架,恕贫僧不知。不过就C++来说,应该大致相当于MFC这个东西吧,不过也不确定,毕竟贫僧C/C++的造诣仅仅也只是为了观看JAVA虚拟机的源码。
这岂能...

是的是的,我是搞.NET的,但也不局限于这块。我大致明白你要说的意思了,就是指像REST这类东西的提出,全球都在使用,这类是吧,那我赞同你的观点。
但我始终觉得这不是顶端,在往上是啥我也不知道,没达到这境界我体会不出来。
我始终有一个这样的认识:知识就是一个圆,圆内是你懂得,圆外是未知的,我们懂得越多后,不懂的也就越多。什么时候能跳出这个圆的模式,跳出去,俯览这个圆圈,境界就有了。
#22楼     时间:2013-09-07 12:35:00      来源:左潇龙
@ 幽灵~
引用@左潇龙
引用引用@幽灵~
搬砖工。。。。是指的搬代码的工人吗。。。

那倒不是,因为我很久以前经常在思考一个问题,为什么我们辩论的时候总是谁都不服谁呢?后来发现,是低层的依据不一样。换句话说,如果理想主义的人和一个金钱主义的人谈人生,永远谈不出个结果。
楼主分了四个境界,那底层的依据是什么呢?这个依据对人生或事业发展有多大的影响呢?换句话说,到了楼主的第四层了,如果当年Linux作者在写linux的时候,中国有个像我们一样的程序员在写一个跟linux差不多的系统,而且比linux更强一些,那今天是linux会被它压住消失在历史呢,还是linux会被某些别的因素决定战败...

施主所说的底层依据应该是指得按照什么因素划分出的这四个境界吧。
这个因素应该说主要是根据代码的质量以及是否能区别出好代码和坏代码来判断的,毕竟就程序猿来说,主要就是写代码得,因此代码的质量以及是否能区别好坏代码直接决定了他的境界。
至于对一个人或者他的事业的影响,这个很直观。不需要多说了吧。代码质量越好当然走得越远,因为好的代码质量需要很多知识的支撑才能写出来。并不是我给你个编码规范你照着写就是好代码了。
贫僧说的这四个境界都是对表现的描述,真正做起来却需要很多知识。
举个例子,处于第二境界的人,贫僧说他们的表现一般是会挑剔别人的代码,既然会挑剔,那说明这个人对代码得健壮性、扩展性、可维护性或者是性能已经有了一定认识,并且了解一定的重构手法,只有这样才会不自觉的去挑剔别人的代码,并进行修改或删除。
因此,在这四个境界得外在表现之下,其实体现了一个人的技术沉淀到底有多深。
#23楼     时间:2013-09-11 22:31:00      来源:岁月漫步
楼主说的对
#24楼     时间:2013-09-19 22:25:00      来源:Leo's
贫僧处于2-3之间.....看了几篇方丈写的文章有点触感,想继续跟随方丈去领悟世界......如果愿意让我跟随,请私聊发个小QQ.....
#25楼     时间:2013-09-20 14:46:00      来源:左潇龙
@ By_小黎
施主客气了,进贫僧建的交流群吧,300638185,由于贫僧最近在看计算机系统,因此建了这个群和各位猿友交流,施主也可以进来多多交流。
#26楼     时间:2013-09-21 10:16:00      来源:落叶残阳
我是抄,改一并进行阶段
#27楼     时间:2016-11-18 10:54:43      来源:无锡市网友

大神,想请教”研究如何编译和调试JAVA虚拟机的源码“

发表评论

站内搜索