分类: 项目管理
2008-11-27 09:11:58
看到一篇文章,是说程序员的所谓境界:
第一重:在那本电脑杂志上看见软件工程师这个职业介绍,或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告,有些羡慕那些编程序的,自己有些蠢蠢欲动。
第二重:用控制台或者说SDK之类的东西写了一个“HELLO WORLD!”,感觉编程这个东西,太简单没难度。
第三重:学会了简单的使用某某工具例如VC,知道怎么利用工具创建对话框之类的东西了,认为自己已经有了“扎实”的基础,出去找工作四面碰壁之后感叹人心不古世态炎凉。
第四重:以极低的要求找到工作,突然发现自己不会的实在是太多太多,不求甚解是无奈之举。这个阶段写代码写完之后主要是试,试的标准:能运行就是成功,不能运行就是失败。一个小模块写完之后被黑盒蹂躏几十次稀松平常。
第五重:突然意识到不能再瞎干了,于是知道了如何规范的写代码,尽力的把代码写的短小精悍,看一堆关于算法的书,并且会把自己的或者别人的优秀代码分门别类存起来,以便经常参考使用。
第六重:做的实践越长,发现自己不会的越来越多,每每遇到不太理解的必然刨根问底,写完一段代码,一定仔仔细细把程序研究个透,不让它出现一点泄露一点警告才罢休,以挑战白盒作为乐趣。
第七重:把各种工具研究个稀巴烂,即使一个全新的语言或者工具,也能在半个月之内熟练使用,这个时候,仍然认为自己举例高手还有很大差距,遇到新手来公司面试,很惊讶这些人居然连怎么操作内存都不会就敢出来混?
第八重:把编程工具用烦了,开始喜欢控制台或者SDK,纯粹的API编程编程了自己的最大乐趣。
第九重:在电脑杂志上看见软件工程师的职业介绍,或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告,想对后来人说些什么终究发现无话可说,只好一笑而过。
第一重到第四重需要努力,第五重到第六重需要悟性,想到第九重,需要智商和福缘。
什么叫程序员,没有一个权威的定义,通俗一点讲就是专业做程序设计的。程序员应该具备什么样的优秀品质,也是众说纷纭,在网上一搜一箩筐。上面所说的程序员的九重境界大致上勾勒了程序员的成长轨迹。
本科软件工程课上,老教授告诉我们:“我们的学校不是培养程序员的,最起码是培养软件工程师的。”虽然计算机科学与技术发展到今天已经浩瀚无比,但是计算机本身还是工具,用计算机编程就像用镰刀割麦子一样,程序员就是高级技工。技工也分三六九等,也有层次高低。虽然再高级的技工也是蓝领,不像白领和金领光鲜艳丽,但如果做好也是相当难的。本科编译原理教授,40多岁了还经常编程,而且乐在其中,这种人还是很让人佩服和值得学习的。
软工老教授的话是很实在的,读了本科学了计算机,不能就简单的以成为程序员为目标,不能就简单的以程序员的标准规划自己。但程序员的阶段是必须要经过的,是成为优秀的软件工程师或计算机科研人员需要好好走的路。100多年前,马克思在《资本论》中指出:“在科学的道路上没有平坦的大路可走,只有那些在崎岖小路的攀登上不畏劳苦的人,才有希望到达光辉的顶点。”程序员的路应该在本科学习中好好走,在以后就要追求更高的发展:达到优秀的程序员、达到程序员的最高境界、走过程序员之路继续前行……不能以后了还停留在程序员的初级阶段。