杂谈-----程序猿的几个境界,您属于哪一重呢?
发布时间:2013-09-04 21:57:00作者:左潇龙阅读(2223 )评论(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框架了。
非也。
造的前提是毁,要毁掉你认知的一切东西,从而造出一个真正意义上的新事物。这个时候,你的代码不会再是你的团队在使用,而是全世界在使用。
结束语
“抄”的多了就会“改”了,“改”的多了就会“悟”了,“悟”的多了却不一定能“造”。
版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
|
|
|
|
|
|
|
|
关键字: 程序猿境界
分类: 编程之路
那倒不是,因为我很久以前经常在思考一个问题,为什么我们辩论的时候总是谁都不服谁呢?后来发现,是低层的依据不一样。换句话说,如果理想主义的人和一个金钱主义的人谈人生,永远谈不出个结果。
楼主分了四个境界,那底层的依据是什么呢?这个依据对人生或事业发展有多大的影响呢?换句话说,到了楼主的第四层了,如果当年Linux作者在写linux的时候,中国有个像我们一样的程序员在写一个跟linux差不多的系统,而且比linux更强一些,那今天是linux会被它压住消失在历史呢,还是linux会被某些别的因素决定战败这个好系统呢?
我说的问题比较多,如果楼主感觉有的讨论,请也尊重我,详细道来。
贫僧忽然想到,施主是搞.NET的吧。
经常见园子里有人说写了自己的框架,都是搞.NET的猿友写的。可能.NET所谓的“框架”比较好写吧。因此会让施主觉得第四个境界太简单了。
不过贫僧所说的“造出的框架”是指具有一定影响力(像最后一句说的,全世界在使用),而且一般情况下“造出的框架”很可能是现有的具有一定影响力的框架的替代品(比如JAVA中有名的spring,struts2,hibernate,ibatis),具体.NET当中有名的框架,恕贫僧不知。不过就C++来说,应该大致相当于MFC这个东西吧,不过也不确定,毕竟贫僧C/C++的造诣仅仅也只是为了观看JAVA虚拟机的源码。
这岂能是简简单单就能写出来的,或者说到底,贫僧第四重中所说的“框架”可非一般的“框架”啊。。。。还请施主三思啊。
施主所说的底层依据应该是指得按照什么因素划分出的这四个境界吧。
这个因素应该说主要是根据代码的质量以及是否能区别出好代码和坏代码来判断的,毕竟就程序猿来说,主要就是写代码得,因此代码的质量以及是否能区别好坏代码直接决定了他的境界。
至于对一个人或者他的事业的影响,这个很直观。不需要多说了吧。代码质量越好当然走得越远,因为好的代码质量需要很多知识的支撑才能写出来。并不是我给你个编码规范你照着写就是好代码了。
贫僧说的这四个境界都是对表现的描述,真正做起来却需要很多知识。
举个例子,处于第二境界的人,贫僧说他们的表现一般是会挑剔别人的代码,既然会挑剔,那说明这个人对代码得健壮性、扩展性、可维护性或者是性能已经有了一定认识,并且了解一定的重构手法,只有这样才会不自觉的去挑剔别人的代码,并进行修改或删除。
因此,在这四个境界得外在表现之下,其实体现了一个人的技术沉淀到底有多深。
站内搜索
用户中心
用户名: | 登录 | 注册 | |
密 码: | ||
用户名支持字母,数字,下划线和中文 |
最新评论
随机推荐
(十)装饰器模式详解(...
左潇龙2013-08-16
2016——注定不平凡的一...
左潇龙2017-01-24
spring源码学习之路--...
左潇龙2013-08-16
一次集群架构的讨论所...
左潇龙2014-03-18
杂谈---一个项目经理...
左潇龙2014-08-06