Programming 版 (精华区)
发信人: rainy (microeconomics), 信区: Programming
标 题: 三十而衰?-中国程序员成长误区(首发《程序员》杂志)
发信站: 哈工大紫丁香 (2001年08月10日15:06:32 星期五), 站内信件
程序员是否面临“30岁问题”?
古语云:"三十而立",意即三十岁是人生的一个黄金时段,是事业初成,蓬勃
兴起的起点。然而在中国程序员这个团体中,很多到了30岁,或者还没有到30岁的
开发者对以后的发展便感到了盲目。同时我们也注意到国内的很多软件公司在招收
程序开发人员时往往将30岁界定成为了招收程序员的年龄上限,不仅如此,在很多
聚会的场合或网上的论坛,程序员是否存在30岁这个“坎”的问题只要一出现,大
家往往是喋喋不休,莫衷一是。即便是国内软件业鼎鼎有名的程序员到30岁左右也
在自己的事业上产生了很多变化。那么到底程序员的“30岁问题”是如何形成的呢
?程序员到底能不能做到30岁以上呢?
在寻求问题答案的过程中,我们得到了迥然不同的两种观点:
观点一:“不能做到30以上”
程序员甲:最简单的,从生理来说,最精华的岁月是二十多岁,历史上很多名
人都在这个时期成名。编程除了需要个人技术之外,也是非常消耗脑力和体力的工
作,在二十多岁最有创造力的时候做开发是比较适合的。
程序员乙:在我们加入到程序员行列的时候,IT业已经开始进入了高速发展的
时期。新技术、新概念甚至新思维如洪水般涌现到眼前,目不暇接。为了不至于落
伍——因为落伍意味着你没发展、没前途,我们全部的业余时间和工作时间几乎都
用于学习新技术,追踪世界软件潮流。就象在任何产业新兴的初期,其参与者总会
有身不由己的感觉,就好像开着汽车上了高速公路,路上所有的车速都非常快,你
完全被车流卷入,不得不提高自己的速度,否则你就肯定会被淘汰。同时我们也看
到,在当今和以后即将进入的大量开发商业软件的软件工业化社会里,一切以软件
产品的交付期限、经济效益为最终目标,软件分工越来越细,程序员如同工业化社
会生产线上的工人一样,甚至达到有过之而无不及的程度。为了赶进度、抢工期,
起五更爬半夜,作业强度越来越高。二十多岁的年轻人还行,三十多岁拖家带口的
人怎么吃得消呢!软件业有这样一个笑话,“说起编程,博士不如硕士,硕士不如
本科生,本科生不如专科生,专科生不如高中生……”虽然是笑谈,但多少说明做
程序员需要有充沛的体力和灵敏的反应作保障,在这方面,自然越年轻越好。一个
三、四十岁的高龄程序员和一个二十出头的年轻程序员在一起编程,从工作心情上
、反应速度上、作业效率上都存在一定差距。而公司为了降低开发成本,也会倾向
于对经验少的年轻开发者支付较低的报酬。高龄程序员在这些方面无法与年轻人抗
衡。如此,残酷的竞争以及国内软件开发机制的不完善,必然导致高龄程序员将面
临着淘汰的危险。因此有人说如果一个人过了30岁还在做着程序员没有得到提升的
话,那他就应该考虑自己是否还适合这个行业了。另外由于国内的软件企业缺乏在
开发层面上的价值实现的空间,出于利益的考虑,程序员在30岁或者更早些就应该
转向其它工作。
观点二:“可以做到30以上”
程序员丙:30岁后还在程序员的位置上,并不表示这个人有问题,这可能有其
他种种原因。一个30岁的程序员比一个20出头的程序员来说,虽然在掌握新技能方
面及其他方面(如经常性加班等)可能会有所不如,但作为一个30岁的程序员,他
的经验肯定不是20出头的程序员所能比拟的。在实际的开发中,经验比技术重要,
核心算法、行业经验并不能简单地依靠年轻人的拼劲去获得,要有长时间的积累和
熏陶。在国内,很多的程序员在公司之间、项目之间跳动,这种跳动使得程序员在
技术上和行业知识等方面的延续性很差。满眼看去,号称什么都会的程序员比比皆
是,但优秀程序员大约到27岁左右才能专注于某一个技术领域,因为这时候他们通
常获得了较好的位置和待遇,这意味着他可以开始领域专家的修炼历程了,到了
30岁,才基本上能在领域内略有小成。国外软件业比较发达的国家的情况,大部分
领导项目开发的都是一些在某领域有着丰富经验的专家。Lotus的创始人30好几还
在写程序,而且还写出了风靡全球的电子表格。有位朋友提到自己原来的师傅,
50多岁了还开始学习C++Builder,用之编程、做开发。所以没有所谓30岁以上就不
能做程序员的说法,这些专家,当然不会是像我们中的一些人所认为的那样,只是
能够熟练地操作各种开发工具的另一种“开发工具”。
程序员丁:很不幸,我就是30岁的老程序员,但就我个人而言,我觉得我仍有
足够的精力去从事软件开发工作,而且有了若干年的开发经验之后,再干同样的工
作会比过去干得更有效率,事实上我现在仍在从事一线的开发工作,我觉得我现在
对整个软件开发的理解比过去要深刻得多。
以上两方面的观点好像都有自己的道理,那为什么会出现这种状况呢?哪一种
是表象,哪一种是真实的呢?
“30岁问题”产生的重要原因:企业对程序员发展规划的不重视和程序员对自
身发展方向不明确
“30岁问题”并不象更年期那样的阶段性心理、生理问题,因此它的产生是多
方面原因造成的。首先中国的软件大环境不成熟,大多数软件公司都追求短期效益
,体现在人才招聘上就是以30岁作为一个界限。而且公司对程序员的发展也很难有
规划。有位叫张俊的朋友这么说:“我曾做过的10多家IT企业,没有一家真正关心
过员工的职业生涯规划,当然就更没有哪一家曾把企业的发展计划和员工个人的职
业生涯规划结合起来了。”包括在德国的一家软件公司工作的朋友也很遗憾地谈到
他们公司也没有这方面的指导,大部分公司仅仅是把开发人员教会能够干活就完事
了,对于员工的教育培养没有任何长远的打算。在这种情况下,就很难要求程序员
将自身的发展紧紧结合在公司的发展上。很多人认为自己公司的管理为零,只不过
遵守考勤制度、每人划分几个模块、按照软件工程的套路开发罢了。没有思想,没
有规范,其他的更谈不上。即便是有些人能够做到低层主管的位置,他们也经常性
地被项目进度,客户需求等情况所左右,并不能完全从技术的角度去对待自己负责
的工作,经过一段时间,慢慢就会丧失对于先进技术的追求,而后渐渐产生对技术
快速发展的恐惧。笔者发现,正因为一些软件公司在这方面的考虑很少,另外也缺
乏资深工程师(在国外,资深工程师可以享受副总裁的待遇,以及对产品的很大决
策权力)这样的分级别职位,30岁以上的程序员缺乏发展空间。所以程序员的流动
性很大,同时也造成了只有通过跳槽才能给自己一个新的职位和高度的看法。
“30岁问题”产生的重要原因:很少有人能够有一个明确而踏实的目标,笔者
接触过的许多人不是说:“唉,瞎混吧!”就是说:“我要做百万富翁!”。
从个人方面来说,二十几岁时,刚刚毕业,很少有人能够有一个明确而踏实的
目标,笔者接触过的许多人不是说:“唉,瞎混吧!”就是说:“我要做百万富翁
!”。就在这种不考虑实际情况的自我催眠中迷失了方向。一旦快到30岁的时候,
如果仍然无法确定自己的发展方向,就会发出“30岁以后还能做什么”的感叹。有
些人可能比较"幸运",过了一段时间,等到资历或资金够了后,基于"不要给他人
打工"的想法,总要自己扯出来单干,于是不断地出现了具有中国特色的小作坊软
件公司。当然我们不能简单地把这种现象归结为"浮躁"两个字,除了个人的因素,
整个程序员发展的大环境的不成熟也促使这种现象愈演愈烈。
解决“30岁问题”的重要方法:在公司内部为程序员提供技术级别分级和程序
员按照自身意愿制定职业发展规划
分析了问题的原因,找到解决的方法就不难了。我们知道,管理级别是一种金
字塔型的结构,越向上的职位,能够做到的人就越少,这样程序员如果只能在管理
方面发展的话,那就受到了很多限制。也造成程序员的发展无法保持一种持续性。
因为在职位级别的组织结构中,人们通常都倾向于升到一个自己所不能胜任的职位
,再加上个人利益的盘踞,导致了种种问题。老板有老板的谋略,打工有打工的兵
法,问题是这些想法的差距太大,双方都很少为对方着想。孙子曰:“上下同欲者
胜”。对于企业管理来讲,要达到“上下同欲”是最难的,不过也是最关键的。因
此对程序员的发展来说,首先就是要把组织结构的问题解决。摩托罗拉中国软件中
心的总经理陈玲生谈到程序员发展问题时告诉记者,在摩托罗拉并没有“30岁问题
”的出现,因为公司为技术人员的发展提供了两条路,一条是技术、一条是管理。
而且两方面是同级的。做技术层次也可以做很高,具体到多高,陈玲生说:“从技
术角度最高可以做资深副总裁(VP)。”另外友立软件公司也给软件开发人员提供
了异曲同工的发展规划——采用技术级别。友立公司的开发人员的发展方向:
摩托罗拉的技术和管理级别对比表:
中国的传统是,如果我做老板,那我的工资比下面的员工要高,技术要比下面
的员工好,才能管理下面的员工。但在国外不是这样的。陈玲生强调说,在摩托罗
拉,很多技术人员的技术级别可能要比他的上司还要高,但是他仍然要受自己老板
的管理,这是一种文化,国外软件公司普遍接受这种文化。在摩托罗拉,不一定非
要做老板,有些人做了一年的小老板,发现自己并不适合管理工作,反而希望能够
回过头来在技术领域进行发展。但是在国内,接受这种文化还需要一定的时间。
在程序员的发展过程中,个人意愿非常重要。陈玲生说:“摩托罗拉公司中技
术人员的发展方向不是公司规定的,而是个人的要求。每年摩托罗拉的员工都必须
和自己的老板谈4次,主题是个人的表现、发展规划和发展要求。在符合公司整体
利益的前提下,公司会提供更多的机会促进个人的成长,包括各种培训和相应的支
持。”笔者个人感觉,程序员这个团体在交流和表达方面有所欠缺,所以在这里也
要提醒我们的读者,发展是在自己的手中的,一定要提出自己的要求和发展规划。
个人的职业发展规划应该是自己的事情,决不是公司的责任,公司只是在符合公司
的整体利益的情况帮助你实现个人的职业发展规划。
那么向什么方向发展呢?实际上,软件的开发包括了很多方面的内容,是一个
系统工程,编码只是其中很小的一部分,各个层次的开发者包括底层编码、系统设
计等等。打个比方:就象工地一样,一个小工做时间久了之后,他就有可能看懂图
纸,然后逐渐的可以设计了,这就是说他的技术层次提高了。另外也象在服装厂,
有设计师,有裁剪师,也有最终缝制的女工。对于设计师来说,他也能够缝制衣服
,但是他的主要精力在设计上,这就是层次的问题。程序员本身需要对此有充分的
理解,这样才能对自己的发展有清醒的认识。
陈玲生还说,“在一个比较完善的公司中,应该是公司营造了一个可供发展的
环境,个人也充分提出了自己的要求。无论是技术、管理、产品,向哪个方向发展
,程序员都需要能够认识到自身存在的缺陷,要克制浮躁的情绪,不要让一些外界
的事物迷失了自己。”
最终解决问题的方法:职业化的程序员和程序员的职业化
从更深的层次看,所有这些问题的核心集中到一点就是程序员职业化的不成熟
。软件公司和开发人员并没有将程序员视为职业(career),而只是工作(job)
。目前国内程序员考虑的通常是技术能力,而不是综合的职业素质。这同国内的软
件业起步晚、缺乏产业化的环境和条件,身处其中的软件企业本身就在艰难的生存
有关。而在这种状况下,程序员的职业化无从谈起,正所谓皮之不存,毛将焉附。
但是近年来,软件业的大环境和外部条件发生了很大改观,并且越来越充满希望,
软件企业的高速发展和持续发展也成为可能。这样,程序员的职业化就成为来自外
部的要求和压力,也成为程序员本身追求自身发展的需求和动力。
从程序员发展自身来说,对程序员职业性的要求有哪些呢?摩托罗拉软件中心
的陈玲生提到几点:首先,最根本的就是炼好自己的基本功,编写程序少出错误,
学习上要扎实,不能浮躁(这个不想做,那个不愿做),在最初的几年将软件工程
学习好。第二点就是要不断地学习,在自己希望发展的技术领域中要从初级的了解
变为相应的专家,从整体上了解技术领域的发展。第三点就是要学会创新,因为如
果你只是在固守在自己的领域而没有创新的话,便有可能被淘汰。对整个软件产业
,程序员的职业化也是当务之急,因为只有从产业的高度培养出一批高质量的职业
化的程序员,才能够真正带动软件产业的发展。
基于此我们认为需要在以下的几个方面加强:一、程序员的职业化教育培训和
再教育培训:结合中国软件开发的现状,从实际出发,传递给软件开发人员思想和
技术。另外需要结合我们的国情,推广自己取得的经验,比如一个公司对某个工具
的使用有了自己的经验,那就应该拿出来,培训其他人了解和使用这些工具,来带
动整个产业的积累。
二、加强面向程序员的出版业:这也是程序员产业化的必要条件和发展趋势,因为
通过报纸、杂志、网络等媒体可以带动业界的交流和思想技术的传播,这样才能更
快的满足中国软件产业和适应国际软件产业的飞速发展。
三、专业的顾问咨询:不断升级的开发平台和语言让很多的程序员在追随中不知不
觉的迷失了方向,DOS平台的开发人员在Windows平台的开发中找不到了自己的位置
,而Windows开发高手又无法适应网络开发的技术发展。其实并不是由于这些人不
能接受新的技术,而是因为在小公司、小作坊、小团队的局限下,技术人员无法充
分地同更多的高手交流,面对新技术时只能通过独自的钻研来缓慢的取得进展。一
方面,很多的程序员在摸索中前进,仍然在重复前人的问题,而另一方面,一些专
家有了自己的经验和教训却找不到适当的途径去告诉后来者。基于此有必要鼓励专
业的顾问咨询,而且顾问咨询产业的兴起也会对程序员的发展提供另一条不错的方
向。实际上,看看国外的发展,由于他们有一套系统的咨询机构,当出现新技术时
,只要他能够从专家那里领会到新技术的精髓,然后通过强大的交流服务支持,便
能够快速地适应新技术的发展。
“三十而立”不是不适用于程序员,反而30岁应该成为程序员脱胎换骨的一个分水
岭,当然要跨越这样的转变也需要我们有思想、有准备、有目标。伴随着中国软件
产业和程序员职业化的成熟,“30岁问题”也就不再称之为一个问题了。
--
在长长的一生里, .oooO Oooo.
为什么, ( ) ( )
欢乐总是乍现就凋落, \ ( ) /
走得最急的都是最美的时光? \_) (_/
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunny.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.793毫秒