《程序员》里,将程序员分为五种境界,分别如下:
五流程序员比技术和工具
四流程序员比整合和管理
三流程序员比创意和设计
二流程序员比沟通和性格
一流程序员比态度和方法
超级程序员比思想和素质
比来比去,我觉得我挺符合超级程序员的:)“程序只是语言的表达,而语言则是思想的淬炼。”我也经常跑到CSDN、Blogjava还有其他的论坛去看程序员们的讨论,有时候看到一些什么“C语言就是无敌的”“Java就是骗人的”“Java是万能的”“使用汇编和DOS才是高手”之类的,真是觉得好笑,说这些话的,肯定都是刚刚入门的菜鸟,或者就是还没入门就知道些“江湖谣传”的外行。
大多数人都愿意把编程比作修炼武功,以前看过一个帖子讲什么最高水平就是练成葵花宝典,文章写得很是不错。习武大抵也是这么几个境界,先是会一套掌法或一种兵器,有的人就永远停留在这一层次了,觉得七节鞭是世界上最厉害的武器或者什么拳是天下无敌的;然后大部分人融汇贯通,会了好几种掌法好几样兵器,并且觉得武林绝学都是相通的,慢慢不用师父教照着剑谱就能练出来。这时一部分也停了下来,觉得自己拥有了超强的自学能力,天下武功不过尔尔,他们以为武功就是招式(甚至是基本动作)的堆叠;然后又有一部分人开始发明新的套路掌法了,他们善于观察对手,以最少的动作解决战斗,稳准痕。一部分人到这对自己已经很满意了,他们发现自己可以在打斗中冷静度战,将对手的招式看的一清二楚,找准空档一招制胜,真是了得;但是有些人开始跳出武功,开始研究武功与书法,武功与音乐,武功与医学,互相借鉴,参悟至深。少部分又向前迈进一步,开始思考武功与生命、生活,尘世间的打打杀杀已经不能进入他们的法眼了。
将编程比作修炼武功有正确之处也有不可取的地方。武功一定是一点点练出来的,只会使用一套刀法的人可能理解不了高人所讲的武器只是工具,拿刀拿枪只是工具不同而已。会使用好几种兵器但不精通的人理解这句话是最容易偏激的,高人所讲的武器只是工具是站在一个很高的层次上讲的,绝不是练会几样兵器那么简单,因为只是多会几样兵器的人可能只是在用使用刀的方法使用枪,用使用枪的感觉在使用剑。这种思想在很多人心中都有,以为会使用VB就会使用Delphi了,会使用Java了,实际上他们只是用VB的方法使用Delphi和Java。高手们也会说编程语言不过是工具,算法和数据结构是灵魂,或者业务需求和领域模型是灵魂,但是那种意味则完全不同,你明白我的意思了吗?另外一些人以为能用VB编程就是精通VB了,这一点也是和武功不太好比,因为精通VB的含义太复杂了。要了解Win32,了解计算机体系结构,了解算法和数据结构,这些可以说是练武人的内功,而对于VB而言,则要知道它是如何进行抽象的,理论和实践的相互作用的结果,比如VB是如何封装windows API的,VB是如何访问内存的,如何实现各种数据结构的等等。
练武功不能跳级,编程也不能,我真的不懂不会编程的人怎么做设计,虽然在领域建模和设计建模时可以与程序无关,但是没编过程直接去领悟设计思想,是有点难。起码我没使用Delphi OO技术时无法理解Delphi面向对象规则,在编写大型J2EE项目之前无法理解《Core J2EE Pattern》在说什么,甚至于那样做有什么好处,在学习C++和编写大量产品级程序前我甚至看不太懂《设计模式》,没有认真思考过怎么设计能使耦合更小,复用性更强之前,我看不进去《重构》,而思考过后,发现很多重构方法顺理成章,甚至就是我平常所采用的做法。
在看《AJAX in action》时,译者序中提到了软件工程与软件工艺,Martin Fowler这样的大师也都视编程为艺术。我喜欢从音乐中获得编程的灵感,从生活中发现软件工程的真谛。编程,是一个人思想的高度的体现。我时常都在思考这些问题,我原来觉得作为一个优秀的程序员(这是借用Fowler在《Refactoring》中对自己的说法,他说自己不是天才程序员,只是一个拥有良好编程习惯的优秀程序员,因此,这就成了我的奋斗目标),而非天才程序员(指的是像Rasmus Lerdorf那样的,不过后来看了他自己回忆创造PHP的过程,觉得他也是凡人一个),应该具备的素质包括超强的学习能力,和完整的计算机认识,但是最近我觉得,这些还不足以成为Fowler,BOB大叔,Rod Johnson那样的大师,这些人还要有广泛的爱好和广阔的胸襟,要有大视野。我常发现周围的一些人看不到那么员,他们会像我前面所讲的,练武练到一定程度,就上不去了,他们看不到山顶在哪。伟大的程序员要有伟大的胸怀,当然我指的不是那些窝在某个角落编出超强软件的人。我已经看到了山顶,希望自己能早日到达~
转自:http://blog.csdn.net/sslaowan/archive/2007/02/15/1510798.aspx
分享到:
相关推荐
### 程序员十层境界详解 #### 第一境界:初学者 在这个阶段,程序员刚刚踏入编程...对于大多数程序员来说,能够达到第五或第六境界就已经非常出色了。但无论处于哪个阶段,持续学习和不断进步的态度都是至关重要的。
程序员的九重境界,你是第几重?看看这位高手写的有关程序员的境界。从第一层到达最高层,你是第几层?请进来看看。程序员 java 境界 php SSH struts
##### 第五重:Expert Programmer - 专家程序员 **定义:**专家程序员在某一领域有着深厚的积累,是该领域的权威人士。他们不仅能够解决复杂的技术难题,还能推动整个行业的发展。 - **特征:** - 在特定领域内拥有...
最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封
五、架构设计:当程序员积累了一定的工作经验后,他们开始从更高层次上考虑问题,比如系统架构设计。此时,他们不仅关注代码层面的问题,还会考虑系统的整体性能和扩展性。“突然认识到了设计的重要性,知道如何去...
五流程序员,他们主要关注技术和工具的更新。这一层次的程序员往往热衷于追逐最新的编程语言和框架,喜欢通过解决小型练习来提升技术。然而,他们可能缺乏与实际业务需求对接的能力,忽视了市场和用户的真正需求,...
【程序员10大境界】这本书由周伟明先生编著,他是一位资深的IT专家,拥有丰富的软件开发经验,尤其在多核编程技术领域有独到的见解。书中的内容涵盖了程序员从入门到精通的不同阶段,旨在探讨和评估中国与西方程序员...
尽管文章标题为“程序员最高境界”,但实际上内容并未涉及编程技术本身,而是将营销策略作为一种比喻,暗示通过掌握此类营销技巧也能达到某种程度上的“最高境界”。接下来,我们将详细解析这一概念及其应用。 ### ...
【程序员10大境界】这本书主要探讨了程序员的不同技术层级,并通过作者周伟明先生的个人经历和专业见解,为读者揭示了从新手到高手的成长路径。周伟明先生是多核编程领域的专家,他在网络安全软件、服务端软件、机器...
#### 境界五:系统架构师 - **简介**:随着经验的积累和技术水平的提高,程序员开始向系统架构师的角色转变,负责整体系统的规划和设计。 - **特点**: - 理解业务需求,并能据此设计出合理的系统架构。 - 关注...
剑法三套,程序员.的三境界.doc剑法三套,程序员.的三境界.doc
根据给定文件的信息,我们可以提炼出关于“程序员境界”的一系列重要知识点。 ### 一、程序员的成长阶段 在程序员的职业生涯中,存在着不同的成长阶段。这些阶段不仅代表着技术水平的提升,也意味着思考方式与解决...
【程序员的八种境界】是将程序员的职业生涯划分的不同阶段,反映了个人技能、影响力和职业发展的不同层次。这些境界不仅仅是技术能力的体现,也包含了商业洞察力和社会影响力。以下是这八种境界的详细解读: 1. **...
文章提到了VB程序员的三个境界,分别对应编程能力的不同阶段: 1. 菜鸟级:所有代码都只放在窗体文件中,这类程序员主要通过拖拽控件、设置属性和编写事件代码进行开发。 2. 中间级:工程中有bas模块,表明程序员...
只有当程序员最终学会了将那种“自我自我的存在”的虚假感觉抛在一边,此种境界才可能达到,而那种“自我的存在”的感觉往往伴随在我们大多数人的生活之中。 这是计算机所带来的--禅师程序员的行为方式。 有人说,...
### Java程序员职场生存与发展策略 #### 一、引言 《Java程序员上班那点事儿》是一本面向即将从事Java职业的新手以及初入行的程序员的实用指南。本书旨在帮助读者更好地理解Java程序员这一职业的发展路径,从求职...
程序员编写程序能力的四种境界!人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。在他这著名的一生的早期,他就指出我们的意识...
其中,“程序员的八种境界”、“程序员的《权利法案》”、“结交混世魔猴”等文章早已脍炙人口,在程序员圈子里广为流传。 《高效能程序员的修炼》的写作风格风趣幽默,且充满理解和关怀,适合从新手到老手的各个...