`
kevin_wanwei
  • 浏览: 117669 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

程序员四种境界

阅读更多

 在成为程序员的道路上,要经历四个坎坷,让我们用四个境界来标明他们。

       第一境界,就是前面所说的,掌握一门或者几门编程语言,会模仿例子来实现程序代码,并且让

代码在计算机系统中运行起来。达到这个境界人,还不能算是真正意义上的程序员,而仅仅是掌握了一种

或者几种工具的工匠,他们中的熟练者能够快速模仿现成的例子,以实现自己或者用户需要的软件模块。

 非常遗憾,许多 “程序员”仅仅达到第一个境界,他们根据手中的文档和参考资料,通过“模仿”来完

成工作,他们实现的程序只是无数个前人已经实现过的代码的翻版组合,虽然其中的熟练者以快速高效率

完成任务著称,然而他们的作品中毫无新意,日复一日地重复代码,罕有任何可以称之为“创新”的东西

第一境界的特质是对语言工具的掌握,在这个境界的高手,会强调自己对语言如何如何熟练,因此这个境

界可以用“知器”来表示

    第二境界里,我们要学习的是分解问题和推理的技巧,学会用逻辑的语言来精确地表达一个命题。在

这个境界里,软件工作者掌握的是一种分析具体事物的方法,他们不再一味地模仿,而是开始对一个又一

个具体问题思考并尝试用自己的方法来更好地解决。

在这个层次里的“程序员”开始关注解决问题的思路,并且关注分析和推理的数学技巧,他们中的优秀者

熟知各种算法善用各种各样的命题推理来分析并解决问题。他们同样善于借鉴前人的例子,但是往往能够

根据问题的特点进行有效的改进,并且能够在尝试改进的过程中得到创新的成就感和新的经验。在这个层

次里的人,对语言工具的认识比第一境界更加深刻,他们是真正知道如何利用手中语言工具的特点更好地

解决问题的人。但是他们并不会强调自己对于语言如何熟悉,也不再热衷于宣扬掌握如何如何多的语言,

在他们眼里,语言仅仅是一种工具而已,真正重要的是分析问题的方法。

第二境界的特质是对具体问题的分析,在这个境界的高手,往往善于从具体问题中分析出合理有效的解决

方法。因此这个境界用“格物”来表示

 第二境界里有真正对如何用程序来解决问题经验丰富的人,这些人能够出色地胜任编码工作,因此我们

称他们为Coder,或者初级程序员。

第三境界里,我们要学习的是抽象思维和找出事物表象后面的规律。在这个境界里,软件工作者不再针对

一件一件具体的事物来分析,而是尝试理解事物表象下的本质。在这个层次里的人,开始关注事物的共性

,并且逐渐掌握归纳和总结的方法。“模式”开始出现在他们的头脑里。

 “设计模式”是软件领域的“三十六计”,是经过抽象总结而归纳出来的真正的思想精华。第三个境界

的软件工作者开始接触并且理解“模式”,学会灵活运用模式和抽象思维来解决“某一类”问题。与表象

相比,他们更关注的事物的本质,他们的代码里充满思想和对事物规律的深刻认识,他们熟知各种类型问

题的特点和解决技巧。对事物本质规律的认识使他们不再依赖于语言工具,任何一种熟悉或者陌生的程序

设计语言在他们的手中都能够发挥到极致,完美地解决问题。

第三境界的特质是对事物本质规律的认识,在这个境界的高手,往往能够快速地抽象出问题的本质,从而

用最合适的方法来解决问题。这个境界我用“明理”来表示

达到第三境界的程序员,是天生的设计师,他们对问题本质的领悟能力帮助他们用优美简洁代码来解决问

题,他们的代码中充满设计思想。他们是真正能够享受到程序设计的艺术魅力并且充满成就感的一群人。

 第三境界里的程序员真正当得起Programmer称号,他们在外人眼里看起来是天生的设计师、艺术家和技

术牛人,他们是为软件创作而生的。

前面说到了三个境界,层层深入,并且第三个境界的程序员已经当之无愧地成为软件领域的专家领袖,然

而,“程序员”是否只有以上三个境界了呢?答案是否定的。在这三个境界之上,依然存在有——

第四个境界

       第三境界程序员中的极优秀者,并不满足于专家的地位和高薪,他们开始向第四境界艰难地前进

。第四境界是程序设计领域的最高境界,要达到这个境界,只需要掌握一样东西,然而这个东西并不是寻

常之物,而是许多人穷尽一生也无法得到的,这个世界最为深邃的秘密。

       自古以来,有这样一群僧人,他们遵守戒律,不吃肉,不喝酒,整日诵经念佛,而与其他和尚不同的是

,他们往往几十年坐着不动,甚至有的鞭打折磨自己的身体,痛苦不堪却依然故我。

有这样一群习武者,经过多年磨练,武艺已十分高强,但他们却更为努力地练习,坚持不辍。

有这样一群读书人,他们有的已经学富五车,甚至功成名就,却依然日夜苦读,不论寒暑。

他们并不是精神错乱,平白无故给自己找麻烦的白痴,如此苦心苦行,只是为了寻找一样东西。

传说这个世界上存在着一种神奇的东西,它无影无形,却又无处不在,轻若无物,却又重如泰山,如果能

够获知这样东西,就能够了解这个世界上的所有的奥秘,看透所有伪装,通晓所有知识,天下万物皆可归

于掌握!这并不是传说,而是客观存在的事实。

     这样的东西,叫做“道”。

静寂虚无中有奥秘,不静不动,乃程序之源,无以名之,故曰:程序设计之道。若道至大,则操作系统

至大;若操作系统至大,编译程序亦然;若编译程序至大,应用程序亦复如是。是以用者大悦,世之和谐

存焉。                                                            ——杰弗瑞.詹姆士

所谓道,是天下所有规律的总和,是最根本的法则,只要能够了解道,就可以明了世间所有的一切。

掌握了“道”的程序员,才是真正的程序设计大师,能够创作出流芳百世的作品。

然而怎样才能“悟道”,我并不知道,也无法描述,因为“道”实在不是一个能够轻易得到和理解的东西

对第四境界的程序员来说,“思想”已经不再是很重要的东西,因为他们对程序本质的理解已经超越了问

题本身,在他们的代码里,有的只是自然,现实和虚幻的边界都已经模糊,一个完美自治的系统在刹那间

诞生,却仿佛从亘古时刻起便存在着、运动着,从简单而质朴的规律中涵盖着世间万物的本质。因此,这

个境界,我称之为“成道”。

分享到:
评论
1 楼 aoly80 2010-05-17  
说的比唱的都好听

相关推荐

    程序员十层境界(很经典)

    #### 第四境界:架构师 这一层次的程序员不仅仅是掌握了一门或多门语言,更重要的是具备了系统架构的能力。他们能够设计出高效稳定的软件系统,并且对于操作系统、网络通信协议(如TCP/IP)等有着深刻的理解。架构师...

    程序员的九重境界,你是第几重?

    程序员的九重境界,你是第几重?看看这位高手写的有关程序员的境界。从第一层到达最高层,你是第几层?请进来看看。程序员 java 境界 php SSH struts

    程序员的八重境界

    ##### 第四重:Proficient Programmer - 精通程序员 **定义:**精通程序员不仅掌握了广泛的编程技能,还能够独立设计和实现复杂的系统。他们是团队中的技术领袖。 - **特征:** - 能够从全局角度考虑问题,制定合理...

    程序员的最高境界?

    最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封

    程序员九重境界,看看你到了第几重!

    四、团队协作:随着经验的增长和个人能力的提升,程序员逐渐承担起了更多的责任。他们不仅需要关注个人技术的成长,还要学会与其他成员有效沟通合作,共同推动项目的进展。“突然认识到一个人的力量是多么渺小,一个...

    程序员分成几种不同的境界

    四流程序员则更注重技术整合和项目管理。他们具备更宽广的技术视野,能够根据项目需求选择合适的工具和技术,考虑项目的整体风险、成本和长期效益。他们会权衡开发时间、维护难度、用户培训以及市场推广等因素,但...

    程序员10大境界.pdf

    【程序员10大境界】这本书由周伟明先生编著,他是一位资深的IT专家,拥有丰富的软件开发经验,尤其在多核编程技术领域有独到的见解。书中的内容涵盖了程序员从入门到精通的不同阶段,旨在探讨和评估中国与西方程序员...

    程序员最高境界

    尽管文章标题为“程序员最高境界”,但实际上内容并未涉及编程技术本身,而是将营销策略作为一种比喻,暗示通过掌握此类营销技巧也能达到某种程度上的“最高境界”。接下来,我们将详细解析这一概念及其应用。 ### ...

    程序员10大境界7.pdf

    【程序员10大境界】这本书主要探讨了程序员的不同技术层级,并通过作者周伟明先生的个人经历和专业见解,为读者揭示了从新手到高手的成长路径。周伟明先生是多核编程领域的专家,他在网络安全软件、服务端软件、机器...

    程序员的九重境界,看看自己的位置

    #### 境界四:独立开发者 - **简介**:在这个阶段,程序员已经具备独立完成项目的能力,并能够承担起整个项目的开发任务。 - **特点**: - 能够独立分析需求并制定开发计划。 - 具备良好的时间管理和项目管理能力...

    剑法三套,程序员.的三境界.doc

    剑法三套,程序员.的三境界.doc剑法三套,程序员.的三境界.doc

    程序员境界

    根据给定文件的信息,我们可以提炼出关于“程序员境界”的一系列重要知识点。 ### 一、程序员的成长阶段 在程序员的职业生涯中,存在着不同的成长阶段。这些阶段不仅代表着技术水平的提升,也意味着思考方式与解决...

    程序员的八种境界,你在哪一境?

    【程序员的八种境界】是将程序员的职业生涯划分的不同阶段,反映了个人技能、影响力和职业发展的不同层次。这些境界不仅仅是技术能力的体现,也包含了商业洞察力和社会影响力。以下是这八种境界的详细解读: 1. **...

    程序员编写程序能力的四种境界

    程序员编写程序能力的四种境界!人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。在他这著名的一生的早期,他就指出我们的意识...

    一个老程序员的经典概括

    文章提到了VB程序员的三个境界,分别对应编程能力的不同阶段: 1. 菜鸟级:所有代码都只放在窗体文件中,这类程序员主要通过拖拽控件、设置属性和编写事件代码进行开发。 2. 中间级:工程中有bas模块,表明程序员...

    java思想 编程的四个境界

    在IT行业中,程序员的成长路径往往被视为一种求知的过程,正如国学大师王国维所描述的成大业者的三种境界。然而,在程序员的世界里,这一过程可以被划分为四个阶段:初级程序员(菜鸟)、高级程序员(熟练工)、系统...

    Java程序员上班那点事儿 作者:钟声

    #### 四、结语 《Java程序员上班那点事儿》这本书不仅涵盖了求职过程中的种种挑战和解决策略,还针对软件开发行业的一些常见误区进行了澄清。对于即将步入职场或已经在职的Java程序员而言,这本书是一份宝贵的资源...

Global site tag (gtag.js) - Google Analytics