博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杂谈-----程序猿的几个境界,您属于哪一重呢?
阅读量:6088 次
发布时间:2019-06-20

本文共 1568 字,大约阅读时间需要 5 分钟。

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

          非也。

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

          

结束语

 

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

转载地址:http://lppwa.baihongyu.com/

你可能感兴趣的文章
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>