总是不断地在论坛、博客乃至报刊、杂志上看到关于“程序员是否可以干到30岁之后”,或者“程序员30岁以后能够做什么”,这样的讨论。这样的讨论多了,似乎在校念计算机的学生也没出校门就开始严肃思考自己30岁之后应该转行干什么的问题。
这个观点对整个产业影响不小,然而,我似乎无法为“不能干到30之后”这个论点找到充分的论据。反之,我觉得做程序员至少可以做到五十岁。首先声明一点:本人已经三十大几了,还在干程序员的活,所以以下的讨论可以说是亲身感受。
我首先不理解的是:程序员需要很高的能力吗?30岁之后就没有这样的能力了吗?
程序员需要怎样的能力
本人从事这个职业10年,感觉程序员这个职业其实和别的职业没有什么本质的区别。总体来看,如下的能力或品质是我觉得需要具备的:
细致认真:这其实是大多数行业的要求。对于程序员这个行业来说,要求比某些行业可能更高些。编码的一点疏忽就可能使程序错误,从而造成损失。
对抗压力:压力主要是来自按时完成编码、项目或软件产品。但这种压力并非程序员独有,在这个激烈竞争的时代,有几个行业不是这样压力重重呢?
勤于学习:这个是程序员相对独特的要求。IT业的技术更新总是很频繁,因此,总是需要不断地学习新东西。不过,医生也是一个要求不断学习的行业,所以,也不能说不断学习就是一个完全独特的要求。
逻辑思维:毫无疑问,编程是一个主要依靠逻辑思维的脑力活。但是,从本人编程10年的经验来看,程序员需要的逻辑思维能力,经过高中数理化训练的人应该就问题不大。
对于这些能力来说,三十岁是个界限吗?
身体承受能力界限?首先,30岁是否是身体承受能力的界限?相信大家也会觉得这是不可能的。古语云,“30而立”,刚刚“而立”就无法在身体承受“细致认真”、“对抗压力”了?如果真是这样,社会上绝大多数工作都应该设立30岁退休的标准。
精神承受能力界限?那么,30岁是否就不适宜于在精神上承受程序员这个职业所造成的压力了呢?事实上,30岁这个岁数和是否能够承受这种压力无关,是否能够承受这种压力,和每个人自己的压力承受能力相关。如果一个人25岁能够承受这种压力,基本上没有道理说到30岁就无法承受了。要真是30岁以上精神承受能力就不行了,军队的指挥官就必须由30岁以下的人担任了。
逻辑思维能力界限?程序员需要的主要是逻辑思维能力,30岁正是逻辑思维能力发展比较好的时候,所以这也并不是一个界限。
学习能力界限?学习能力就更加不存在界限了。岂不闻古时之人尚有“秉烛”之说,现代人营养良好,学习条件优越,只要自己愿意,终身学习都没有问题。
那么,在中国的IT产业中,为什么“程序员不过30岁”之说如此盛行呢?我觉得IT产业本身的历史是原因之一,另外,中国特殊的社会文化也起了推波助澜的作用。
产业历史催生“程序员不过30”说
事实上,所谓“程序员不过30”之类的说法,并不是30岁真的是什么必然的界限,这种说法更类似于一种价值取向——不是过30岁就干不了程序员这活,而是“不愿意过了30岁还在干程序员”。这确实是一种在IT产业内才有的一种特殊的价值取向。我们似乎没有听说过“公务员科员不过30”、“生产线上工人不过30”、“军人的士官不过30”或类似的言论。个人感觉,这样的价值取向和IT产业的发展历史不无关系。
我觉得这主要是90年代IT风潮,一夜致富效应的影响。90年代末网络泡沫经济,真的是一场烧钱的盛宴。凡是和IT沾边,带点新意的概念,在很短的时间内就可能被大家捧到天上去。所有人都在欢呼知识经济的到来——经济上升可以无限持续,仅仅凭借一个什么基础都没有的所谓“概念”,就可以融入大批的资金。在这样的背景下,无数的人一夜暴富(当然,他们花的都是不是自己的钱,而是疯狂追捧的投资人的钱)。在这样的背景下,进入IT这个行业的许多人都希望自己有一天也一夜暴富。这个时代崛起的IT亿万富翁大都是20-30岁,这就树立了标杆,给人以强烈的刺激,让人感觉如果到了30岁还没有步入富翁的行列,在这个行业中就白混了。干程序员是无法成为富翁的。我觉得,这是“程序员不过30”说法的大时代背景。在一个大多数富翁(其中不乏优秀的、创业成功的程序员)都如此年轻的行业中,提出“程序员不过30”不是什么让人太惊讶的事情。
只不过,时过境迁,现在,IT业已经掉进了凡间,成为了一个正常的、逐步成熟的工业。一夜暴富的机会已经大大减少。再用“程序员不过30”这样的言论来刺激从业人员,误人不浅。
社会文化助长“程序员不过30”说
当前世界对中国说法褒贬不一,但没人不承认中国是个处于剧烈变化中的社会,用20年走过了工业化国家100年走过的路程。在如此剧变的社会中,社会阶层也在不断地变化和重组,这就注定中国人会目睹若干人的暴富,若干人的“成功”。而且,社会是如此卖力地宣传这些人成功之后的故事,而鲜为关注这些人成功之前付出的努力和代价,以及客观揭示他们具备怎样的条件、经受了怎样的风险。这就让所有中国人几乎一致地做着“发家致富”梦,整个社会处于浮躁不安之中。在这样的社会环境中,如果你恰恰又处于一个年轻人曾经不断暴富的IT行业,那么,希望自己30岁之后不再是程序员(后面的潜台词:比程序员挣得更多,“钱”途更广阔),恐怕确实是多数人的梦想。
官本位主义使“30岁之后不再做程序员”的想法进一步强化。中国有漫长的封建社会历史,在我们的古代社会中,“做官”是任何理性人的最高人生理想。这样的思想到了现代,虽然有所弱化——毕竟现代人实现自己人生价值的选择多了——然而,大家还是普遍倾向于做“官”(或管理者),而不是做“兵”(或生产者)。落实到程序员身上,就体现为“程序员不过30”,为何?30岁之后还在做程序员,说明成为“管理者”的希望更加小了,上升得慢了。而大家普遍的看法是:不能一直做技术。
“不能一直做技术”这种想法,也是中国社会比较独特的现象。我们具有“重仕轻技”、“重道轻术”的传统。孔夫子说过(原话记不清了),“如果一个男子沉迷于具体的技能,那么他就没出息了,所以,对一个有出息的人的来说,理想状态应该是什么技能都不会,把所有的心思用来琢磨人。”个人觉得,这几乎是传统文化最大的糟粕之一。大家都知道,德国这个国家自从进入工业化社会之后,就一直是一个工程师国家,而且,德国的职业学校也非常多,培养出了非常多的专业技能人员。正是这样的人口构成和工程师文化,奠定了德国在工业化社会中的地位。
国人还比较看重“道”而轻视“术”,也就是说,喜欢在抽象层次上泛泛地讨论事情,觉得把事情的基本原理摸清得差不多了,就不太愿意深入下去研究各种应用的细节,因为那属于“术”一级的问题,普遍的感觉是——层次低了点。在这样的文化影响下,希望自己可以尽快(30岁)脱离“术”的束缚,进入“道”级别,也就不是太奇怪的事情了。
总之,“程序员不过30”之说,我认为不具备什么真正的意义,不过是反映了在我们这个剧烈变化的社会中,在新锐富翁曾经层出不穷的IT产业中,在我们这个官本位主义、重仕轻技的社会中,一种被放大了的“做官”的愿望,一种力争暴富的说法。
至少干到50岁!
有人可能会发话了:“照你看来,程序员能够干到多久?”我认为答案很简单:想干多久都可以。“什么?!照你的意思,干到50、60岁都可以?”60岁是否还能够干程序员,我不太清楚,但按照我自己的情况,再结合现在社会发展的趋势来看,个人感觉至少干到50岁问题不大。理由如下:
1)中国劳动力逐渐在短缺。未来20到30年,中国社会将逐步进入老龄化的时代。看着小区内和我年龄差不多的住户,我经常都在想:40年后中国若干小区中最发达的产业一定是老年看护。曾经看过NHK讲述日本农业人员老龄化的纪录片,其中讲到,在日本的某著名农业区,农民平均年龄是72岁,很多已经80岁的人还在干活,所以,当地农会会长最头疼的问题就是如何说服大家增加生产,因为老头老太太们干不动了,生产积极性不高。虽然这是日本农业的情况,但是,中国未来面临的人口老龄化的压力是相同的,我们这代人想要轻轻松松50岁就退休,恐怕是没有可能了——少数年轻人无法负担起庞大的养老金。也许我们注定了要干到70岁。等我们到了50岁,也许还属于是“壮年人口”呢,那个时候,想想以前认为“30岁就干不动程序员”,可能已经是个笑谈了。
2)中国软件业逐渐在规范化。之所以大家以前觉得程序员辛苦,干不长,一个重要的原因是加班太多,经常一做项目就加班加点。这里且不说干软件是否真的累到了独一无二的地步——现在社会上各个行业普遍都有加班多的现象(这并不是说加班合理,只是说软件行业的加班并反非特别突出)——单说软件程序员这个行业本身,其实也是在逐渐规范化的。至少中国软件企业开始认同规范化管理而不是小作坊作风了,至少中国软件企业认识到过程的重要性了(CMMI)。不但如此,中国软件行业也开始认识到了,一天编出5000行程序来未必是高效率,未必是什么好事,一天保质保量编出200-300行程序,就已经是很不错的生产率了。有了规范管理和生产率的共同认识,程序员这个行业的劳动强度其实就减轻了不少,总是靠体力吃青春饭的现象逐渐会成为过去。
3)中国的知识产权保护在改善。虽然改善比例有限——盗版率每年下降大约10%,但是,至少我们可以预期未来20-30年后知识产权保护得不错。咦,这也有助于高龄程序员的就业?当然。未来知识产权保护完善的时候,就是使用新技术的成本大大提高的时候。我们不是总笑话日本人使用老技术吗,君不见日本到现在还用VC6.0和VB6.0来编写软件的项目多的是。为什么?成本低啊,这些开发工具价格低,开发技术成熟。我们也会有这样一天,所以,并不是只有掌握最新技术的人才有出路,随着知识产权保护的完善,中国的高龄程序员们也可以使用老技术挣钱,没准还挣得更多些,因为会老技术的人少啊。
4)中国社会需要大量专门技能人才而不是大量中层管理人员(当然,有能力的高层管理人员总是需要而且稀缺的)。不是总有人说编程是“软件蓝领”吗?看看世界工业发展的趋势,那就是蓝领工人吃香啊,你要是一个手艺娴熟的钳工,挣的钱恐怕不比中层管理人员少。翻翻最近大公司裁员的新闻,也会发现裁减的主要是管理岗位的员工。为嘛?最终还是需要干活的人啊。软件这个行业也是这样。优秀的程序员什么时候都是缺乏的。虽然在中国当前的社会氛围中,安心做事的人较少,但是,随着社会的成熟,一夜暴富的机会终将大大减少,有一技之长以谋生恐怕是大多数人的归宿。自己在这10年中看到了太多的人放弃做技术,不断地看到新人接替老手的工作,不断地看到培训新人、离开、再培训新人的过程。正因如此,感觉整个行业永远都是新人。想想看,在这样一个环境中,如果你把自己磨练成了真正优秀的程序员,想30岁就不干,社会都不允许,至少干到50岁!