以后老了我能做什么

大二的时候开始写程序,大三的时候比较入迷。老爸看我这么痴迷,可能是比较担心吧,就和我说:”我看电视上那些IT工作人员,工作强度很高,趁年轻脑子还好用的时候多赚一些钱,稍微老了之后就干不动了,转着做管理层。这个行业还是青春饭”。 当时的我不以为然。显然那个时候我也看到很多同样想法这样的文章,但是我也看到了很多批评这些想法的文章:“对于那些年老的程序员有经验,在设计上面可以少走很多弯路”。而且这些批评的文章都是业界很有名气的人写的,我觉得他们至少比那些 在管理层上面折腾的人说的靠谱。过了这么多年,我依然坚信这是真的,因为缺乏有经验的程序员,而导致错误的设计,会使得项目非常复杂臃肿,甚至垮掉。

今天晚上(2012-9-4)我面试了一位同学,34岁,对于传统软件开发非常有经验,C/C++精通,熟悉网络服务器编写,做过symbian手机应用开发,并且写过很多和硬件相关的东西,同时还有一段很传奇的经历打动我了:“03年的时候百度robbin想招聘他过去, 但是因为他当时在一家待遇比较好的单位,因此拒绝了,也错失了致富的机会”。相对来说他还是很有经验的,唯一的缺点就是没有接触过太多互联网的东西,对于分布式系统也不是很熟悉。但是我相信以他的功底,接触一段时间应该也会非常了解的。整个面试下来, 我没有太多的问题,毕竟对于这么年长的程序员同时经验相当丰富,还有什么话说呢。我本来想让hai面试一下他,于是出来问hai是否需要面试一下他。他皱了一下眉头,说到他和互联网开发不是很match,同时有一个问题就是公司的headcount似乎已经满了。 hai让我先送走他。虽然我不知道最终结果会如何,但是就这次面试经历来说,我有一些触动。

我心里比较难过。我们可以设想他以前必然也是一个很牛的程序员,处于他那个时代最顶尖的一批。但是因为互联网的崛起,以及移动互联网的快速发展,致使他原有的知识带来的作用非常有限。同时在这段时间,因为他没有时间学习互联网方面的知识(或者是其他原因), 导致他整个知识结构体系没有太大的迁移,没有跟上,依然着重在传统软件开发上面。但是传统软件开发的比例,在互联网时代不断地缩小,导致他的境遇不断地变差,最终随着他的年龄增长精力被耗干。(说真的,我真的不希望他如此)

他做错了什么吗?他没有,只不过因为行业关注热点的变迁,导致他的境遇变差。你也许会说:“他应该好好一下互联网开发知识,多多了解分布式系统”。没错,但是反过来想你不觉得悲哀吗?所有的程序员都应该根据行业变化来不断地学习新的知识,才有可能赚到钱。 如果是这样的话,有谁还能够在一方面做精深呢?如果是这样的话,如果有一天你老了(或许是因为你没有精力,或许你因为家庭原因没有时间学习),那你还能够做什么呢?假设你现在学习着最火的iOS开发,Android应用程序实践,赚着可观但是没有让你致富的薪水, 到了40岁,市场抛弃了移动互联网,转向了生物技术分析,那请问那个时候你还能够做什么?

或许我该重新思考老爸说的这句话了“程序员是青春饭”。你必须掌握技术,同时你必须掌握趋势,在这波趋势消退之前,依靠自己的技术,赚到足够的钱。


update@201509: see What Happens to Older Developers?