PersonalCorpus 版 (精华区)

发信人: Sun (大灯泡), 信区: SoftEng
标  题: 我看程序员
发信站: 哈工大紫丁香 (2001年01月19日10:57:16 星期五), 站内信件

我看程序员

程序员——一个毁誉参半的称谓。想当初曾经被视作英雄,众人景仰。如今,却被许多
人瞧不起,客气的说他们是“高技术工人”,不客气的就直接称其为“牛”了。图灵奖
获得者,Edsgar Dijkstra在他的《卑微的电脑程序员》一文中说:"对我来说,电脑程
序员是个尊称,但对其他一些人来说,电脑程序员确是不懂他自己在干什么,而是只会
依指令行事之徒,一些只知道分析、追求语言特性的人。”看来,许多人曲解了“程序
员”这个名词的涵义。那什么样的人才是真正的程序员呢?我斗胆给程序员分为四类,
请大家对号入座。

一、高中生程序员

我丝毫没有贬低高中生的意思。在美国,有大量的高中生从事程序员的职业,他们的工
作就是编码、编码、再编码。很可悲,目前中国的大学生基本都是做这样的工作,甚至
某些硕士、博士也是如此。

这一类型的程序员认为掌握语言是最重要的,所以他们认真地学习语法和函数库。他们
不停地学习语言,以为只要掌握的语言多、新,就能有竞争力,有好的工作,拿高的薪
水。他们确实很厉害,VC、VB、Delphi、PB、Java、ASP、PHP等等都能拿来就用。但是
,正因为他们,编程才被称为“牛都可以干的事”。

在美国、印度的大公司,高中生程序员整日的工作就是添表格——工程师程序员把软件
划分模块,详细设计到每一个函数的功能、参数和返回值,高中生们向这些函数里添加
代码,实现功能,如同添表格一样。很多时候,高中生甚至不知道他所做的项目是干什
么的,他所了解到的仅局限于一个函数而已。

在国内,如此正规的软件公司很少,大多数还处于作坊式的开发模式,所以,高中生程
序员还是很吃香的。几个人一商量就开干,没有完整、详细的计划,很少考虑可维性、
重用性,注释懒得写,文档更不提。这样,项目非常依赖参与编码的这几个人,自然他
们不用为生计发愁。他们最发愁的事情是后期维护。每当要加减功能、改bug的时候,
他们就会发现自己已经看不懂自己写的代码了。

我们的软件公司已经认识到软件工程的重要性,并且开始逐步实行。这样,当公司的开
发过程趋于正规,只会编码的高中生程序员也就越来越难做了。年轻时,他们或许可以
打拼一番,但是30、40岁之后,当他们对新语言、新技术的接受能力已比不过年轻的程
序员时,他们就会被淘汰了。

当“软件集成电路”的梦想变为现实,当各种可重用控件、组件、类库都已经具备,那
时就不再需要高中生程序员了。

二、黑客程序员

黑客决不是那些到处黑机器搞破坏的人,他们是一群痴迷于技术的人。GNU领袖Richard
 Stallman对黑客下的定义是:“Someone who loves to program and enjoys being 
clever about it.”

他们从不循规蹈矩,不信奉任何规则、定理、科学家,总是从常人不可想象的角度去思
考、去编程。这样做的结果,或者发现系统漏洞,或者发现更高效、巧妙的方法。他们
从不满足于使用别人封装的接口、定制的框架,总是要刨根问底,对技术的钻研直至底
层。

他们的编程能力惊人。当别人为了做某件事而到处寻找工具的时候,他们在自己编程来
实现这个工具。结果往往是别人找不到或很久以后才找到合适的工具,而他们已经做完
了工作,并且把程序删除了。

他们使用C语言,汇编,甚至机器码编程。对他们来说,Java、C#等等都是玩具,是干
不了大事情的。他们也用Java,因为大家都喜欢玩玩具,更何况玩玩具还可以挣钱。玩
玩具的结果是他们自己写了一个Java虚拟机。

对他们来说,当黑客决不是职业,而是爱好。如果一个人对自己所作的事充满兴致,并
能从中得到乐趣,他肯定能获得非凡的成就。这就是他们成功的根本原因。

编程就是他们的生活,计算机就是他们的朋友,除此以外,一无所有。

黑客创造了一个又一个像Linux、Apache这样的神话,他们是推动技术进步的最重要力
量之一。

三、工程师程序员

他们是不用写代码的程序员,但他们的工作是写出好的、有价值的代码的重要条件。

他们能控制整个开发过程,分配人员与任务,使开发有条不紊地进行,按时完成。他们
懂市场,知道用户需要什么样的软件,喜欢什么样的软件。这可以保证程序员的劳动不
是徒劳的,而是有价值的。

他们能够设计出最好的软件结构。即使最挑剔的客户频繁改变需求,他们设计的软件也
能很快地修改以适应客户。做他们的手下,同样的代码你肯定不用写第二遍,因为他们
设计的模块都是可重用的。如果程序出了bug,你也不用慌,他们设计的软件功能封装
得很好,可以快速定位错误出处,一改了之。他们就是为高中生程序员设计表格的人。


他们也懂语言,懂技术,不过他们更注重的是技术的思想而不是使用。比如当Java出现
的时候,他并不是去学Java的语法、函数库,而是看各种介绍Java的文章,听专家的评
论,领会Java的功能和思想,思考怎样利用Java的特性。

随着软件业的发展,必须抛弃作坊式的手段,实施基于团队的科学的管理和开发过程。
中国正需要大量的工程师来完成这个变革,然而现在合格的、富有经验的工程师却很少


四、科学家程序员

科学家程序员与其它程序员最大的不同在于科学家以理论研究为主要工作。计算机科学
家中有两类,一类研究出纯理论的算法后,将它交给他人在计算机上实现。另一类在设
计的同时便考虑到可实现性,并能利用计算机的特性增强算法,更可贵的是他们还能饶
有兴致地自己编程实现算法。后一种科学家便是科学家程序员。

数学是科学家最基本,也是最有力的武器。是一个个数学定理、方法构建了计算机科学
大厦。但是数学并不是万能的,有些时候仅靠公式是不够的。著名的三维游戏MDK在开
发的初期请了三位数学家来设计三维模型,结果发现按照他们的公式实现的程序运行缓
慢,根本不能使用。后来他们请来了一位有丰富三维开发经验的程序员,他使用了很多
巧妙的方法做出了漂亮的三维效果,而且运行起来很快。如果一个理论不能很好的用于
实践,那么这个理论是空洞的。物理学家、化学家都要自己做实验来验证自己的理论,
计算机科学家也要如此来寻找解决问题的最佳方法。

无论那种类型的程序员,都承担着极富挑战性的工作。每一个合格的程序员无不最大限
度地调动自己的智力、经验,来攻克一个又一个高峰,而当你已经站在一座峰顶时,你
会发现又有新的高峰在不知不觉间升起了,甚至升得更高,幅员更广,并且很多人已经
开始爬这座高峰了。如果这座新的高峰真的值得攀登,那么就请马上走下现在的峰顶,
去拥抱新的一切吧。不要让自己陶醉于当前的成绩,固步自封。信息产业总是日新月异
的,能走在潮流最前列的人才是成功的。

未来信息社会的缔造者,将是我们——程序员!

--
    如果程序员懂得了软件工程,
    那么他就不再是牛,
    更不是妓女了。
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
※ 修改:·Sun 於 02月26日18:48:48 修改本文·[FROM: sunner.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.870毫秒