题记:
当我写下这个题目,依然不知道自己下一步究竟应该怎么走。我只想把我了解到的一些东西和大家一起分享,希望能对大家有所帮助。
引子:
为什么我忽然想起来写这篇文章呢??我归结了一下,可能是这几个方面的原因:
1、在七月的程序春秋杂志上,有一篇“走程序员之路”的文章,其中讨论了就业的压力、现状、简历,以及个人发展等好几个方面的问题。其中我特别留意了个人发展部分;
2、不止一次的听过这样一句话——做程序员的,在中国顶多做到35岁。那也就是说程序员的职业寿命最多就是10-15年时间;
3、微软的Tech·Ed 9月底在北京召开,从身为MVP的朋友那里拿到了相关资料;李维的Borland演讲在北京、成都等地分期召开,从朋友那里得知演讲的主要内容。两方面汇集而来的资料,让我不得不思考自己未来的路;
4、项目没完没了,而且几乎90%都属于重复性劳动;
5、不停的在网上bbs上看到类似于“.net和java我该学什么”的问题。……
所有的东西错综复杂的交织在一起,让我对现在国内信息产业的状态,看得越来越清晰;让身为程序员的我,对程序员的未来越来越忧心忡忡;让我对未来该怎么走,产生了太多的疑惑……
首先,让我们一起查看一下人类的发展历史。
不管是原始社会、奴隶社会、封建社会,抑或是资本主义社会等,任何一个发展比较完善的社会阶段都会对下一个更高层次的发展产生阻碍作用。发展的时间越长,这个阶段的各种制度越完善,对下一个阶段的产生和发展产生的阻碍作用就越大。不过东方社会,还是西方社会,这样典型的例子很多。比如中国的封建社会发展了二千多年,其政治制度、社会制度、在意识形态方面都发展的达到了非常强盛完善,正因如此,在资本主义萌芽出现时,便多次被抹杀。在所有影响向前发展的因素中,意识方面的因素是更大,很多起义进行的也如火如荼,但最终只是变成了改朝换代的前奏而已。
回过头来,看看国内的信息产业。不管软件、硬件,还是网络,从最开始到现在已经有二十几年的历史了,我们也曾经辉煌过。
长城创建于1986年12月12日,已经开发出了长城0520CH。1985年6月,0520CH在全国计算机应用展览会上正式发布,轰动一时。据当时的报刊称,其性能超过了IBMPC和NEC980,被认为是中国计算机工业发展史上最具历史意义的重要里程碑。如此树碑立传的理由有两个:一、长城0520CH是中国第一台中文化、工业化、规模化生产的微型计算机;二、它设计并应用了世界上第一块汉卡(014汉卡)。1986年,0520CH产量突破1千台,1987年5月,长城286面市,形成了年产两万台的能力。
从1998年,王选携激光照排技术加盟方正猴,他激光照排技术让方正辉煌了10年。
四方利通创建的新郎、丁磊开创的网易,拉开了中国互联网的新篇章。在纳斯达克上市之初也圈了不少外国人的钱。
国内的软件行业,就紧密和企业应用联系在一起。东方仿真的仿真系列软件、金蝶的财务软件等在国内都占据了不少的市场份额。
而华为等硬件开发企业,经过近几年的发展,也开始崭露头角。
但是,随着在1990年,中国取消了计算机产品进口许可批文,同时,大幅度降低关税,由此,形成较为开放的计算机产品市场。加上2001年加入WTO,信息产业的市场就更加的开放。
而国内,至今大部分企业仍处于手工作坊式,根本经不起这样的一个冲击。那么随之而来的就是,作坊式的模式向印度模式的转变。这样的转变实质就是,手工作坊式转向工业化发展,其实这根本不是印度独创的模式。让我们再回顾一下历史中工业经济的起源。
首先文艺复兴为西方近代化做了足够的思想准备;其次,新教的产生导致了教会权利的分散,更加符合新贵族思想的教会机构的产生,为这些新贵族到资产阶级的转化提供了前提。最后,就是英国的圈地运动基本上完成了资产阶级原始积累。之后才是工业化的开始——瓦特改良的蒸汽机和珍妮的纺织机,这两者对世界经济的工业化进程都起了非常巨大的推进作用。瓦特的改良只能说是代表了工业经济的萌芽,但从萌芽到成熟经历了相当长的一段距离。而纺织机的出现虽然使英国的工业化进程大大加快。而铁路的出现就是工业化的重要标志,当大规模铁路网在一个国家建成的时候,起码表示这个国家的钢铁和工程机械等工业发展到了一定水平。另外铁路的建成使许多地区性市场连成一片,其中任何一个地区的产品能够迅速地销往其它地区。
现在,我国的信息产业就处于这样一个转变过程。工业化当然会带来信息产业飞速的发展,那现在的程序员呢?就成了为工业化实现的铺路石!
还记得前几年,网络飞速发展的情况嘛?
那时候,会做网页,平均每个月就可以拿到至少5k左右,为什么?首先,网络的飞速发展,导致这样的人员缺乏,使这样的人身价倍增;其次,那时候制作工具相对比较少、比较弱智,很多都需要手动输入代码。而现在呢?随着工具的智能化增强、需求的减少,对于这样几乎没有什么技术性的、单一的工作,不会再有公司招聘,如果要,也是需要你会些创造性的东西,比如平面设计等。
现在的程序语言,差异性已经比较小了,一个能熟练掌握一门语言的程序员,对于一门新的语言,入门上手顶多也就是一个周的时间,他就可以写出简单的程序了。而且,现在的开发工具也是越来越智能。
今年的微软Tech·Ed 2003上,微软展示了已经开始做内部测试的ASP.Net2.0 Whidbey,给我印象最深刻的是在2.0中常用的数据存取,可以做到“0代码”。
接着,李维的Borland演讲——Turbo Charging Your .NET Development中,表达了Borland要造就一个“大IDE环境”的概念,也就是说,一个工程里面,可以包含Delphi、c++、c#的不同单元,在对象级实现混合编码 ;完全可以用Delphi写界面,用c++写底层,用c#写接口。不同语言间可以实现对象的引用和继承。
如果说开始,我还幸喜若狂,到最后我就变得忧心忡忡了。
“0代码”,意味着什么?意味着程序员的门槛越来越低,如果只从应用的角度出发,一味只满足客户的需求,那让我们从现在的这种发展试想,以后的应用开发,完全可以做到拖动一些控件,不编写、或者说编写极少量的代码,就可以完成功能的开发。
而“大IDE环境”的概念,虽然可以让程序员再也不用头疼会用几门语言却担心都不深入的问题了,但是如果按照“0代码”的发展趋势,加上大环境下工业化的要求,程序员对语言会有多深入呢?
那程序员的命运如何呢?如果一味的满足于应用的角度出发,一味的为了满足客户的需求,当然是可以赚到钱,但是我们的职业寿命有多长?大家考虑过这个问题吗?
为什么在国外,就有50岁的程序员,难道他们不是在经历这样一些巨大的变革吗?
答案当然是肯定的。他们一样在经历这样巨大的变革,但是和我们不同的是,他们国家的信息产业,可以说已经走过了工业化的道路,现在需要的需求已经站在更高层次了。前面我已经用很长的篇幅来说明这样一个问题——中国的信息产业正在从手工作坊式的发展,转向工业化的发展,其中涉及到了很多问题,我都没有深入的阐述,比如为什么会走工业化等等。因为这些都是显而易见的,社会的发展不可能停滞不前!难道我们程序员就要走印度式的软件蓝领的道路?
不!中国也不可能走完全印度的发展模式。
很多在印度、美国的等国家出现的群体在中国现阶段的发展基础很难形成,比如印度对IT产业的崇拜使得产生软件蓝领的人力资源基础非常的雄厚,但在中国,就业压力相对较轻,就很难形成真正的软件蓝领队伍。中国现在很多的公司在学习CMM,也只是学到一点皮毛,无法深入精髓。“上不上,下不下”的现状最普遍了,中国现在正在处于这个阶段,很多软件人由于看到了印度的发展模式而试探性的拿来,并试探性的应用于我们的软件产业。这些变形了的印度模式便是过渡性的产物。也造成了多种软件产业模式共存的现状,从根本上无法真正的按照印度的模式前进。
因此,套用小平同志的一句话就是——发展有中国特色的信息产业。
这样一来,留给程序员的就是一个更模糊的未来!我们要么成为工业化道路的牺牲品,要么成为一个旁观者!
如果说前者,那么现在要做的,也就是利用短暂的青春,敛财!客户的需求就是你追求的唯一目的,不需要管太多的底层、构架上的东西。
当然,可以深入研究语言,研究构架,研究项目的管理和实施等等。最后做到项目经理、系统分析员等,这样的职位上。可这样,我们还是牺牲品,只不过把我们的职业寿命稍微的延长了五年或更长一点。
那如何作为一个旁观者,让我们的职业寿命更长呢?
从个人的角度出发,我认为做理论研究是最好的选择。做理论研究什么呢?比如研究Grid、Petri、O&O等等。这些都需要比较好的数学作为基础,还要在努力之上加上一点天赋,那就可以成为大师级的人物了。比如国内搞数据库的王珊教授、搞O&O的杨芙清教授等都是很好的例子。做不了大师级的人物,延长自己的职业寿命的话,走这条路是应该不会有什么问题的。
当然,如果衡量好自己的能力之后,觉得不太可能做理论研究。那还有另外一条路——做基于理论的应用!
简单说来,就是将国内或者国外的理论拿来,想想如何应用!比如基于角色的访问控制(RBAC),这个理论在1992年提出的,1995年就有相关的产品了;再比如杨芙清教授搞的北大青鸟III,一个基于O&O的工具,据说现在已经可以做到O&O建模完之后,自动生成代码了。理论随着科技的发展将会越来越多,基于理论的应用也会越来越多。因此,这也是一条不错的道路。
写了这么多,无非就是想我的程序员兄弟姐妹们看清现在的形势,给自己找一条比较好的道路!上面我所说到的两条路,也是个人意见,也许大家还有更好的看法,欢迎大家和我交流探讨!
后记:
当我们选择了做程序员,就意味着选择了站在浪尖上,如果你停止向前,很快就会被后来者所淘汰。不管国外的程序员职业寿命有多长、国外是不是已经走过了工业化的道路,都需要不停的学习。如果要走得更长,我们的程序,我们的代码,就不能仅仅停留在满足客户的需求。我们需要用一种思想来思考我们的程序,我们的代码;需要多想想这个世界需要什么样的程序,什么样的代码,不要仅仅停留在想怎么实现上!
Who’s designing the future? 路在自己脚下!思考过去,思考现在,思考未来吧,我亲爱的程序员兄弟姐妹们!
本文引用了一些网上的文字资料,下面列出来,在此表示感谢——
1、 刘韧:中国IT无梦;
2、 闫辉:从历史发展的角度看中国软件业;
最后,以上文字仅代表个人观点,请勿咬文嚼字!