×

Loading...

程序设计师真情忏悔录

本文发表在 rolia.net 枫下论坛王森:程序设计师真情忏悔录(修正完整版)
(2002.04.20) 来自:CSDN





不卖鸡排也可以 - 程序设计师真情忏悔录(修正完整版)



升阳计算机教育训练中心 王森

moli0205@mail2000.com.tw



前言:

不久前,蔡学镛先生发表了两篇分别叫做"程序与香鸡排","再论香鸡排"的文章,受到的回响之大,据说连作者本人都接到该文的转寄.足以见得该文的内容道出了台湾程序设计师心里最深处的想法.所以,本文想针对台湾程序设计师来做讨论,看看身为一个程序设计师,究竟犯了什么过错,导致大家宁愿卖鸡排也不愿再继续写程序.璩美凤小姐为自己惊动台湾社会的行为写了真情忏悔录,我们也该真诚地检讨一下自己.



注意:

本文内容提及"程序女工"与"数据库女工",并没有对女性IT从业人员不敬的意思,

这些用语只是用来描述"长期从事相同且单调工作的人"的意思.请女性朋友勿介意.



另外,本文也并非歧视"长期从事相同且单调工作的人",这些人都是台湾经济奇迹的幕后英雄.本文只是单纯检讨程序设计师身价低落的主因,并提供主观的解决之道.本文的检讨主角锁定为"专门写程序"的程序设计师,请勿将其它高阶角色的

IT从业人员和本文内的主角混淆.





本文:

在台湾,大部分的人都有个认知,就是"搞硬件的比搞软件的要好赚","做SA/SD比coding地位要高".那些做ID Design的家伙待的公司所发的股票,永远比搞Software Design的人待的公司发的还多,股价也高出好几倍. 搞SA/SD的人,在公司地位好象也比单纯写程序的人高.于是我的父亲有一次问我:"是不是搞硬件的人智商比较高?","是不是搞分析设计的人比较有地位?"



事实上,在学生时期我就认识不少人,有的人因为程序写不过别人,所以转换跑道专攻硬件;也有人觉得每天面对示波器和逻辑分析仪让他们头痛,工程数学也学不过人家,所以转行搞软件.到了实际上面对许多前来接受教育训练的学员之后,发现有人是因为写了十几年BIOS和driver,觉得乏味而没有前途,所以想试看看应用程序的开发;有人则是因为受不了客户每天改需求,而且写BIOS和driver的人好象比较少,价格比较高,因此想学习如何撰写系统软件. 询问那些上高阶课程的朋友,有的人发现自己只会胡做SA/SD唬烂老板和客户,所以希望重新打好基础,从基本的coding做起;有的人则因为写程序写太久,觉得应该往上走向SA/SD的路子,毕竟老了程序就写不动了.



这个世界上什么样的人都有,绝对不能以小现大.就很像搞政治的老是骗我们台湾只分成外省人和本省人,搞帮派的人告诉我们警察是带着枪的流氓.实际上,每个族群大家在没有被分化之前都相处的和乐融融,而虽然有警察掳妓勒索,上班时间跑去聚赌,但是也有开我们罚单时酌情轻罚的警察,和保护我们身家性命的警察.



即使如此,身为一个程序设计师还是要问,那为什么写程序的好象地位就是比较低?笔者认为,这是进入门槛的问题.会做相同事情的人多了,会会削弱那样技能的价值. 就很像考过MCSE/MCSD证照的人,通常比起考过SCJP/SCJD证照的人要来的没价值,前者因为考过的人实在太多,而后者考过的人少,仅是如此而已.但是绝不是代表考过MCSE的人素质就比考过SCJP的人要差,也不代表考过SCJP的人实力真的比较高段.



相信求学的时候您一定遇过一种人,他实力也不怎样样,可是考试的时候他x的就是考的比我们高,怎么我们心里就是不服,可是大多数老师偏偏就是比较喜欢分数高的学生.



因此,满坑满谷的人自称会写程序,老板不愁找不到可以做project的人,你要求的薪水和价格很高? 没关系,找个学校刚毕业的小子,写的比你快,写的比你好,用的技术比你新,更重要的,价格比你这个老屁股便宜一半.所以程序设计师在雇主心中的地位日益低落,自然有迹可循.



那么,为什么写程序这个行业的进入门槛比较低???



在各位信息从业人员的身边,非科班出生的比率非常高(当然没还卖鸡排的高),

科班出生的学生,搞不好在老板眼中的地位,还比不上一个半路出家的自学者. 那位自学者靠着自己的天份,学会SP,JSP,PHP,C++,C+,Java,Linux,Windows,Oracle...等,十八般武艺样样精通.而我们科班出生的学生,只会离散数学,数据结构和算法,Visual Basic搞不好用的没人家熟,网站的架设搞不好也没人家熟.更何况科班出生的学生,他的基础学问搞不好根基也不扎实(问看看您身旁的科班学生,和现在大多数灯红酒绿的大学生),难怪最常见的就是很多非科班的"高手"看不起科班的学生,觉得他们无三小路用,连个Windows操作都比他们差,Word也没人家会用,甚至还常常听到某些人大言不惭的说:"我这辈子写程序从没用过书上的数据结构和算法,读那些干啥?". 长期下来,科班的学生也开始质疑自己的所学,甚至考虑转行.

当然也有曲高和寡,孤芳自赏之人. 但终究阳春白雪还是比不上下里巴人,这个世界上能够看清现况的人毕竟是少数数. 总之,没办法受到老板垂青,薪水永远那么少,想卖鸡排的念头就开始萌生.



之所以会有这种情况,笔者个人认为有两种主要原因,一是技术的流通性,二是台湾软件市场的需求.



为什么技术的流通性可以产生大量半路出家的非科班生? 这都要感谢台湾大量作者,写出大量的入门书籍,大幅减低的进入程序设计领域的门槛. 即使在各位眼中,繁体中文的烂书很多,而且比例多的惊人.但是,大家眼中的烂书,常常是再版多次的入门书,对某些人认为是垃圾的东西,常常是另外一批人进入信息业的最佳踏脚石. 不信各位到书店看看,是"24小时学C++","快快乐乐学Java"的书比较多,还是"轻轻松松学微分方程式","21天学复变","电子学不求人"的书多? 两者的差距是 N:0. 是微分方程式和复变比C++,Java难学吗? 笔者两个都学过,至少我可以发誓,就一个有基本学习能力的人来说,难度是一样的,学成所需要的时间和功夫也是一样的.



但是,别忘了,最大的问题也是在此. 如果有人可以轻松的就学会别人辛苦学成的学问,那么那些身处信息大厂那些年薪是我们数倍的优秀程序设计师是白混的吗? 我们承认这个世界上有天才,但是,人家以是经过努力再努力.不努力的天才,顶多就像周芷若使出的九阴白骨爪,只徒具形式,不具威力.拼爆发力可能没问题,但凭内力硬干的时候,只就只能像铁掌帮裘千刃的双胞兄弟一样躲躲藏藏.虽然可以勉强唬过老板和不懂的人.但是你永远不会进步. 这种"浅碟文化"在我们的周遭有太多例子.



再看我们的公开讨论区(BBS或Web Forum),我们可以看到大量的软件技术讨论区,却看不到硬件技术讨论区(喔!请别跟笔者说那些每天问哪家主机板比较好,哪台烧录器较稳定,或者说CPU时脉越高速度就越快越好,或是说x86的Out-Of-Order Executon是"故障执行" 这一类浑话的讨论区和我说的硬件技术讨论区是一样的).



书籍和讨论区促进知识的流通,造成了大量的软件人才,更何况,学习设计软件只要一台PC就能写出好用的软件,而学习硬件设计,需要的设备更是天价. 更重要的一点,就是学软件的人,充分发挥儒家分享的精神,只要不是在BBS上冒充小妹妹想要骗取大哥哥的同情来帮你写程序作业,只要不是很差劲的乱问一通,通常至少会有热心人士愿意留下一个URL,让我们可以找到参考文件,更具热诚的,如新竹师院BBS站Java版的TAHO先生,还擅长用很多生动的比喻让初学者体会技术的真义. 在这种知识充分流通的环境下,当然产生出非常多的信息从业人员.



每一台PC,上头各种软件的需求是无穷无尽的,每天都有各行各业的人需要各种软件,所以程序设计师的需求有一定的量. 难怪有人说:"写程序的人饿不死,但是也不会发大财)



再来就是台湾软件市场需求所引发的问题.



一般我们把软件分成系统软件(System Software)和应用软件(Application Software). 编译器,组译器,除错器,操作系统,驱动程序,都是属于系统软件的一部分.台湾除了硬件厂商,IC Design House之外,甚少有撰写驱动程序的需求. 前几年Linux被炒的热时,也有许多高手投入操作系统,编译器以及简化标准函式库的研究.而台湾所需求的软件,极大多数是属于应用软件,这些需求的应用软件其中很大比例是和数据库有关系的(其实不只是台湾,其它地方也是约略相同的情形).

所以VB,Delphi和PowerBuilder这类IDE大行其道,因为他们容易上手,可以快速开发数据库应用程序,相关入门书籍很多,会的人更多. 因此符合我们前面所说:"会的人越多,价值就越低"的理论.



但是别忘了,系统软件有部分是偏向应用软件的,比方说开发软件用的JBuilder和Visual Studio;制图用的AutoCAD;一套IC Design用的Xilinx或Altera;做OOA/OOD的Rational Rose和TogetherJ, 笔者习惯称这些软件叫做"软件的软件"(Meta software). 在一般程序设计师眼中,这类软件"理所当然"地认为都是由国外所发展.要发展这类软件有极高的进入门槛,所以国外这类软件公司的获利率很高,该公司的程序设计师可是身价非凡. 要知道,先前在媒体上有报导过,能够让Microsoft买软件来用的公司,只有Rational Rose(当然,不可能只买Rose来用). 如果做IC Design的人没有你的软件就没办法做事,身为一个程序设计师,你会觉得你的身价和地位比做IC Design的人低吗? 如果你做的软件像SoftICE或DriverWorks那样被做硬件的工程师大量地倚赖,你会觉得搞硬件的人比你厉害吗?



问题是,知道该如何设计一套这类软件的人,恐怕才是真正的异数. 而且需要跨领域的专才.要不是许多OpenSource的project(例如:KDeveloper)正在进行,恐怕很少人知道该如何设计一套IDE. 既然会制作这类软件的人在台湾少之又少,那么他们的身价高吗? 很抱歉,台湾地区没有公司发展出足以和国外大厂竞争的开发工具. 举IDE为例,台湾早期有家公司开发出一套名为DBtools的产品勉强可以算的上是这类产品,旗标也曾为它出版过入门手册,可是使用这套软件的人好象...没看过(如果该产品有不错的占有率,请原谅我是井底之蛙),没有市场,公司无法赚钱,即使你是少数能做制作某类型产品的高手,公司最后关门大吉了,您也只能算是"少数能让公司赔钱的程序设计师"罢了.所以我大胆假设, James Golsing或

Anders Hejlsberg如果学李敖一样50年不离开这个小岛,大概早饿死了.



以上的讨论,真正优秀的高手看了之后,或许会产生有时不我予,不得已必须远渡他乡的想法.程序设计师的价值就如同书的价值一般,台湾地区和国外有不同的看法.台湾地区教科书比较便宜,应用的书比较贵.国外教科书比较贵,应用的书比较便宜. 国外重内容,薄薄一本How Debuger Work可以卖44.99美金.而台湾,都是看页数来计价(侯俊杰先生的书有努力在打破这个页数的迷思,也做的蛮成功).有很多原因导致这两种文化之间的差异,但是,市场因素肯定是其中重要的一项.



程序设计师价值低落的原因我们讨论过了,如果您同意笔者的论点,那么不禁疑惑,大家彼此毫不保留地让知识得以流通,技术得以扩散,本意是好的,结果反到造成自己和别人身价的低落,这样我们是不是从此不再和别人分享我们的心得会比较好?



TAHO先生看过本篇上半部之后,发表了底下内容:

--------------------------------------------------------

发信人: TAHO.bbs@bbs.nhctc.edu.tw (痴人)



> 哈 恭喜TAHO兄上Java周报了...

> 通常至少会有热心人士愿意留下一个URL,让我们可以找到参考文件,更

> 具热诚的,如新竹师院BBS站Java版的TAHO先生,还擅用很多生动的比喻让初学者体会技术的真义。



@@".....

光看这一段 好象是褒奖

不过看了整篇文章...

突然发现......

原来我是让程序设计师不值钱的凶手之一....

真是罪该万死啊....

--------------------------------------------------------



但是mue先生接下来的发言,说却命中本文真正的核心价值观:



--------------------------------------------------------

发信人: mue.bbs@bbs.im.tku.edu.tw (闲人)



: @@".....

: 光看这一段 好象是褒奖

: 不过看了整篇文章...

: 突然发现......

: 原来我是让程序设计师不值钱的凶手之一....

: 真是罪该万死啊....

不会啦..要是每个程序员都死守自己所会的..让所谓的专业门槛更高的话..就很难进步了..就是让本来难的变简单..自然就会有更难更深入的东西出现..这样社会才进步的快丫..

--------------------------------------------------------



做应用软件的人真的没价值吗? 有些靠应用软件赚了不少钱的朋友开始偷笑了.软件必须加上专业知识,才能够发挥价值. 换句话说,如果您真的只会"写程序",

却没有配合各种领域的专业知识,"写程序"这项技能本身根本毫无价值可言.

就很像你的计算机装了浏览器,可是却没有对外联机的网络一样,如果没有网络本身,浏览器一点价值也没有,更不需要一家公司大费周章地利用平台优势去整倒另外一家公司.



我们可以把程序设计师比喻成架子上满满的信息相关书籍,而顾你的老板就是前来买书的读者.你不能否认这么一堆书里头,有好书,也有烂书,你也不能否认你心中的烂书是一本书,你更不能否认书里面教你如何写Java程序的内容是错的.可是,购书的读者压根儿根本觉得某几本书一点价值也没有.



我们只能说,太多只会"写程序"的程序设计师打烂了市场,就像一牛车的烂书一样,你不能说烂书没有价值,可是烂书会让你对架上其它书籍的价值大打折扣.除非,你之前看到别人口耳相传这本书是好书.大家或许不相信"只会写程序"的程序设计师存在于这个世界上,所以笔者举个简单的例子说明之:

很久以前, BBS上有人发表了post,内容大该是说某公司在整理旧的程序代码时,

发现了一则奇文,奇文内容如下:

---------------------------------------------------------------------------------

//底下是一个判对某个整数是不是奇数的程序代码

public static bolean isOdd(int n)

{

while(true)

{

if(n==1) return true;

else if(n==0) return false;



n=n-2;

}

}

---------------------------------------------------------------------------------

您说撰写这个程序代码的人不会写程序,他又好象会写,

你说他会写程序,你又不服气,觉得这个家伙根本在胡搞一通.看过这则奇文轶事之后,当您下次听到某公司抱怨他们的程序设计师做出来的软件一堆bug,速度出奇的慢,产品永远卖不出去,害公司快经营不下去了,所以他们认为程序设计师一点价值都没有,只是一堆劳碌命的杂碎时,您会不会更加怀疑,是一堆莫名其妙的程序设计师,把你的行情给搞烂了?



所以从今天开始,如果你对程序设计有一股热爱,那么我们一起努力,做个真正的程序设计师,而不要做一个破坏别人行情的程序设计师.做一个真正写的出有用软件的工程师,不要做一个只会写程序的程序设计师.当然,如"意外的计算机王国 / 联经出版社"一书所言,很多技术都是用来原本没有预料到的地方而大行其道.许多科学研究无法有立即的贡献,但是影响深远,我们也期许有意从事基础研究的科班研究生,认真的作研究,不要老是研究一些别人已经研究过的研究,不要老是冀望骗国科会等研究机构的经费,到了最后计划结案时,才匆匆忙忙交出另外一篇骗更多钱的计划书,或是拿不出台面的研究.



最后,我们反省自己是不是也是一个只会"写程序"的程序设计师呢? 请自行测验底下几个问题,这些问题都不可能有客观的答案,所以每个问题都附上笔者主观的答案,作为笔者自己的反省.



Q1: 你尊重专门技术吗? 换句话说,你认为术业有专攻吗?

当你接受外面的教育训练课程时,你总是崇拜看起来什么都懂的老师?

换句话说,你认为那些遇到课外问题就跟你说他不懂的讲师是烂老师?



你老觉得真正的高手应该精通各门各派的技术,如果你会XML,他不会,你就觉得你比他厉害.你觉得他的履历上写的技能太少,证照太少,所以你认为你比他优秀?



有人老是觉得自己蛮会用MFC开发软件,所以直觉认为那些只喜欢,或是只会用VB的人程度应该不高.问题是,有人用VB的程度是,当他觉得组件不好用,所以自己写程序处理HTTP,因为他懂HTTP协议的运作方式.组件盘里附的浏览器组件太烂,就自己用公认语法不是很顶尖的Basic语言来写parser.

相反的,有人号称会用MFC,但是除了靠Help找出名为Cxxxxx的类别来用,再

自己补上事件处理的部分之外,其它什么事都做不出来.



有人认为写Java程序应该善用工具,用UltraEdit根本是重新造轮子的行为,所以一开始就学JBuilder的使用,其实他用JBuilder写了老半天GUI程序,哪天回头叫他用文字编辑器写个简单的Frame + Button, 他却写不出来,因为他从没弄懂过Java的事件处理模型. 他只会不断地: 选择组件->放在容器里头->调整位置和大小->调整属性->按两下->填写事件处理函式,

成为一个名副其实的"程序女工"(再注:女工纯指"经年累月从事重复单调工作者",没有歧视女性的意思).



有人觉得他精通各家厂商的数据库,所以看不起那些只会下SQL指令或是只会写store procedure的人, 因为这个人精通ODBC, JDBC, ADO, ADO.NET各种程序的写法.问题是,一个精通SQL的专家和只会写SQL指令的人,在数据库表格交互参考,资料量很大的时候,要从中取出我们需要的资料,所下的指令在效率上是几秒钟和几个小时的差别. SQL也是个专门学问,要能够巧妙的操作它,必须下非常多功夫做研究,而且一研究可能就是十几年才有办法累积丰富的经验. 如果贵公司的项目老是苦于数据库存取的效能不够,你猜老板会花钱找一个有能力彻底改善所有SQL命令之中效能问题的稀有专家,还是再找一个号称他什么都会,结果一点用场也派不上的"数据库女工" ?



我们常常看到某人列出他的履历,好象会很多就是很厉害.但是当我们完全深入

一项技术时(喔,我是说你真正下工夫的时候),通常我们会越来越感觉到自己的渺小.



蔡学镛先生就是一个非常尊重专业技术的例子.

我们看到他在 CSDN专栏(http://www.csdn.net/expert/cxy/ )上写的,他说他只精通 lots of Java APIs.我和学镛聊过三次,有一次,我听他说:"干麻叫我搞Linux,我又不懂Linux!" 如果是你听到这句话,你会不会真的以为他玩起Linux来肯定比你逊色?

笔者突然想起神雕侠侣里头的独孤求败,晚年只会拿树枝和别人比武,可是你拿再厉害的刀剑就是无法打败他.

所以,请尊重专业技术,不要以为人家没说他会,你就比他厉害.真正厉害的人很多都不在台面上,而是躲在后面偷偷笑我们呢! 而我们一辈子永远不知道我们被别人偷偷取笑了.中国文化数千年来都是文人相轻的历史,够了,大家尊重专业吧!



Q2: 你觉得算法和数据结构无三小路用,因为你从没使用过?



我们承认"无招胜有招"是内功心法的最高境界,但是在信手拈来之际,后面所代表的是对各家武功路数的彻底了解.由于台湾几乎只有应用软件的开发需求,没有系统软件的需求,所以大多数的程序设计师都是站在"程序女工"的角度看世界,只要有钱,只要有人贩售组件,有什么搞不定的.

但是今天如果你想设计一个XML parser,不懂数据结构和算法可以吗?好吧! 你说我们不该重新造轮子,我们应该站在巨人的肩膀上看世界,如果什么都自己硬干,世界是会退步的. 那么试问,当你在使用Java提供的Collection Framework时,你了解ArrayList, LinkedList, TreeSet, HashSet之间的差别吗? 你知道他们的优缺点吗? 你知道他的特性吗? 不了解ArrayList和LinkedList的差异,用哪种去写程序执行结果都一样,可是效率差很多.



大多数的人连了解特性都谈不上,更别说很多每天想发展自己的语言,自己的编译器,自己的操作系统的人,没有基础学问的了解,如何去设计一个Collection Framework或STL?

你说数据结构和算法没有用,你去做看看现在IDE中普遍有的code insight功能看看?以Borland C++ Builder来说,要在短时间内搜寻所有的标头文件并找出某函数的prototype,如果没有对数据结构和算法有充分了解,一样做的出来,只是产品会卖不出去罢了.



我在课堂上常常举一个scalability的例子给学生看:

我希望写一个1+2+3 ... + 100的程序,如果撰写此程序是你的工作,大多数的人都是写成:



int sum = 0 ;

for(int i = 1 ; i < 101 ; i++)

sum = sum + i ;



而真正受到数学观念熏陶的人会写成:



int sum = 100*(100+1) / 2



前者的复杂度是O(n),后者是O(1),当项数很多时,运算时间是不是差很多?这些都是我们的教育所产生的问题(当然笔者也是其中一位受害者),老师只叫你写好作业,助教只叫你run出正确的结果,认真一点的还会测试你是不是抄来的. 却从来没告诉你程序中不能只有一个main函式,程序代码不能第一行写到第一千行从不切割成其它子程序. 你的程序代码看起来不堪入目,老师助教从没告诉你,你的.class檔被decompiler反编译之后,长的比你写的还漂亮.但是从今天开始,我们可以开始认真思考每行程序,不要再做一个拖累其它人行情的程序设计师.



试想发展MP3算法的人和写WinAmp的人,哪个比较厉害?

你会说都很厉害,可是没有前者就没有后者,前者搞不好还可以坐收权利金,后者只能苦哈哈的赚些小钱或等人购并. 我们停留在崇拜应用程序技巧的阶段,而真正值得崇拜的是那些难得一见的创意.



笔者遇过一个朋友,叫他撰写一个费式数列的小程序,比请他写一个可以浏览数据库表格内容的程序还难.(请不要与我讨论费式数列的小程序没有实用价值的问题,这里讨论的重点不是这个)前者需要稍微动点小脑筋,后者只要会拖拖组件,设定property就搞定.

RAD本身不是罪,但是没学好九阳神功就妄想几小时练成乾坤大挪移.最后只会走火入魔而死,彻底变成一个"程序女工".





Q3: 你常常以科班和或非科班自居?



你是科班生,瞧不起非科班生? 因为你是正统?

你是非科班生,瞧不起科班生? 因为你觉得会的东西比科班生的还多.

烂学校会出现好学生,好学校也会有烂学生.

因为比例一样多,所以我们不能以偏概全.



如果仗着受过几年正规教育,自己又从未好好深入学习,就自己为是正统,比较学术的说法这叫做"阳具文化".有些创新的idea是一般制式脑袋的科班学生很难想出来的,因为专家是训练有素的狗.如果你是学电信的朋友,你发现交换机是一个葬仪社的老板因为生意被别人抢走而发明的,那你会不会气死?



如果自学有成的程序设计师仗着自己会的东西比较多,你说你精通Java的各种技术,你看不起从没写过JSP的科班学生.

但是有人告诉你发展Java的James Golsing博士是一个正统出生的科班生,知道了这件事情,会不会让你更加尊重幕后认真打拼的科班生?



Q4: 你是学计算器科学的,可是逻辑能力并没有比较好,还常常受骗?



你会被潮流所鼓动吗? 你常常被别人的思考牵着走?人家鼓吹Linux多好多好,你的脑袋连转都没转过就发愤努力地考Linux认证 ?

-------------------------------------------------------------------

别人把公司里的server全换成Linux,客户端也都改成Linux,公司仍然正常地运作,结果你学了Linux之后,看到电视上BSA同法务部做的广告仍然吓的你冷汗直留. 深怕明天去住套房.



Sun跟你说Java跨平台,你没试过也跟人家说跨平台的优点?

---------------------------------------------------

Borland已经可以做到一份光盘里同时附上Solaris, Linux, Windows, MacOS X的JBuilder,你却为了EJB无法deploy到不同公司的Application Server忙的像无头苍蝇.



之前一窝峰人鼓吹XML,结果你盲目追求流行,做出来的东西tag比data还多?

-----------------------------------------------------------------

会用的人彻底了改变了公司里资料交换的流程,而你整天只会SAX来,DOM去的写XML数据库(用XML来储存资料的数据库)



微软的广告告诉你XP和IE将不支持Java,你都还没试过就跟别人嚷嚷Java已死?

--------------------------------------------------------------------

套句BBS上moga先生的名言:"那我现在在Windows 2000上跑的Java程序是神迹?"



现在一票人每天宣传web service的好处,你连想都没想过就急着想要把公司的旧系统全部改成web service来做,结果浪费一堆钱,糟糕的速度让你每天被客户臭骂 ?

----------------------------------------------------------------------

Web service当然是美好的前景,但是并非适用于每个角落,目前世界上并不存在完美的solution.



人家说不能写程序一辈子,写程序的人生命周期很短,你也跟着别人开始往SA/SD前进 ?

---------------------------------------------------------------------------

如果世界上每个工程师都可以经由经验就成为优秀的SA/SD人员,那么理论上咱们应该有些象样的软件产品才对. 有些人写了几十年,还是一个优秀的程序设计师,你问问他,如果没有遇到糟糕的老板,糟糕的待遇和糟糕的制度,他愿不愿意写一辈子程序? 我愿意.



顾问告诉你要多用RAD,不该重新造轮子,所以你努力的问how而不问why ?

---------------------------------------------------------------

结果真正赚到钱的都是那些像JReport做软件组件的软件公司.



微软说J2EE Blueprint的Pet Store,用.NET技术做比用J2EE做还要快许多,然后你就相信了,最近, IBM和Oracle重新加强Java版的Pet Store,让它比.NET版的还要快18%~22%,你又改口说Java比较好.

--------------------------------------------------------------------------------------------

一个系统在设计的时候有很多考量,有人以扩充性为主,有的以安全性为主,有人以效能为主.

如果没有设计理念,大家程序里头的function全部改成inline就好了,管他编译出来的执行档有多大.

系统只以效能做考量,我们还需要Design Pattern做什么?

那些王八蛋数据和我们选举时的民调一模一样...对一个脑袋清楚的人完全没有参考的价值.

当然,以情感因素来看民调的人例外.



如果你没有经过自己的自主判断就盲目的跟随潮流,那么下次当你看到有人排队买米酒,买蛋塔,抢购卫生纸的时候,请不要投以排队的人们奇怪的眼光.



Q5:你尊重老前辈吗?



我们都相信,世界上唯一不用努力就可以获的东西就是老.

所以吃过的盐巴比你吃过的米还多的人,没有任何值得尊重的.

我们更相信,信息业永远是年轻人出头,而英雄少年也常在心里想:

"李杜诗篇万口传,至今已觉不新鲜,江山代有才人出,各领风骚数百年."



但是我们认真想想,从Apple 2的时代到现在随便一颗CPU都是1 GHz的时代,

计算器的本质有什么改变吗? 不就是一台不断对内存作处理和I/O动作的机器.

你笑那些只会用Fortran或COBOL的老前辈,那你学的Java或C#比起这些老语言又高明到哪里去?

写程序不过是 宣告,循环和函式三大要素.时间久了,产生了一堆新名词,配上一些新的发展理念但本质上没有改变.

如果你是推倒前浪的后浪,当你看到李维先生撰写的 "[长篇] 我的回忆和有趣的故事"或侯捷老师最近两期在Run!PC撰写的"侯捷观点"这些老前辈写的文章,你有把握写出比它们更高明,更有深度的东西吗?



最重要的问题,

Q6:你骗过老板吗?



你在履历上写的十八般武艺样样精通,结果是梧鼠技穷(注:比喻技能虽多,而不能专一),一录取之后什么东西都做不出来,笔者至少听过20个老板跟我讲过这件事情.你以为你的身价比较高,只因为你从事"软件研发"的工作?

然而现实的生活中,"获利"是真正决定成败的关键.除非你的东西帮老板赚了钱.

如果没有,你凭什么要求更多薪水,凭什么要求50张价值数千万元的股票?如果你写的东西品质很差,bug超多,客户抱怨不断,老板赚不到很多钱,你还老是在外头痛骂老板不尊重技术人员.如果把行业换成色情行业,那老板不就等于被干洗? 这样看来,程序设计师和詹惠华(黄显洲3P案女主角)干的事情有什么两样?如果这样的杂碎程序设计师太多了,真正要去卖香鸡排的,不是写程序的人,而是雇用了这些杂碎的老板才对. 不过很遗憾,真的很多软件公司的老板要改行了,鸡排太多人卖了,我建议某位感同身受老板写篇"程序员的老板与蚵仔煎",请踊跃投稿.更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply Report

Replies, comments and Discussions:

  • 工作学习 / IT杂谈 / (ZT)迷茫的程序员
    本文发表在 rolia.net 枫下论坛主  题: (转载)《迷茫的程序员和中国软件业》
    作  者: aka2006 (天知道)

    《迷茫的程序员和中国软件业》 作者:wfwonde (逆风沉沦) 来自:程序人生

    序:
    我感觉现在爆炒软件蓝领的风潮会毁了软件业。我五一收集了资料,又花了这个周末写了这篇文章,我想把它发到国内的一般报纸上去。专业报刊肯定发不了。
    同行们,给点意见,帮忙修改修改。

    2001年对于IT行业进入寒冬,中国的程序员们先打起了喷嚏。
    2001年年关,《软件世界》记者刘兴波关于程序员薪水问题的文章《质疑中国软件业“高薪制“》及后续文章引发轩然波涛。在报刊、杂志上,职能部门和IT界的管理人员大都持肯定态度。加上先前人们以玄奘取经般姿态前往印度考察得出的要培养软件蓝领的舆论报道。于是乎,对程序员进行职能分化、薪水分化(大多数向蓝领靠拢,降薪)、用政策引导教育系统培养软件蓝领、在两年赶超印度等舆论报道纷呈出笼。好像中国软件业打翻身仗的根本在于所谓的“软件蓝领”。但在网络上,以程序员为主的论坛里则对其大加伐挞,近乎血雨腥风。关于软件业的发展以及程序员的发展前景的大批文章在网上广为传播,以至有网路拥塞之谓。这场关于程序员薪水和软件蓝领的争论让不少程序员对其职业取向和发展前景都产生了动摇。
    笔者也是一名程序员,出于对软件行业的看好和对程序设计的偏好。投身于软件行业,作了名程序员。但现在,却因现实和梦想的巨大反差、中国软件业和自身前景的迷离颇感彷徨和痛苦。一个行业的发展固然有起自身的规律,但在一个地区、一个国家的发展却更多地依赖于舆论、政策等诸多社会因素。社会因素的作用会在行业的发展中成倍的反馈出来。没有社会的大环境,软件业的发展也无从谈起。但不征集大多数从业人员的意见,而由舆论界和相关部门闭门造车地制定政策,实难言好。毕竟软件业最终还是要靠程序员来发展。程序员的迷离最终会是软件业的迷离,程序员的痛苦最终会是软件业的痛苦。
    朝阳初升的软件业
    软件业在计算机发展初期是严重依附于硬件,虽然重要,但并为成为产业。直到上世界六十年代产生的软件危机催生了软件工程,才作为一个产业得以迅猛发展。2000年,美国政府将销售额在上一年达2200美元、仅次于汽车和电子工业的软件产业从服务业列入制造业,其为美国经济的高速发展充当了排头兵。尽管软件业已有四十多年历史,其仍然是一个朝阳产业。随着社会信息化的发展趋势,随着各种生产、消费设备的电子化、数字化趋势,因其在事务处理中与在功能上逻辑等价的硬件相比有成本底、易实现、易扩展的优点,软件业会得到更广泛的应用。软件业的重要性也为人之共识。相对于信息产业中的IC业,软件业对技术积累和资金支持的要求要低一些(印度可为佐证,其信息产业的硬件基础和资金均逊于中国,但其软件业成为全球第二)。故中国这种人均资源匮乏,但人力资源相对低廉丰富的国家发展软件业实乃上上之选。对于中国而言,发展软件业已不单单是一个行业的发展。更重要的是可由此提升中国传统行业的生产、运作水平(笔者曾闻:老外有时卖到中国的设备在硬件上与十多年前并无大不同,仅是更新了软件系统,就又当新设备卖过来)。可以毫不夸张地说:要想让地球的重心由西向东移,软件业是最佳支点。这恐怕也是印度这个人均GDP300多美元的国家把IT牛皮地解为India’s Tomorrow的原因吧。
    全球的软件业按开发模式和主要地区(软件业由于产业群落影响和优惠政策吸引,极为集中)可分为:技术领导、产业支撑型——美国,软件本地化型——爱尔兰,外包服务型——印度,嵌入式开发型——日本、西欧。美国在系统软件、服务支撑软件、开发工具等核心领域了占据了80%以上的市场,引领着软件业的方向。爱尔兰则把自己当作美国软件的欧化基地,为欧洲提高20多个欧化版本。日本的嵌入式开发则是应其消费类产品的数字化、娱乐化趋势和通讯设备生产而生。西欧以瑞典、芬兰、德国为代表在生产设备、高精仪器、通讯和搏彩游戏机等应用上进行嵌入式开发(那种更新了软件系统,就又当新设备卖过来的生产设备、高精仪器多从此出)。

    中国软件业的现状和迷离前景
    现在谈到中国软件业时,总是与印度软件业相互比较,是基于这两个国家有很多相似性。在80年代中期,中印两国软件业并无太大差别。中国软件业并未将印度软件业放在眼里,此乃拜中国高速发展之赐,我们戏言曰印度阿三(是就经济而言,亚洲国家,日本第一,中国居二)。但到了现在印度软件业成了全球老二,叫一向自大的美国人也不敢小瞧,盖茨称其为继美国之后的下一个超级软件大国。中国软件业却看起来是王小二过年了,增长率比起国内其他行业尚可自慰,比起其他软件大国则相形见绌。国内67%的市场份额被外国巨头拿走(的确就是拿,没有被狙击)而且是高端市场。企业在技术竞争力上与外国巨头的差距是越来越大了。大部分软件公司都是在进行一般应用开发,为事企业单位开发管理系统。开发工具是别人的,后端数据库是别人的,绝大多数服务支撑软件也是别人的(修路的利润哪能跟提供大型工具的利润比)。要不是中国盗版猖獗,很多小公司光买开发工具就够呛了。不仅仅是技术差距加大,连从业人员的士气都大受影响。以前,开发出了产品虽然盗版猖獗,但大多赞誉有加,现在,有时连盗都不盗国产软件。过去的程序员们也没多富有,但常被不少爱好者追捧,声望甚著,现在,大概只有出校门没几年的“青光“才为自己的程序员身份得意了。干了几年后,再不愿说自己是光干编码的程序员。中国的程序员们尽管并不认为自己的水平比印度同行差,但大都承认了软件业与印度的差距。也没人认为中国软件业形势大好,高歌猛进。至于中国软件业为什么会落败于印度,已有不少总结,在此不表。来看一看业界人士们开出的在网上引发大争议的救业良方。
    印度软件业这几年的迅猛发展吸引了全球目光,中国软件业也不另外。业界人士纷纷以玄奘西行的架势前往取经,这是理所当然。业界人士们取经的结论比较具共性的是:中国软件业需要进行职能化分、大量培养软件蓝领、开拓海外市场等。进行职能化分、实施软件工程、加强管理这些没多大的争议。争议集中在软件蓝领这个新玩意上。
    在目前关于美国、日本、西欧等其他软件发达地区的报道中没见着软件蓝领这一划分和论述(大师和普通人当然有别,哪里都一样)。这是个我们从印度带回来的特产。原因是印度人用高中生在编程,再加上那帮家伙软件工程、项目管理搞的很好,居然能按时上下班,几乎跟哪里都不一样。于是就得出一个软件蓝领的概念(是印度人首创,还是我们的新发明,待考)。可是我要提醒的是印度信息技术部部长2000年5月在华盛顿放言印度每年能向世界输送20万。美国现有IT人才签证配额的一半被印度人占据,看来输送的可不是一抓一把的高中生。老美还没那么苯。以印度现在的培训体系现状和实力,那帮高中生经过培训是必然的了。他们可是在中学就接受扎实的计算机教育。我们的所谓的科班出身,不也是从高中拉了一拨人进行再教育吗?我们的大学技术教育是不是比他们的培训体系强,这我没发量化比较。我倒知道谭浩强教授在一次计算机教育会议上说他对中国现在的计算机高手大部份是非计算机科班出身感到迷惑不解。非计算机科班出身的高手得大部分自学吧,还有不少超过天天接受计算机教育的。我也还知道印度IIT被称为亚洲的MIT。我也还知道印度的培训系统来中国帮我们培训技术工程师。尽管业界人士对软件蓝领语带不屑,但要真是我们的教育培训比他们好,那倒是我们应以帮助第三世界兄弟的名义去帮他们。怎么掉过来了。那种因为印度很多编程人员没有大学学历,就把人当作是一抓一把的高中生的人是否也太过皮相之见了。尽管他们不会告你行业污蔑,但我建议有关人员在爆炒软件蓝领时先仔细斟酌一下,去考察一下别人受到的计算机教育再说不晚,程序员里没几个人跟你们抢“软件蓝领“这个词的话语权。也许吧,他们的培训系统比我们差,我们的认证培训系统可以让一个文秘专业的MM在一个月内拿MCSE,真是天才辈出!
    (aka2006愚见:本人强烈抗议社会对中国学生<--请注意:是“中国”“学生”!-->的高价的所谓的洋认证,这是中国社会的一个悲哀。我听好多人说MCSE的水平——“狗屁”。)

    软件的开发毕竟还是创造性的活动,你得把要处理的事务进行逻辑转换,再变为程序逻辑,编出代码。即便引入软件工程,把事务进行细分,分成更小的功能模块。你也得进行逻辑转换,离不了思考。要是不想让整个程序慢如老牛,还得仔细考虑对全局的影响。软件工程搞得再好也不能让前一个程序员写if,后一个程序员写else,再后一个打个大括号。要真是不需动脑就能写,用代码自动生成就行了,哪用得着一个人。就是不给薪水也得用一台计算机呀,还浪费能源。你要是在业务流程、核心逻辑不变的情况下改来改去,那是叫维护还是叫开发?开发就是这个样子?如果开发真是做个界面,拉两个控件,改改属性就行,那你还是找一个会Photoshop的人吧,效果肯定好。
    继续说这个软件蓝领,我们既然学习印度的管理经验,又带回软件蓝领这个词,还要大力走向世界,看来我们的确是“师印长技以制印“了。前文曾有对世界软件业产业类型的描述。美国的模式,我们现在又缺资金、又缺技术积累,也没合理的产业群落,一时还学不了,以后吧。爱尔兰也没法学,搞20多个亚洲版卖给谁?菲律宾软件产业的增长速度都叫我们吃惊。我们就来看一看印度软件产业,印度产业大部份是外包。我们倒还多了一个国内市场作后院,很占优势吧。仔细来看一看!大家认同的说法是,印度人能拿到外包业务的原因是:官方语言为英语,有语种优势,劳动力成本低廉。当然,还有常提的一句话:中国人和印度人都适合编程,无它,从小重视数学尔。,怎样超赶呢?语种优势?印度比我们强。品牌优势?也没法比。我们比他们跟聪明?还是等这方面专家来解释吧,先别那么想。那就那拼价格吧!我们就打一场价格仗吧!家电业都能打,我们怎么就不行。拼价格那得先降成本,软件的成本主要就是程序员的工资。让一个人均GDP847美元、现有程序员16万人、现在每年培养科班技术人员5万多人的国家跟一个人均GDP300多美元的国家、现有程序员40万、现在每年培养近20万技术人员的国家打人才价格战!当然,我们的认证培训机构能用一个月时间将一文秘专业的MM培养成MCSE技术专家,看来胜利在望!再来看一看我们的后院。据赛迪网(http://www.sina.com.cn 2001/08/13 16:18 赛迪网-中国计算机报 韩雄飞 http://tech.sina.com.cn/c/2001-08-13/5084.html )我们现在有16万名程序员,分布在近6000家软件公司。这么多的软件公司都能活,那恐怕得感谢这几年的信息化热潮。尽管大部分的软件公司都是做行业应用、管理软件的。但一些大型的行业应用软件并不是由本土企业来完成的。比如某通讯公司的网络核心软件就是其印度研究所完成。这也可算中国软件公司。但却不代表中国软件业的真实水平。有人已在冷思信息化的热潮:虽然各个企业之间千差万别,但同一行业的业务流程却有着惊人的相似,行业应用的标准化这恐怕是这类软件的方向。被讥为“做系统缺少资产; 做应用缺少沟通;做信息缺少分类;做工程缺少规范;做管理缺少制度; 做团队缺少组织“的大多数软件公司如不图变,恐怕无力担当这一责任。在印度几头软件大象已经开始涉足中国市场的时候,我们先不要全都忙着打出去吧!我们有什么优势:管理?资金(软件企业的积累)?技术积累?人力成本?
    为了降低软件公司的人力成本,就爆炒软件蓝领?让现有从业人员感到前景迷茫、流失转行?高级设计人才、管理人才真能从课堂上培养出来?就算真能,现有高级设计人才、管理人才位置全给计算机专业科班,哪也还得剩大部分计算机科班,让他们每年交了昂贵的学费,花大量的精力,到最后成为软件蓝领?
    有了所谓软件蓝领就可以跟印度一拼?来一次职能划分就能造就一批高级设计人才、管理人员。他们不编码就成了高级设计人才、管理人员,变的比印度同行更厉害,能带领中国软件业以比印度更低的人力资源成本去抢夺印度外包市场,守住国内市场?10多万程序员熬更漏夜没干过别人的原因居然是没有软件蓝领。咄咄怪事!
    (aka2006愚见:以下写得很精彩,痛快!)
    再来看一看,要的是什么样的月薪在2000元—4000元(北京价位)的蓝领?
    见于2002-04-11北京晚报:基本素质一,是具有良好的编码能力,编码能力直接决定了项目开发的效率。这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。基本素质二,自觉的规范意识和团队精神。企业希望招聘到的程序员编程不一定很快,但是需要非常规范,个人能力不一定很强,但需要合作意识很好。基本素质三是认识和运用数据库的能力,即会使用目前常用的数据库软件,如甲骨文公司的Oracle数据库和微软公司的SQLServer等。基本素质四,较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文。作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。基本素质五是具有软件工程的概念。从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作。基本素质六是求知欲和进取心。软件业是一个不断变化和不断创新的行业,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。
    看看基本素质五:从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作。这也叫软件蓝领。最差也得叫“万金油“吧,连项目需求分析都胜任了。 拿基本素质一来说,至少精通一门编程语言。在极度崇尚自学的IT行业里,不管你是听老师讲授还是看成名已久的大师的著作,还没有听说,光培训就能精通一门编程语言的,没搞一点实质性的东西,连掌握都谈不上。精通?说到这里倒一下子就明白了,这软件蓝领可不是刚从培训班或者学校出来的新手们,就是大部分正在干着的你我他。说着软件蓝领,结果成了薪水划分,倒成了降薪。看来是醉翁之意不在酒。终于扯到这个令程序员们牙痒痒的话题了,那就来看一看我们的高薪。
    (aka2006愚见:一门C++就够你学3个月的了,那才是入门!)
    程序员们的高薪
    刘兴波先生所引用的中华英才网资料,:在15个行业、23类职务中,薪金最有吸引力的算计算机行业,平均年薪44102元。
    只不过http://edu.sina.com.cn/l/2002-03-07/21599.html第四期中华英才薪资指数调查报告显示:在全部34个行业中,电信行业年薪均值以57208元遥遥领先,比上一期又上升了5.8%;快速消费品(食品/饮料/烟草等)取代计算机和互联网跃居次席,年薪达到了48769元;计算机(软硬件与系统集成)和互联网、电子商务,则分别位于第3、4位,达到45276元和44014元;全国薪资均值为39678元 ,电信的57208和计算机行业45276那一个是最有吸引力?按照刘兴波先生后来所言软件业薪水应该一升一降,降的是普通程序员了,升的是管理人员、系统分析员了。这样没有曲解刘先生的意思罢。
    我们就以这个45276的年薪作为普通程序员的薪水来讨论一下了。
    是不错了,毕竟还是第3位,是这样的吗?那就走到这薪水的背后来看一看吧!

    一 程序员的工作强度和职业代价
    天极网邱文宇先生的调查报告显示:许多程序员一周的工作时间往往长达98小时(早上9:00到晚11点)甚至更多,双休日往往是一句空话(在搞品牌产品、功能设备等公司里任职的程序员们,要好得多。笔者的主管是公司技术骨干,被老总誉为全公司里加班最多的人,大部分时候都能正常休假。但中国程序员们大部分都不是此类)。一般的劳动者们朝九晚五,一周就40个小时。程序员的工作时间是普通劳动者的2 .45倍。当然不是所有人都这么加班,既然薪水都以平均值来算,那一周工作时间就算80个小时。薪水简单乘2罢(这当然极不准确,但人很笨,没办法,就乘2罢),全国薪资均值为39678元,那得79356元。还没按劳动法规定加班双薪。要是程序员们按一周40小时算,45276元那是两年的薪水。呕!年薪22638元。高吗?每个程序员都喜欢透支生命吗?对我们现在的个人所得税是真的合理吗?我这里要提醒一下的是,中国现在大部分程序员都是受过高度教育的。尽管我们大多认为高等教育不那么符实,但也不至于越受教育越笨吧。我们当然没有必要把编程说的高深,但一个事实就是计算机科班出身的程序员基本就是计算机水平较高的那一批。当然有因为觉得编程枯燥而不愿干编程的计算机科班,但还有不少人是玩不动编程才不干编程的计算机科班。非科班的我不清楚,但他们肯定不是白痴得学不动本专业了,才跑来学热门的计算机,反倒像谭浩强教授所言冒出了不少高手来。天天都在讲什么知识经济,程序员们熬更漏夜、玩命学习的难道是老掉牙的古董?程序员们每年的书籍、光盘等学习资料是上帝送我们的吗?大概刘先生们还不知道计算机书籍基本就是最贵的了。这是我们全部的职业代价吗?当然还不是!每天端坐在椅子上十几个小时,戏言时时处于运动状态,但主要的运动是呼吸和心跳,由此而产生的肠胃疾病、失眠头晕的职业病这不是夸大其辞吧!当然我们也知道某些记者先生也有职业病:“吃宴吃到胃下垂,喝酒喝到胃出血”。为稻粮谋,得职业病感同身受,深表同情。不过,也请某些记者先生们多点仁慈心。这就是我们的全部职业代价吗?当然还不是!程序员大多单身,这也是事实吧?既然业界少芳草(有几个女性当程序员?)、下班想睡觉。还整天深锁眉头,一脸愁容惨雾,整个一个苦瓜脸,这好像不怨谁。有时候人们看我们就像在看巫师,附上一亲身经历:某日,公司行政部Ms.来办公室公干,看见同事电脑桌面,遂有夸张一叹“阿,你们也喜欢美女”。哦,我们该喜欢刚果大猩猩吗?再转一流传甚广的笑话:三年前有人在广州的大街碰到一人蓬头垢面。目光呆滞的人,会说,看:那人外省民工,现在碰到一个同样的人,人们会说:呀哈,又一个程序员过来了!当然这是笑话而已,并无恶意。再来看看刘先生以及他的支持者们对程序员的评价:缺乏事业心、得了便宜还要卖乖、只知道争财而不知道生财、挑肥拣瘦、民族软件产业发展不起来,这些缺乏责任感的IT人员要负部分责任(比较客气了,不是大部分)。刘先生竟然还把这跟薪水前三名中没有第二产业技术者、社会已经形成了高级技工人员的断层、导致大量财富流失,造成少数人暴富搅在一起。程序员从业人员16万,平均年薪4.5万,这72亿人民币有那么厉害?程序员里有人暴富,谁?指出来给大家指指方向,让大家都发一发,多点中产阶层,稳定阶层结构。如果4.5万年薪叫暴富,你得叫Gates为God了。刘先生屡屡提及社会责任、软件业的民族精神,给我们树了一个道德高标。先生之风,山高水长。五体投地,五体投地。只是怎么老对没有话语权的程序员们讲这些。记者居然说起程序员们寡廉鲜耻了。有趣,真有趣,真他妈有趣。主宾错位了吧!我倒有个建议:让基因专家和人类学家来研究研究程序员,看看那帮在校时学习刻苦、醉心技术,经常秉烛夜读、痴迷编程,工作时熬更漏夜的家伙在经过每天十几个小时的CRT辐射之后怎样发生基因突变,变得缺乏事业心、得了便宜还要卖乖、只知道争财而不知道生财、挑肥拣瘦,寡廉鲜耻,到最后竟然好象要去喜欢刚果大猩猩的了。
    二 程序员的职业寿命

    程序员是个吃青春饭的行业,这一点至少在中国成立。招牌广告上大部分都要求年龄在30岁以下的。仁慈一点的也就35岁!据说,在美国40多岁至50岁还编程的不少,还被当作大师级的人物。这倒也不怪我们不尊老,唯好幼。这跟中国软件业在全球产业链的位置有一定的关系,跟管理水平也有一定关系。美国大部分软件企业是搞大型系统软件、服务支撑软件的,产品有延续性,而且那种工作也不是随便找楞头青就能干好的,所以,在一定范围内,反到是老而弥香。而中国大部分软件企业都是从事管理软件开发的,别人出了新东西,那你就得紧跟着学。你刚玩一阵子VB、Dephi,Java、c#又冒了出来。你倒不想学那么多,客户要、老板逼、你不学?刚毕业时尚可,到了30岁成家之后你还能秉烛夜读, 跟刚毕业的那帮年青人一起加班加点吗?没法。你当然有技术积累了,但大多数时候给老板带来利润的不是靠技术。这也没法怪你老板不要你。这种风气已在行业内风行,你又能奈何。原vchelp.net作了一个发展方向的调查,系统分析员和项目经理以11698对4148远超开发高手。这又哪里能怪他们浮躁,毕竟人活着都得吃饭,付出的多,也就期望回报多。我要提醒一下,这里后一个发展方向是开发高手,你要是想调查有谁想当软件蓝领,那得麻烦你自己去投那开创性的一票了,争取前无古人后无来者。你要是到了30岁没有作上系统分析员、项目经理,又当不成程序员怎么办?自己找10台电脑、七八条枪自己当老板?可现在就有6000多家软件公司了,而且你要是当程序员的话,有没有那么多钱开公司倒还是个问题。等你到了30岁时,才发觉自己钱没比别人多挣多少,人却成了一个没味的老屁!你以前所鄙夷的不务学业、专好交游、上下其手的同学,现在倒成了精英人物,八面来风。就是你那踏踏实实干其他行的同学恐怕日臻佳景了,正处于黄金时期。你想转行,你那封闭的技术圈子又哪能给出什么康庄大道。而人却因为长期性对一个冷冰冰的电脑念叨些专业问题变得木木讷讷(你要是面对冷冰冰的电脑十年,竟舌灿莲花,滔滔如河,那倒真是基因突变了)。要是你恰好有一点演戏天赋,那你倒可以去抢葛优的饭碗了。恰好身体单薄,脸颊消瘦,人未老、顶先谢,憔悴忧郁。否则的话,那倒真是“生死中年两不堪,生非容易死非甘”,慢慢痛苦吧!哪象而立之年的记者八面玲珑正当行,上可发慷慨激昂、振奋人心之言,下则出循循诱导、沉毅博雅之论。身宽体胖,面泛红光,可作中国人民生活大大改善之佐证,外可示国威、内则服民众。我们吃青春饭,发后半辈的薄财,倒有人说我们薪水过高,上窜下跳、得为中国软件业发展不力负相当的责任。早知今日,何必当初。那倒不如早图归去。我不止一次听人说想转行去开火锅店。吾等小民,财单势弱,开不动火锅店。但效仿台湾蔡学镛先生《程序与香鸡排》所言。去搞一个烧烤摊还是可行的。根据在校时的观察,收入肯定超过软件蓝领了。反正都叫蓝领了,还有什么忸怩不安的。我毕业前曾跟同学戏言:找不到工作就去卖烧烤。现在干着已后悔了。你要是在原来的大学旁卖烧烤,也许学弟学妹们,出于戚戚之心会对你格外照顾。至于你喜欢编程,那好办,没事时随便编点什么都行,自给自足。特别是给老婆编个管理软件,管管钱财。随便给自己留个后门,截留点资金,充实小金库,多好!只要你不让中国顶级程序大师食物中毒并经抢救无效含恨辞世,你就不会背负耽误中国软件业发展的恶名。要知道,对中国程序员们那羸弱的躯干而言,耽误中国软件业发展的恶名是生命不能承受之重。
    三 中印程序员薪水比较

    刘兴波先生借网友之口而言:就软件程序员或系统设计师来说,同样的职位印度人往往要比中国人稳定、有成就。有报道说印度程序员的收入也不上很高,换算过来是3000-4000元的月薪,项目经理是4000-5000元。这组数据被引用极多,看来是大家都认同这组数据了。并由此得出中国程序员们拿了差不多甚至更高的薪水却不老实工作,还上窜下跳。只不过我得提醒一下,印度是一个人均GDP300多美元的国家,而中国人均GDP847美元,中国的软件业大多集中在北京、上海、深圳等大城市。而拜改革开放之赐。这些城市的消费水平也接近发达国家。我不是经济学家,不会按相应模型来转换。记者先生们都见多识广,应该会的,但好象不愿给我们算。那我就乘个847/300吧,那应该是8400-13200元。我还听国内某通讯公司的先生到印度去时,与他合作的项目经理告诉他,他们的效率是300行/人月,每天还能按时上下班。我们的软件蓝领要真是这样,我想中国大部分程序员都会三呼愿意了。我也见过其他的关于印度程序员的报道,说是他们的薪水是当地人的10倍。进入外企会更高。我孤陋寡闻,还没有听说中国国内程序员有要价是当地人的10倍的。当然上面的算法过于简陋。看看精于此道的资本家是怎样算的。《商务周刊》曾报道印度最大的软件公司TCS在华投资。其总裁庞德一再强调,中国的人才与软件的开发成本实在是太有诱惑力了,劳工成本低廉,开发软件程序的成本将比印度节约20%。这个人均GDP才300多美元的国家到我们这里还能说劳工成本低廉,开发软件程序的成本将比印度节约20%!当然我得提醒你开发软件的主要成本就是程序员的薪水。可是我们低的还不够,我们还有领!把我们的衣服剥掉罢,我们只穿内裤,够了吗?

    什么阶层说什么话。我是程序员,我不否认我站在程序员这边说话,尽管还没有同行加代言人封号于我。我真心希望中国的软件业能成世界霸主。我想提醒刘兴波先生,软件开发毕竟还是一种脑力活动。这是一个对士气要求极高的行业,这毕竟跟流水线上的工人不一样,还得发挥一点主观能动性。要是士气高昂,则可通宵达旦来解决问题。要是士气不佳,能干好的也干不好,成为屎。我想提醒一下刘先生,在专业站点上大发牢骚的大多是国内软件企业更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • 程序设计师真情忏悔录
        本文发表在 rolia.net 枫下论坛王森:程序设计师真情忏悔录(修正完整版)
        (2002.04.20) 来自:CSDN





        不卖鸡排也可以 - 程序设计师真情忏悔录(修正完整版)



        升阳计算机教育训练中心 王森

        moli0205@mail2000.com.tw



        前言:

        不久前,蔡学镛先生发表了两篇分别叫做"程序与香鸡排","再论香鸡排"的文章,受到的回响之大,据说连作者本人都接到该文的转寄.足以见得该文的内容道出了台湾程序设计师心里最深处的想法.所以,本文想针对台湾程序设计师来做讨论,看看身为一个程序设计师,究竟犯了什么过错,导致大家宁愿卖鸡排也不愿再继续写程序.璩美凤小姐为自己惊动台湾社会的行为写了真情忏悔录,我们也该真诚地检讨一下自己.



        注意:

        本文内容提及"程序女工"与"数据库女工",并没有对女性IT从业人员不敬的意思,

        这些用语只是用来描述"长期从事相同且单调工作的人"的意思.请女性朋友勿介意.



        另外,本文也并非歧视"长期从事相同且单调工作的人",这些人都是台湾经济奇迹的幕后英雄.本文只是单纯检讨程序设计师身价低落的主因,并提供主观的解决之道.本文的检讨主角锁定为"专门写程序"的程序设计师,请勿将其它高阶角色的

        IT从业人员和本文内的主角混淆.





        本文:

        在台湾,大部分的人都有个认知,就是"搞硬件的比搞软件的要好赚","做SA/SD比coding地位要高".那些做ID Design的家伙待的公司所发的股票,永远比搞Software Design的人待的公司发的还多,股价也高出好几倍. 搞SA/SD的人,在公司地位好象也比单纯写程序的人高.于是我的父亲有一次问我:"是不是搞硬件的人智商比较高?","是不是搞分析设计的人比较有地位?"



        事实上,在学生时期我就认识不少人,有的人因为程序写不过别人,所以转换跑道专攻硬件;也有人觉得每天面对示波器和逻辑分析仪让他们头痛,工程数学也学不过人家,所以转行搞软件.到了实际上面对许多前来接受教育训练的学员之后,发现有人是因为写了十几年BIOS和driver,觉得乏味而没有前途,所以想试看看应用程序的开发;有人则是因为受不了客户每天改需求,而且写BIOS和driver的人好象比较少,价格比较高,因此想学习如何撰写系统软件. 询问那些上高阶课程的朋友,有的人发现自己只会胡做SA/SD唬烂老板和客户,所以希望重新打好基础,从基本的coding做起;有的人则因为写程序写太久,觉得应该往上走向SA/SD的路子,毕竟老了程序就写不动了.



        这个世界上什么样的人都有,绝对不能以小现大.就很像搞政治的老是骗我们台湾只分成外省人和本省人,搞帮派的人告诉我们警察是带着枪的流氓.实际上,每个族群大家在没有被分化之前都相处的和乐融融,而虽然有警察掳妓勒索,上班时间跑去聚赌,但是也有开我们罚单时酌情轻罚的警察,和保护我们身家性命的警察.



        即使如此,身为一个程序设计师还是要问,那为什么写程序的好象地位就是比较低?笔者认为,这是进入门槛的问题.会做相同事情的人多了,会会削弱那样技能的价值. 就很像考过MCSE/MCSD证照的人,通常比起考过SCJP/SCJD证照的人要来的没价值,前者因为考过的人实在太多,而后者考过的人少,仅是如此而已.但是绝不是代表考过MCSE的人素质就比考过SCJP的人要差,也不代表考过SCJP的人实力真的比较高段.



        相信求学的时候您一定遇过一种人,他实力也不怎样样,可是考试的时候他x的就是考的比我们高,怎么我们心里就是不服,可是大多数老师偏偏就是比较喜欢分数高的学生.



        因此,满坑满谷的人自称会写程序,老板不愁找不到可以做project的人,你要求的薪水和价格很高? 没关系,找个学校刚毕业的小子,写的比你快,写的比你好,用的技术比你新,更重要的,价格比你这个老屁股便宜一半.所以程序设计师在雇主心中的地位日益低落,自然有迹可循.



        那么,为什么写程序这个行业的进入门槛比较低???



        在各位信息从业人员的身边,非科班出生的比率非常高(当然没还卖鸡排的高),

        科班出生的学生,搞不好在老板眼中的地位,还比不上一个半路出家的自学者. 那位自学者靠着自己的天份,学会SP,JSP,PHP,C++,C+,Java,Linux,Windows,Oracle...等,十八般武艺样样精通.而我们科班出生的学生,只会离散数学,数据结构和算法,Visual Basic搞不好用的没人家熟,网站的架设搞不好也没人家熟.更何况科班出生的学生,他的基础学问搞不好根基也不扎实(问看看您身旁的科班学生,和现在大多数灯红酒绿的大学生),难怪最常见的就是很多非科班的"高手"看不起科班的学生,觉得他们无三小路用,连个Windows操作都比他们差,Word也没人家会用,甚至还常常听到某些人大言不惭的说:"我这辈子写程序从没用过书上的数据结构和算法,读那些干啥?". 长期下来,科班的学生也开始质疑自己的所学,甚至考虑转行.

        当然也有曲高和寡,孤芳自赏之人. 但终究阳春白雪还是比不上下里巴人,这个世界上能够看清现况的人毕竟是少数数. 总之,没办法受到老板垂青,薪水永远那么少,想卖鸡排的念头就开始萌生.



        之所以会有这种情况,笔者个人认为有两种主要原因,一是技术的流通性,二是台湾软件市场的需求.



        为什么技术的流通性可以产生大量半路出家的非科班生? 这都要感谢台湾大量作者,写出大量的入门书籍,大幅减低的进入程序设计领域的门槛. 即使在各位眼中,繁体中文的烂书很多,而且比例多的惊人.但是,大家眼中的烂书,常常是再版多次的入门书,对某些人认为是垃圾的东西,常常是另外一批人进入信息业的最佳踏脚石. 不信各位到书店看看,是"24小时学C++","快快乐乐学Java"的书比较多,还是"轻轻松松学微分方程式","21天学复变","电子学不求人"的书多? 两者的差距是 N:0. 是微分方程式和复变比C++,Java难学吗? 笔者两个都学过,至少我可以发誓,就一个有基本学习能力的人来说,难度是一样的,学成所需要的时间和功夫也是一样的.



        但是,别忘了,最大的问题也是在此. 如果有人可以轻松的就学会别人辛苦学成的学问,那么那些身处信息大厂那些年薪是我们数倍的优秀程序设计师是白混的吗? 我们承认这个世界上有天才,但是,人家以是经过努力再努力.不努力的天才,顶多就像周芷若使出的九阴白骨爪,只徒具形式,不具威力.拼爆发力可能没问题,但凭内力硬干的时候,只就只能像铁掌帮裘千刃的双胞兄弟一样躲躲藏藏.虽然可以勉强唬过老板和不懂的人.但是你永远不会进步. 这种"浅碟文化"在我们的周遭有太多例子.



        再看我们的公开讨论区(BBS或Web Forum),我们可以看到大量的软件技术讨论区,却看不到硬件技术讨论区(喔!请别跟笔者说那些每天问哪家主机板比较好,哪台烧录器较稳定,或者说CPU时脉越高速度就越快越好,或是说x86的Out-Of-Order Executon是"故障执行" 这一类浑话的讨论区和我说的硬件技术讨论区是一样的).



        书籍和讨论区促进知识的流通,造成了大量的软件人才,更何况,学习设计软件只要一台PC就能写出好用的软件,而学习硬件设计,需要的设备更是天价. 更重要的一点,就是学软件的人,充分发挥儒家分享的精神,只要不是在BBS上冒充小妹妹想要骗取大哥哥的同情来帮你写程序作业,只要不是很差劲的乱问一通,通常至少会有热心人士愿意留下一个URL,让我们可以找到参考文件,更具热诚的,如新竹师院BBS站Java版的TAHO先生,还擅长用很多生动的比喻让初学者体会技术的真义. 在这种知识充分流通的环境下,当然产生出非常多的信息从业人员.



        每一台PC,上头各种软件的需求是无穷无尽的,每天都有各行各业的人需要各种软件,所以程序设计师的需求有一定的量. 难怪有人说:"写程序的人饿不死,但是也不会发大财)



        再来就是台湾软件市场需求所引发的问题.



        一般我们把软件分成系统软件(System Software)和应用软件(Application Software). 编译器,组译器,除错器,操作系统,驱动程序,都是属于系统软件的一部分.台湾除了硬件厂商,IC Design House之外,甚少有撰写驱动程序的需求. 前几年Linux被炒的热时,也有许多高手投入操作系统,编译器以及简化标准函式库的研究.而台湾所需求的软件,极大多数是属于应用软件,这些需求的应用软件其中很大比例是和数据库有关系的(其实不只是台湾,其它地方也是约略相同的情形).

        所以VB,Delphi和PowerBuilder这类IDE大行其道,因为他们容易上手,可以快速开发数据库应用程序,相关入门书籍很多,会的人更多. 因此符合我们前面所说:"会的人越多,价值就越低"的理论.



        但是别忘了,系统软件有部分是偏向应用软件的,比方说开发软件用的JBuilder和Visual Studio;制图用的AutoCAD;一套IC Design用的Xilinx或Altera;做OOA/OOD的Rational Rose和TogetherJ, 笔者习惯称这些软件叫做"软件的软件"(Meta software). 在一般程序设计师眼中,这类软件"理所当然"地认为都是由国外所发展.要发展这类软件有极高的进入门槛,所以国外这类软件公司的获利率很高,该公司的程序设计师可是身价非凡. 要知道,先前在媒体上有报导过,能够让Microsoft买软件来用的公司,只有Rational Rose(当然,不可能只买Rose来用). 如果做IC Design的人没有你的软件就没办法做事,身为一个程序设计师,你会觉得你的身价和地位比做IC Design的人低吗? 如果你做的软件像SoftICE或DriverWorks那样被做硬件的工程师大量地倚赖,你会觉得搞硬件的人比你厉害吗?



        问题是,知道该如何设计一套这类软件的人,恐怕才是真正的异数. 而且需要跨领域的专才.要不是许多OpenSource的project(例如:KDeveloper)正在进行,恐怕很少人知道该如何设计一套IDE. 既然会制作这类软件的人在台湾少之又少,那么他们的身价高吗? 很抱歉,台湾地区没有公司发展出足以和国外大厂竞争的开发工具. 举IDE为例,台湾早期有家公司开发出一套名为DBtools的产品勉强可以算的上是这类产品,旗标也曾为它出版过入门手册,可是使用这套软件的人好象...没看过(如果该产品有不错的占有率,请原谅我是井底之蛙),没有市场,公司无法赚钱,即使你是少数能做制作某类型产品的高手,公司最后关门大吉了,您也只能算是"少数能让公司赔钱的程序设计师"罢了.所以我大胆假设, James Golsing或

        Anders Hejlsberg如果学李敖一样50年不离开这个小岛,大概早饿死了.



        以上的讨论,真正优秀的高手看了之后,或许会产生有时不我予,不得已必须远渡他乡的想法.程序设计师的价值就如同书的价值一般,台湾地区和国外有不同的看法.台湾地区教科书比较便宜,应用的书比较贵.国外教科书比较贵,应用的书比较便宜. 国外重内容,薄薄一本How Debuger Work可以卖44.99美金.而台湾,都是看页数来计价(侯俊杰先生的书有努力在打破这个页数的迷思,也做的蛮成功).有很多原因导致这两种文化之间的差异,但是,市场因素肯定是其中重要的一项.



        程序设计师价值低落的原因我们讨论过了,如果您同意笔者的论点,那么不禁疑惑,大家彼此毫不保留地让知识得以流通,技术得以扩散,本意是好的,结果反到造成自己和别人身价的低落,这样我们是不是从此不再和别人分享我们的心得会比较好?



        TAHO先生看过本篇上半部之后,发表了底下内容:

        --------------------------------------------------------

        发信人: TAHO.bbs@bbs.nhctc.edu.tw (痴人)



        > 哈 恭喜TAHO兄上Java周报了...

        > 通常至少会有热心人士愿意留下一个URL,让我们可以找到参考文件,更

        > 具热诚的,如新竹师院BBS站Java版的TAHO先生,还擅用很多生动的比喻让初学者体会技术的真义。



        @@".....

        光看这一段 好象是褒奖

        不过看了整篇文章...

        突然发现......

        原来我是让程序设计师不值钱的凶手之一....

        真是罪该万死啊....

        --------------------------------------------------------



        但是mue先生接下来的发言,说却命中本文真正的核心价值观:



        --------------------------------------------------------

        发信人: mue.bbs@bbs.im.tku.edu.tw (闲人)



        : @@".....

        : 光看这一段 好象是褒奖

        : 不过看了整篇文章...

        : 突然发现......

        : 原来我是让程序设计师不值钱的凶手之一....

        : 真是罪该万死啊....

        不会啦..要是每个程序员都死守自己所会的..让所谓的专业门槛更高的话..就很难进步了..就是让本来难的变简单..自然就会有更难更深入的东西出现..这样社会才进步的快丫..

        --------------------------------------------------------



        做应用软件的人真的没价值吗? 有些靠应用软件赚了不少钱的朋友开始偷笑了.软件必须加上专业知识,才能够发挥价值. 换句话说,如果您真的只会"写程序",

        却没有配合各种领域的专业知识,"写程序"这项技能本身根本毫无价值可言.

        就很像你的计算机装了浏览器,可是却没有对外联机的网络一样,如果没有网络本身,浏览器一点价值也没有,更不需要一家公司大费周章地利用平台优势去整倒另外一家公司.



        我们可以把程序设计师比喻成架子上满满的信息相关书籍,而顾你的老板就是前来买书的读者.你不能否认这么一堆书里头,有好书,也有烂书,你也不能否认你心中的烂书是一本书,你更不能否认书里面教你如何写Java程序的内容是错的.可是,购书的读者压根儿根本觉得某几本书一点价值也没有.



        我们只能说,太多只会"写程序"的程序设计师打烂了市场,就像一牛车的烂书一样,你不能说烂书没有价值,可是烂书会让你对架上其它书籍的价值大打折扣.除非,你之前看到别人口耳相传这本书是好书.大家或许不相信"只会写程序"的程序设计师存在于这个世界上,所以笔者举个简单的例子说明之:

        很久以前, BBS上有人发表了post,内容大该是说某公司在整理旧的程序代码时,

        发现了一则奇文,奇文内容如下:

        ---------------------------------------------------------------------------------

        //底下是一个判对某个整数是不是奇数的程序代码

        public static bolean isOdd(int n)

        {

        while(true)

        {

        if(n==1) return true;

        else if(n==0) return false;



        n=n-2;

        }

        }

        ---------------------------------------------------------------------------------

        您说撰写这个程序代码的人不会写程序,他又好象会写,

        你说他会写程序,你又不服气,觉得这个家伙根本在胡搞一通.看过这则奇文轶事之后,当您下次听到某公司抱怨他们的程序设计师做出来的软件一堆bug,速度出奇的慢,产品永远卖不出去,害公司快经营不下去了,所以他们认为程序设计师一点价值都没有,只是一堆劳碌命的杂碎时,您会不会更加怀疑,是一堆莫名其妙的程序设计师,把你的行情给搞烂了?



        所以从今天开始,如果你对程序设计有一股热爱,那么我们一起努力,做个真正的程序设计师,而不要做一个破坏别人行情的程序设计师.做一个真正写的出有用软件的工程师,不要做一个只会写程序的程序设计师.当然,如"意外的计算机王国 / 联经出版社"一书所言,很多技术都是用来原本没有预料到的地方而大行其道.许多科学研究无法有立即的贡献,但是影响深远,我们也期许有意从事基础研究的科班研究生,认真的作研究,不要老是研究一些别人已经研究过的研究,不要老是冀望骗国科会等研究机构的经费,到了最后计划结案时,才匆匆忙忙交出另外一篇骗更多钱的计划书,或是拿不出台面的研究.



        最后,我们反省自己是不是也是一个只会"写程序"的程序设计师呢? 请自行测验底下几个问题,这些问题都不可能有客观的答案,所以每个问题都附上笔者主观的答案,作为笔者自己的反省.



        Q1: 你尊重专门技术吗? 换句话说,你认为术业有专攻吗?

        当你接受外面的教育训练课程时,你总是崇拜看起来什么都懂的老师?

        换句话说,你认为那些遇到课外问题就跟你说他不懂的讲师是烂老师?



        你老觉得真正的高手应该精通各门各派的技术,如果你会XML,他不会,你就觉得你比他厉害.你觉得他的履历上写的技能太少,证照太少,所以你认为你比他优秀?



        有人老是觉得自己蛮会用MFC开发软件,所以直觉认为那些只喜欢,或是只会用VB的人程度应该不高.问题是,有人用VB的程度是,当他觉得组件不好用,所以自己写程序处理HTTP,因为他懂HTTP协议的运作方式.组件盘里附的浏览器组件太烂,就自己用公认语法不是很顶尖的Basic语言来写parser.

        相反的,有人号称会用MFC,但是除了靠Help找出名为Cxxxxx的类别来用,再

        自己补上事件处理的部分之外,其它什么事都做不出来.



        有人认为写Java程序应该善用工具,用UltraEdit根本是重新造轮子的行为,所以一开始就学JBuilder的使用,其实他用JBuilder写了老半天GUI程序,哪天回头叫他用文字编辑器写个简单的Frame + Button, 他却写不出来,因为他从没弄懂过Java的事件处理模型. 他只会不断地: 选择组件->放在容器里头->调整位置和大小->调整属性->按两下->填写事件处理函式,

        成为一个名副其实的"程序女工"(再注:女工纯指"经年累月从事重复单调工作者",没有歧视女性的意思).



        有人觉得他精通各家厂商的数据库,所以看不起那些只会下SQL指令或是只会写store procedure的人, 因为这个人精通ODBC, JDBC, ADO, ADO.NET各种程序的写法.问题是,一个精通SQL的专家和只会写SQL指令的人,在数据库表格交互参考,资料量很大的时候,要从中取出我们需要的资料,所下的指令在效率上是几秒钟和几个小时的差别. SQL也是个专门学问,要能够巧妙的操作它,必须下非常多功夫做研究,而且一研究可能就是十几年才有办法累积丰富的经验. 如果贵公司的项目老是苦于数据库存取的效能不够,你猜老板会花钱找一个有能力彻底改善所有SQL命令之中效能问题的稀有专家,还是再找一个号称他什么都会,结果一点用场也派不上的"数据库女工" ?



        我们常常看到某人列出他的履历,好象会很多就是很厉害.但是当我们完全深入

        一项技术时(喔,我是说你真正下工夫的时候),通常我们会越来越感觉到自己的渺小.



        蔡学镛先生就是一个非常尊重专业技术的例子.

        我们看到他在 CSDN专栏(http://www.csdn.net/expert/cxy/ )上写的,他说他只精通 lots of Java APIs.我和学镛聊过三次,有一次,我听他说:"干麻叫我搞Linux,我又不懂Linux!" 如果是你听到这句话,你会不会真的以为他玩起Linux来肯定比你逊色?

        笔者突然想起神雕侠侣里头的独孤求败,晚年只会拿树枝和别人比武,可是你拿再厉害的刀剑就是无法打败他.

        所以,请尊重专业技术,不要以为人家没说他会,你就比他厉害.真正厉害的人很多都不在台面上,而是躲在后面偷偷笑我们呢! 而我们一辈子永远不知道我们被别人偷偷取笑了.中国文化数千年来都是文人相轻的历史,够了,大家尊重专业吧!



        Q2: 你觉得算法和数据结构无三小路用,因为你从没使用过?



        我们承认"无招胜有招"是内功心法的最高境界,但是在信手拈来之际,后面所代表的是对各家武功路数的彻底了解.由于台湾几乎只有应用软件的开发需求,没有系统软件的需求,所以大多数的程序设计师都是站在"程序女工"的角度看世界,只要有钱,只要有人贩售组件,有什么搞不定的.

        但是今天如果你想设计一个XML parser,不懂数据结构和算法可以吗?好吧! 你说我们不该重新造轮子,我们应该站在巨人的肩膀上看世界,如果什么都自己硬干,世界是会退步的. 那么试问,当你在使用Java提供的Collection Framework时,你了解ArrayList, LinkedList, TreeSet, HashSet之间的差别吗? 你知道他们的优缺点吗? 你知道他的特性吗? 不了解ArrayList和LinkedList的差异,用哪种去写程序执行结果都一样,可是效率差很多.



        大多数的人连了解特性都谈不上,更别说很多每天想发展自己的语言,自己的编译器,自己的操作系统的人,没有基础学问的了解,如何去设计一个Collection Framework或STL?

        你说数据结构和算法没有用,你去做看看现在IDE中普遍有的code insight功能看看?以Borland C++ Builder来说,要在短时间内搜寻所有的标头文件并找出某函数的prototype,如果没有对数据结构和算法有充分了解,一样做的出来,只是产品会卖不出去罢了.



        我在课堂上常常举一个scalability的例子给学生看:

        我希望写一个1+2+3 ... + 100的程序,如果撰写此程序是你的工作,大多数的人都是写成:



        int sum = 0 ;

        for(int i = 1 ; i < 101 ; i++)

        sum = sum + i ;



        而真正受到数学观念熏陶的人会写成:



        int sum = 100*(100+1) / 2



        前者的复杂度是O(n),后者是O(1),当项数很多时,运算时间是不是差很多?这些都是我们的教育所产生的问题(当然笔者也是其中一位受害者),老师只叫你写好作业,助教只叫你run出正确的结果,认真一点的还会测试你是不是抄来的. 却从来没告诉你程序中不能只有一个main函式,程序代码不能第一行写到第一千行从不切割成其它子程序. 你的程序代码看起来不堪入目,老师助教从没告诉你,你的.class檔被decompiler反编译之后,长的比你写的还漂亮.但是从今天开始,我们可以开始认真思考每行程序,不要再做一个拖累其它人行情的程序设计师.



        试想发展MP3算法的人和写WinAmp的人,哪个比较厉害?

        你会说都很厉害,可是没有前者就没有后者,前者搞不好还可以坐收权利金,后者只能苦哈哈的赚些小钱或等人购并. 我们停留在崇拜应用程序技巧的阶段,而真正值得崇拜的是那些难得一见的创意.



        笔者遇过一个朋友,叫他撰写一个费式数列的小程序,比请他写一个可以浏览数据库表格内容的程序还难.(请不要与我讨论费式数列的小程序没有实用价值的问题,这里讨论的重点不是这个)前者需要稍微动点小脑筋,后者只要会拖拖组件,设定property就搞定.

        RAD本身不是罪,但是没学好九阳神功就妄想几小时练成乾坤大挪移.最后只会走火入魔而死,彻底变成一个"程序女工".





        Q3: 你常常以科班和或非科班自居?



        你是科班生,瞧不起非科班生? 因为你是正统?

        你是非科班生,瞧不起科班生? 因为你觉得会的东西比科班生的还多.

        烂学校会出现好学生,好学校也会有烂学生.

        因为比例一样多,所以我们不能以偏概全.



        如果仗着受过几年正规教育,自己又从未好好深入学习,就自己为是正统,比较学术的说法这叫做"阳具文化".有些创新的idea是一般制式脑袋的科班学生很难想出来的,因为专家是训练有素的狗.如果你是学电信的朋友,你发现交换机是一个葬仪社的老板因为生意被别人抢走而发明的,那你会不会气死?



        如果自学有成的程序设计师仗着自己会的东西比较多,你说你精通Java的各种技术,你看不起从没写过JSP的科班学生.

        但是有人告诉你发展Java的James Golsing博士是一个正统出生的科班生,知道了这件事情,会不会让你更加尊重幕后认真打拼的科班生?



        Q4: 你是学计算器科学的,可是逻辑能力并没有比较好,还常常受骗?



        你会被潮流所鼓动吗? 你常常被别人的思考牵着走?人家鼓吹Linux多好多好,你的脑袋连转都没转过就发愤努力地考Linux认证 ?

        -------------------------------------------------------------------

        别人把公司里的server全换成Linux,客户端也都改成Linux,公司仍然正常地运作,结果你学了Linux之后,看到电视上BSA同法务部做的广告仍然吓的你冷汗直留. 深怕明天去住套房.



        Sun跟你说Java跨平台,你没试过也跟人家说跨平台的优点?

        ---------------------------------------------------

        Borland已经可以做到一份光盘里同时附上Solaris, Linux, Windows, MacOS X的JBuilder,你却为了EJB无法deploy到不同公司的Application Server忙的像无头苍蝇.



        之前一窝峰人鼓吹XML,结果你盲目追求流行,做出来的东西tag比data还多?

        -----------------------------------------------------------------

        会用的人彻底了改变了公司里资料交换的流程,而你整天只会SAX来,DOM去的写XML数据库(用XML来储存资料的数据库)



        微软的广告告诉你XP和IE将不支持Java,你都还没试过就跟别人嚷嚷Java已死?

        --------------------------------------------------------------------

        套句BBS上moga先生的名言:"那我现在在Windows 2000上跑的Java程序是神迹?"



        现在一票人每天宣传web service的好处,你连想都没想过就急着想要把公司的旧系统全部改成web service来做,结果浪费一堆钱,糟糕的速度让你每天被客户臭骂 ?

        ----------------------------------------------------------------------

        Web service当然是美好的前景,但是并非适用于每个角落,目前世界上并不存在完美的solution.



        人家说不能写程序一辈子,写程序的人生命周期很短,你也跟着别人开始往SA/SD前进 ?

        ---------------------------------------------------------------------------

        如果世界上每个工程师都可以经由经验就成为优秀的SA/SD人员,那么理论上咱们应该有些象样的软件产品才对. 有些人写了几十年,还是一个优秀的程序设计师,你问问他,如果没有遇到糟糕的老板,糟糕的待遇和糟糕的制度,他愿不愿意写一辈子程序? 我愿意.



        顾问告诉你要多用RAD,不该重新造轮子,所以你努力的问how而不问why ?

        ---------------------------------------------------------------

        结果真正赚到钱的都是那些像JReport做软件组件的软件公司.



        微软说J2EE Blueprint的Pet Store,用.NET技术做比用J2EE做还要快许多,然后你就相信了,最近, IBM和Oracle重新加强Java版的Pet Store,让它比.NET版的还要快18%~22%,你又改口说Java比较好.

        --------------------------------------------------------------------------------------------

        一个系统在设计的时候有很多考量,有人以扩充性为主,有的以安全性为主,有人以效能为主.

        如果没有设计理念,大家程序里头的function全部改成inline就好了,管他编译出来的执行档有多大.

        系统只以效能做考量,我们还需要Design Pattern做什么?

        那些王八蛋数据和我们选举时的民调一模一样...对一个脑袋清楚的人完全没有参考的价值.

        当然,以情感因素来看民调的人例外.



        如果你没有经过自己的自主判断就盲目的跟随潮流,那么下次当你看到有人排队买米酒,买蛋塔,抢购卫生纸的时候,请不要投以排队的人们奇怪的眼光.



        Q5:你尊重老前辈吗?



        我们都相信,世界上唯一不用努力就可以获的东西就是老.

        所以吃过的盐巴比你吃过的米还多的人,没有任何值得尊重的.

        我们更相信,信息业永远是年轻人出头,而英雄少年也常在心里想:

        "李杜诗篇万口传,至今已觉不新鲜,江山代有才人出,各领风骚数百年."



        但是我们认真想想,从Apple 2的时代到现在随便一颗CPU都是1 GHz的时代,

        计算器的本质有什么改变吗? 不就是一台不断对内存作处理和I/O动作的机器.

        你笑那些只会用Fortran或COBOL的老前辈,那你学的Java或C#比起这些老语言又高明到哪里去?

        写程序不过是 宣告,循环和函式三大要素.时间久了,产生了一堆新名词,配上一些新的发展理念但本质上没有改变.

        如果你是推倒前浪的后浪,当你看到李维先生撰写的 "[长篇] 我的回忆和有趣的故事"或侯捷老师最近两期在Run!PC撰写的"侯捷观点"这些老前辈写的文章,你有把握写出比它们更高明,更有深度的东西吗?



        最重要的问题,

        Q6:你骗过老板吗?



        你在履历上写的十八般武艺样样精通,结果是梧鼠技穷(注:比喻技能虽多,而不能专一),一录取之后什么东西都做不出来,笔者至少听过20个老板跟我讲过这件事情.你以为你的身价比较高,只因为你从事"软件研发"的工作?

        然而现实的生活中,"获利"是真正决定成败的关键.除非你的东西帮老板赚了钱.

        如果没有,你凭什么要求更多薪水,凭什么要求50张价值数千万元的股票?如果你写的东西品质很差,bug超多,客户抱怨不断,老板赚不到很多钱,你还老是在外头痛骂老板不尊重技术人员.如果把行业换成色情行业,那老板不就等于被干洗? 这样看来,程序设计师和詹惠华(黄显洲3P案女主角)干的事情有什么两样?如果这样的杂碎程序设计师太多了,真正要去卖香鸡排的,不是写程序的人,而是雇用了这些杂碎的老板才对. 不过很遗憾,真的很多软件公司的老板要改行了,鸡排太多人卖了,我建议某位感同身受老板写篇"程序员的老板与蚵仔煎",请踊跃投稿.更多精彩文章及讨论,请光临枫下论坛 rolia.net
    • 写的倒是比较有理,但是条理不太清楚:(( 看的晕@@
      • 我把几个帖子并到一起了,但是帖子之间留了白的呀,应该没什么问题吧
        • 软件工程师的寂寞心事
          本文发表在 rolia.net 枫下论坛台湾软件工程师的寂寞心事
          (2002.05.15) 来自:CHEERS杂志 卢智芳




          晚上九点,新竹科学园区的下班车流仍然穿梭不息。「就算到十一、二点,还是很多人,」望着绵延车灯,联测科技品保工程师陈立仁感叹地说。

          因为怕塞车,陈立仁每天早上六点多就出门上班。一天待在公司十二小时,对他是稀松平常的事。

          园区,一个不夜的工作城。八万五千人聚集在五百公顷的土地上,前年,平均每人创造出六百万台币营收,是全国平均值六倍,整个园区去年产值六千五百亿台币。在这里,日夜交替只意谓着接力棒换手,与时间竞争的赛跑却分秒必争。

          在国际舞台,他们跑出台湾的竞争力;在别人眼中,他们是科技新贵。这令风城聚焦世界目光的族群,财富让人欣羡,生活引人好奇。

          只是在耀眼光环下,却很少人真切看见他们的心情?「就连感到寂寞,也是一种奢侈,」一位园区工程师形容。因为在这里,工作步调快得让人根本没空停下来喘息。

          美丽荣景下的冰山一角
          没空喘息,因为不容许。

          如果要用一个最简单的词汇就能抓住园区的氛围,那一定是竞争。整个园区就是个高科技竞技场,竞争的对手不是隔壁同业,而是英特尔、三星、新力这些全世界赫赫有名的标志。求生存的压力与危机意识,在园区族群平均年龄只有三十岁的年轻脸庞上特别强烈。

          技术浪潮逼得人得不断追赶,每个人都有深怕落後的焦虑。「我觉得好累,」软体工程师,力威国际科技应用副理曾文翰摇头:「微软每三年换一个作业系统,我们就得重新再学一次。」

          生产线上,良率、交货时间的标竿高挂在前,更容不得出错。

          中午时分,台积三厂的员工餐厅人声鼎沸。品保工程师古国正握着分机话筒匆匆出现。「机台随时有问题,我就得马上赶回去,」他说。吃饭时间,古国正一样表情紧张。短短一顿饭,他的电话响了三次。

          「每个人都把自己上紧发条,这是个新陈代谢快转的世界,」在台积担任心理谘商顾问的朱春林观察。

          一波又一波的工程师前仆後继,在园区的快转轮带上奔跑,他们的工作动力是什麽?

          与全世界竞争,挑战极限的过程,的确既是压力,也是乐趣。「研发就是要把过去没有的功能做出来,」智邦科技研发课长锺启尧说,「别人看我们是工作狂,但做出东西的成就感真的很大。」

          锺启尧有许多同事,甚至回家吃完晚饭,又回公司继续上班。连周末假日都不例外。

          分红入股的财富诱因,则让园区披上金衣,更多人趋之若 。在联电当秘书的谢和蓉传神地形容,别人一听到她在联电工作,「眼睛刹时就亮起来。」

          在新竹,园区工程师买房子不靠贷款,一次付清时有可闻。股市大好时,一个专科毕业的半导体线上作业员,年收入可以达到一百五十万,比台北许多上班族还优渥。

          校园学子尤其对园区向往。竹科徵才,万人报名的盛况已属平常。「以前我们关心生涯规画,现在学弟妹问的却是怎麽进你们公司,怎麽分股票,」最近刚回过大学母校的一位工程师感慨。

          自我实现与伴随而来的可观财富,同时建构出园区独一无二的魅力。但换另一个角度看,背後代价却是时间与脑力的无限投入。每天工作十二小时,甚至更久,对许多园区工程师是家常便饭。

          「在美丽荣景下的冰山一角,大家活得很辛苦,」智邦科技法务专员古国正形容。大学念台大哲学系,在德国念法律的他忍不住说:「这里是很粗糙的生活型态。」

          很难想像,有些单身、外地来的工程师,家里甚至没有电视,下班只做几件事:洗澡、洗衣服、睡觉。

          寂寞与不寂寞都是奢侈
          生活完全被工作占据,他们不想活的多采多姿吗?

          不是不想,只是太累。

          陈立仁评估,在他的工程师朋友中,至少有四成是这样过生活。他们几乎没有消遣,最大的娱乐就是睡觉。

          刚进园区工作时,陈立仁想找球伴,都得回交大找同学、学弟。「几乎一年不能脱离学校生活,」他回忆。

          即使有空闲时间,很多工程师也因为疲劳,懒得出门。江泓慧在华邦当管理师,弟弟在台积。她就很为自己二十七岁的弟弟担心:「下班宁愿窝在家里打电动玩具。」

          对多数人来说,生活单纯与单调之间难以划分。上班与下班的分别,经常只在电脑萤幕上呈现的是工作画面还是游戏。

          感到寂寞,在这里是一种奢侈;但想要不寂寞,更难。单身的工程师,普遍有找不到伴侣的忧虑,有女朋友的,维系感情也是一大挑战。

          江泓慧在园区志工队服务,志工队经常办些男女联谊、亲子活动。观察来叁加的工程师,「工作塞满生活,他们觉得没有精力再去摸懂女孩子的心思,」她说。

          一位工程师提起与女朋友分手的经过,脸色忍不住黯淡。四年的感情,却因为工作太忙不得不告终。「谁能忍受约会途中经常被叫回公司?」他无奈表示。

          没有女朋友的日子,他於是选择把更多时间投入工作。

          长期承受高压,工作时间不规律,许多工程师的健康状况都不甚理想。「靠吃药在撑,」一位工程师说。他一紧张就会胃痛,电脑桌前摆着一罐大大的胃药。

          超时加班是常态,却没人报加班费。「怕违反劳基法,」另一位工程师苦笑。

          迅速累积的财富,变成工作压力最直接的出口。玩音响,玩车,所费不赀,一个人能玩得起。只是,「笑得很大声时,却发现旁边都没有人,」谢和蓉说时虽带着笑,难掩惆怅。

          当工作成为生活唯一的重心,所有相关的指标,都变成能使人不安的因子。

          譬如升迁。朱春林归纳谘商经验,很多人来求助,都是因为「我」的工作被评价得不若过去,感到忧郁。

          园区吸引了大批优秀人才进驻,但管理职有限。不能从工程师生涯顺利提升到管理阶层,的确让许多人挫折。更遑论诸多顶着硕士学位,却在生产线管理机器的设备工程师。「他们觉得机器比自己还重要,」朱春林说。

          又譬如股价。同业之间相互较劲,波动起伏,连带引动人心变动。「大家永远在找更好的工作,永远觉得不踏实,」古国正说。

          把原来是十年的工作规划挤压成五年,甚至更短,只希望存到一定的钱就能自由,俨然成为许多人的梦想。只是「存到了,到时候也舍不得放手,」朱春林指出。

          股票到底要发多少才够?才足以补贴其他失去的价值?这是每个人都在问,却没有人能回答的问题。

          冷淡的族群
          寂寞的个体,组成冷淡的族群。

          新竹人看园区,觉得有距离。联电管理师洪素贞在新竹长大,现在都还记得小时候看园区的印象:「很异类,进出都要换证件。」

          科技金童进驻新竹後,带来高消费力,但仍然被区隔开来。陈立仁打算在新竹成家,但买房子时宁愿说自己是老师,「免得被敲竹杠。」

          很多人在新竹工作,心情却犹如过客,往返路线只在园区、住处间来回。火车站前的新光三越百货公司开幕半年了,包括曾文坚在内,许多人到现在都没去过。

          一到假日,园区就变成空城,不少人休闲、购物,仍然宁愿北上。陈立仁譬喻,新竹的光复路就像是台北市东区。清大门口的巴士站,「坐车直达忠孝东路,」他笑着说。

          多数园区人都不会同意自己刻意冷落风城,只是工作太忙,变成异口同声的理由。要问的是,要蠃得竞争,是否就得放弃健康与生活品质,没有别的选择?

          台湾工程师特别辛苦,有产业的背景。台湾科技业重硬体、重制造,在要求精细、时程,强调低成本、高效率的标准下,团队、纪律格外重要。

          园区族群的同质性太高,更难催生出活泼的生活文化。多数是清、交毕业、理工科系的训练,使大家有共通的语言,但思考模式也趋於一致。

          「在清交,你只会看见三种人,」一位工程师戏谑地说,「打球、读书,玩电脑。到园区,当然只剩最後一种。」

          尽管如此,园区仍然有另类工程师存在,在工作城里投注快乐的种子。

          「只要有心,还是可以过得好,」锺启尧认真地说。

          舒服的环境与人生
          锺启尧自己就常常写读者投书,关心新竹的交通、环保问题。譬如,「为什麽科学园区没有公车?」锺启尧问。如果有公车,每天早上进园车流「一人一车」的壅塞状态就能抒解。

          古国智则在下班後组了个摇滚乐团,自己兼吉他手与主唱,假日偶而在新竹东门城的街头表演。

          要拉近园区与地方的距离,有些企业尝试由上而下,推动员工与社区交流。譬如台积定期在新竹诚品书局办理讲座,去年讲唐宋诗词。自己就喜欢读书的台积总经理曾繁城,去年还请大陆昆曲团到新竹表演,邀着名文学家白先勇讲评。

          推动员工组成社团也是一种方式。智邦新装修的大厅挂满了员工画作,都是绘画社每周聚会的成果。

          联合劝募协会长期与联电的慈幼社团「烛光社」合作,谈起联电员工自动自发的精神,秘书长周文珍十分肯定。

          有些人仍然在寂寞当中,有些人则已尝试走出寂寞。

          改变生活需要勇气,但最重要的还是内心自省,确定人生终极的目标。

          「我的老师以前问我,为什麽要赚那麽多钱?」古国智回忆,「应该是让你的家、你的环境、你的人生都很舒服愉快。」

          「等你年老,你不会只有工作,」朱春林提醒。很多人连谘商都得视产业景气。她半开玩笑地说,景气复苏,来谘商的人就少,等到淡季才想到解决自己的问题,常常已来不及了。

          在埋首工作,奋力竞争之馀,这可能也是园区工程师们应该想想的问题。更多精彩文章及讨论,请光临枫下论坛 rolia.net