`

程序员的四种境界

 
阅读更多

国学大师王国维先深后认为古今成大事业、大学问者,必经过三种境界,第一种境界:“昨夜西风凋碧树。独上高楼,望尽天涯路”;第二种境界:“衣带渐宽终不悔,为伊消得人憔悴”,第三种境界:“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。一代宗师真是体察入微,寥寥数语,道尽了求道者的心路历程,将一个人由浅尝、迷茫到彻悟的过程尽数概括,可谓入木三分。

IT行业可谓现在的热门行业,程序员也是很多人羡慕的工作。薪水高,不用东跑西颠,敲敲键盘,看看屏幕,一切工作全都搞定,轻松而方便。果真如此吗?不尽然,实际上,程序员的职业生涯也是一个求道的过程,需要不断的提高和学习,IT行业知识更新之快,常让程序员们有随时掉队的危险,无一日不战战兢兢,不敢稍有懈怠。

程序员的职业生涯也可分为四个阶段,初级程序员(菜鸟)、高级程序员(熟练工)、系统程序员(高手)、软件大师(大师),其作品也经历四种境界:

· 可以运行的程序

· 健壮、高效的程序

· 结构优美的程序

· 思想深邃的程序

程序员的必经第一个阶段都是编写可以运行的程序。很多人的编程生涯是从“Hello World”开始,当第一次按照教科书上的步骤,将源文件编辑完后,编译、连接、运行,在屏幕上显示出“Hello World”时,心中的激动一点也不亚于阿里巴巴打开了宝库的大门。初级程序员的目标一般是让程序能运行起来,他们迷惑于库函数的众多,不知道该用那一个,他们还要学习基本的语法,以使程序编译通过。初级程序员一般不会考虑设计模式、软件结构等问题。记得本人编写的第一个较大的程序是本人的本科毕业论文题目——一个计算机辅助实验系统,开发工具为Turbo C,在DOS下开发(那个时候Windows还不太流行,怎么样,年代够久远吧),整个软件大约7000行代码,在当时已经能干不少事,在DOS下也能显示不少花里胡哨的图形界面,支持中文,支持鼠标操作(那时候在DOS下需要自己处理鼠标事件中断),当时还颇受好评。可是今天再重新温习过去的作品,真有点掺不忍睹,整个软件毫无结构可言,一共分成两个源文件还是由于编译器不支持一个太大的源文件而被迫分开,整个系统就是源代码的简单堆砌。相信每个程序员都需要经历这个阶段,它是程序员职业生涯的开始,没有捷径可以跨越,只有不断的实践、学习和总结。

第二阶段的程序员已积累了不少的编程经验,语法和库函数不再是障碍,他们已不再满足于程序正确运行、功能实现无误。他们需要了解程序背后发生的事情,需要了解操作系统的原理和调度机制,内存管理,文件系统组织等;了解开发工具的细节,如C的函数调用机制,参数的传送机制、堆栈的建立过程等;了解C++的封装、继承和多态性背后的机制,虚函数实现机理等。他们不仅知道程序应该如何运行,还知道它为什么这样运行,能编写高效、鲁棒的程序。

第三阶段的程序员能构建结构优美的软件系统,软件系统结构的合理性、可扩展性、可维护性、可测试性是系统程序员考虑的重点,结构优美的软件系统同一栋完美的建筑群一样,每个部分各司其职,搭配合理。本人一直认为,一个好的软件系统应当具有美学特征,如简洁、和谐、层次感等,一个好的软件系统应当是简洁的,易于理解的;应当是和谐的,每个部分高内聚、低耦合,既分工又合作;应当是层次分明,易于维护和移植。所以,本人建议那些进行软件系统设计的程序员,当你设计完一个系统后,需要问问自己:"它美吗?",如果答案是否定的,那么我建议你需要重新考虑系统的设计,如果答案是肯定的,那么,恭喜你,你已经达到一个相当高的水平。

最后一级也许是每个程序员梦想达到的顶峰,程序设计不再是简单的工具,而是大师们改变世界的魔杖,从C到C++,再到COM和COBRA,再到XML和WEB SERVICES,每次改变,不是软件语法和开发工具的升级,而是用软件构建现实世界模型的改变,是一种软件思想的革命,软件具有了灵魂和智能。如果没有理解这一点,认为C++只是更好的C,COM只是更好的C++话,你就没有了解它们的精髓和思想性。

“程序员之路漫漫兮,吾将上下而求索”,希望与所有的程序员共勉。

分享到:
评论

相关推荐

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

    #### 第四境界:架构师 这一层次的程序员不仅仅是掌握了一门或多门语言,更重要的是具备了系统架构的能力。他们能够设计出高效稳定的软件系统,并且对于操作系统、网络通信协议(如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行业中,程序员的成长路径往往被视为一种求知的过程,正如国学大师王国维所描述的成大业者的三种境界。然而,在程序员的世界里,这一过程可以被划分为四个阶段:初级程序员(菜鸟)、高级程序员(熟练工)、系统...

Global site tag (gtag.js) - Google Analytics