程序员之路

原创 2004年03月09日 10:24:00

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

    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++话,你就没有了解它们的精髓和思想性。

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

程序员修炼之路(八)再次写给我们这些浮躁的程序员

本篇文章是程序员修炼之路的第八篇。 程序员修炼之路系列我决定将他定位于提升程序员素养的专栏,我会分享更多好的文章。 感谢原作者,因为你让我思考 原文出处:http://blo...
  • lanzhizhuxia
  • lanzhizhuxia
  • 2012年09月05日 17:44
  • 4788

一个JAVA程序员成长之路分享

我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉...
  • u013659231
  • u013659231
  • 2017年05月26日 16:18
  • 4717

Java程序员谈一谈-----java程序员成长之路

转载:http://www.banzg.com/archives/679.html?ref=myread 阿里面试回来,想和Java程序员谈一谈 引言 其实本来真的没打算写这...
  • wickedvalley
  • wickedvalley
  • 2017年02月10日 22:07
  • 6197

java程序员成长之路——转

第二部分:对于参加工作一年以内的同学。   恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。   但是加班不代表你就可以松懈了,永远记得...
  • zxh_2581285470
  • zxh_2581285470
  • 2016年09月21日 17:06
  • 1238

《内外兼修:程序员的成长之路》

1.最近笔者读了这样一本书,总的来说还是比较有意思2.主要记得的内容有三个方面:首先是现在技术方向和计算机行业的就业方向;其次是利用开源程序框架加快开发和相关的工具;最后就是讲了工作中的团队精神,说明...
  • qq_25327609
  • qq_25327609
  • 2017年03月29日 09:07
  • 3163

一名C++程序员的成长之路

1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。   2.初学者请不要看太多太多的书那会误人子弟的,先找本系统...
  • wo17fang
  • wo17fang
  • 2015年06月06日 10:58
  • 1029

c#程序员的成长之路

从上大学开始学的就是C#编程,当时不是因为喜欢,而是头脑发热不知怎么的就选了这门语言,现在想来,觉得以前好、自己好像真的是选错了,不是有那么一句话吗?   现在流的泪水和汗水就是当年选科 是脑袋进的水...
  • u013531549
  • u013531549
  • 2014年01月21日 15:19
  • 630

程序员的职场晋升之路

职业规划非常重要的一点是要学会角色分析能力。大部分人在长期的工作中趋于麻木,对自己的角色并不清晰。但是,在职者必须让自己有一些过人之处,让自己的价值和成绩得以体现并受到认可。《职场晋升路线图》旨在探寻...
  • linux_loajie
  • linux_loajie
  • 2012年06月23日 09:12
  • 3521

程序员练级之路 (作者:陈皓)

建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手,例子不管多么简单,建议...
  • hanqing280441589
  • hanqing280441589
  • 2014年07月17日 19:24
  • 2712

程序员的升级之路

作为一只工作超过5年的程序员,昨天看资料的时候看到有点感触的东西在此记录下来: 提高工作效率,减少加班 网上有很多人都在说提高效率,但是很少有人说通过什么途径或者方面去提高工作效率。只能说...
  • seacean2000
  • seacean2000
  • 2016年07月10日 23:33
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序员之路
举报原因:
原因补充:

(最多只允许输入30个字)