查看原文
其他

64 岁谷歌老程序员的补丁 vs 35 岁中年程序员的焦虑

徐星 CSDN 2018-10-26

作者 | 徐星

责编 | 郭芮

不久前,现年64岁的Bill Budge老爷爷给谷歌V8引擎(V8是Chromium项目的JavaScript解释器。如果你现在阅读本文的工具是基于Chromium内核的微信版本,那么,你可能就在使用V8)提交了一些补丁。



64岁老爷爷的补丁


在最近的一年里,Bill Budge在这个项目里非常活跃:

我不追星,看到有演员拍出好的电影,最多说不错,不至于去调查这个演员的背景资料。但我还在学校的时候,就是读着理查德斯托曼和Linus的生平小故事开始了解开源和Linux内核。

所以对V8模块里面的Bill Budge老爷爷,我也没放过:

出生年月

参加工作时间

学校

职位

1954.8

1980

加州大学伯克利分校

Software engineer

这四条如果是不同的人,或许是平常的事情。但是放到了一起,就让我肃然起敬:

  • 1954年出生,现年64岁;

  • 1980年参加工作,工作了近39年;

  • 加州大学伯克利分校,它的计算机和工程世界排名前几;

  • 目前在谷歌从事软件工程师的工作,还在写代码。

我见过70后的程序员,但是我从来没见过64岁还在写代码的程序员。有着高贵的出生,在基础的软件领域持续耕耘,勤奋(看看他最近一年给V8引擎提交的那些补丁的数量),这么一个老爷爷,和一堆70、80、90后坐在一起,开发和改进了软件行业最困难的模块之一V8引擎,这是怎样的境界?

有兴趣的可以去领英和维基上搜索这个老爷爷的详细简历。这里仅仅截取了他的领英主页,来表达我对他的敬仰:



焦虑的35岁


工作了39年的老爷爷,在世界上最伟大的企业里,充满激情地写着代码,维护世界上最困难的模块。当然,他肯定会在退休前的几天继续写代码打补丁,我对此深信不疑。

然而,最近国内出现了很多35岁中年程序员焦虑、甚至被裁员的消息。譬如“老板告诉我,超过35岁的简历不用看了”,又如“程序员35岁之后不转管理只能混吃等死?” 。从表面看,似乎我们的环境(不讨论国企和事业单位)和别人的不一样,我们的环境是排斥35岁以上的程序员的。

但是,是否需要35岁以上的程序员,不仅和企业研发的产品的知识密度有关,也和程序员自身的知识密度有关。本文尝试着从企业的角度和程序员的角度,也就是供求的双方,来分析这个问题。 


企业的需求和知识的密度


老爷爷所在的Chromium团队,工作了很多年的大有人在(部分名单):


姓名

参加工作时间

学校

职位

图形

Antoine Labour

2001

ENSEEIHT

Principal engineer


Adrienne Walker

2004

University of North Carolina at Chapel Hill

Software engineer

网络

Asanka Herath

2005

Massachusetts Institute of Technology

Software engineer


Bence Béky

2014

Harvard University

Software engineer

多媒体

Dale Curtis

2005

Texas A&M University

Staff Software Engineer


Fredrik Hubinette

1993

Linköping University

Software engineer

V8

Adam Klein

2005

University of Washington

Software engineer


Bill Budge

1980

University of California, Berkeley

Software engineer

Blink

Rick Byers

2003

University of Washington

Senior Staff Software Engineer


Darin Fisher

2000

University of California, Berkeley

Software Engineer

除了2014年参加工作的Bence Béky(他是PHD),其他的工作时间都超过了10年。可以看到,老爷爷和他的谷歌Chromium团队,对35岁以上的程序员是有需求的,并没有所谓的年龄界限。

国内的有些企业,譬如华为也很欢迎35岁以上的工程师。企业要做到华为这样的知识密度,光靠人头和资本不够,还需要一代一代人的纵向积累。没有任何理由去相信华为会放弃那些掌握了核心技术的老员工,否则他不可能在知识密集的通信行业做到目前的位置。

关于网上流传的华为辞退部分35岁以上的员工,抛开华为的狼性文化,和生存的艰难等因素,这其实是华为对在职员工的再次双向选择(确实也很残忍,这样的再次双向选择在其他私企和外企也同样存在)。如果到了这个年纪,技术没有深厚的积累,也没有走上管理层,那说明员工积累的技术和经验不适合这个企业。

因此,老员工真正要思考的不是年龄的问题,而是知识的密度。

但是确实有些企业会在招聘广告里明确年龄限制。以前去招聘网站搜索程序员的职位,经常看到年龄要求35岁以下。写本文之前,又去搜索了一次,要求工程师年龄35岁以下的职位少很多了。但是还是有年龄限制的,有些放宽到了45岁,有些依然坚持要求35岁以下:

如果说华为,对35岁以上的员工再次应聘,只是为了检查员工的技术积累是否深厚。那么,像这样在招聘需求里明确写上要求35岁以下的,企业应该思考下自身是否有足够的知识积累。或者说,有这样要求的企业,可能是资本密集型的,而不是知识密集型的。在资本密集的企业里面,程序员的技术积累没那么重要,那么程序员的年龄可能就成了致命伤。

资本和知识的界限其实是模糊的。在一个开放的世界,钱可以买到任何东西,资本的密集和知识的密集很难区分。但是现实世界远远没有这么开放,这个不开放的世界,给资本和知识圈上了各自的边界。

我们来看一个资本密集的例子:小米公司。魅族比小米起步早,技术和产品在早期做的也很好,但是没有建立起足够的技术壁垒。小米在商业模式和资本方面胜过了魅族,能够用更优秀的人,所以后来小米获得了的成功。

但是资本不是万能的。如果资金非常雄厚,甚至不计成本,还是可以在较短的时间内打造出BAT或者小米、摩拜单车滴滴等的。但是再有钱,也很难在短时间内造出苹果、谷歌、Intel和高通。一方面是美国对核心技术出口做了限制,用钱很难买到他们的人和技术。另一方面,在基础技术方面我们落后太多年了,短时间很难赶上。这是美国人在知识上的成功,他们知识上的密度不是我们多加人、多加钱、用几年时间可以赶上。而是要一代人一代人的接力。

而且,在资本帮助下做出产品占领市场后,企业和资本都是要逐利的。产品和团队最终还是会回归到知识密集的路线上来,这样才能保持产品的竞争优势,也能减少被资本更加雄厚的团队抢夺领地的机会。

企业之间互相抢占对方领地的例子很多,前面谈到的小米和魅族,以及BAT之间:腾讯控股易迅,推出自己的搜索;阿里钉钉;百度也有百度Hi。财大气粗的资本们,总是想去攻下别人的领地。BAT之间互相侵消结果不怎么明显,并不是技术本身的差别多大,而是资本最后还是要看收益。再看看去年打得火热的ofo和摩拜单车。ofo先期产品设计输了一着,但这不是两者输赢的关键。在打价格战的时候,价格决定了消费者的选择。当然了,摩拜的产品维护成本低,这为他的资本赢得了更多的时间。

企业的产品决定了企业对人才深度和广度的要求,也影响了企业用人的时候到底有没有年龄的要求。

如果企业的知识密度很高,譬如前面谈到的谷歌和华为,对人的需求其实不会加上年龄限制的。有些企业的工程师团队过分年轻化,其背后的本质是,这些高科技软件互联网企业,是资本密集型的,企业的知识密度较低,其核心IP的科技含量不高。这时候焦虑的应该是企业,企业应该思考为什么我只要35岁以下的员工,是不是我们的技术壁垒不够?没有足够的技术壁垒,如果有人拿钱砸我,我该怎么办?

BAT都是大公司,大公司之间是如此频繁地试图侵入对方的领地,被侵入的也在不遗余力地利用资本和垄断地位的暂时优势来提高自己的知识密度,加强自己的护城河。所以那些只要35岁以下员工的中小公司,也需要思考下,该如何挖深拓宽自己的知识护城河。否则很难面对同行的技术竞争,更难以应对大资本使劲砸钱。


每个程序员都有不一样的十年


在我小时候,如果说一个木匠做木工很多年了,我们会很自然地认为这个木匠做的东西很好。现在,我们要是说,这个程序员写代码好多年了,是不是差不多就等于变相的贬低人?这差不多就等于说,你看他工作了十多年还是程序员。自古以来,对于工匠,我们都认为老的就是好的。老的有经验,做出的活计好。那为什么现在,老的程序员反倒不怎么吃香呢?如前面的招聘广告,就要求35岁以下的程序员。

程序员和企业,是供给和需求的关系。前文从企业的角度分析了为什么有些企业只有35岁以下的需求,下面我们从供给,也就是程序员的角度来看这个问题。

前面谈到,企业知识的密度决定了企业要不要35岁以上的程序员。撇开那些知识密度不高的企业不谈,就是华为这种知识密度较高的企业,也会选择性的让一些35岁以上的工程师离职。这个时候,问题就不仅仅出现在企业本身了(不考虑做了管理或者创业的情况)。

一个原因是,35岁的我们,所积累知识的深度和广度都不够,因而失去了性价比。35岁的我们,把知识密集的脑力劳动,渐渐做成了机械的缺少创造性和深度思考的体力劳动。

脑力劳动做成了体力劳动,是技术的快速更新换代、以及社会,个人浮躁造成的。以2007年到2018年,一个大概的十年来看,这个行业经历了很多热点:

  • 新的移动计算平台:IOS,Android,Chrome、HTML5;

  • 云计算, IOT;

  • 新的编程语言,编程框架;

  • VR,AR,AI。

在这个十年里面,有的人可能把所有主流的操作系统都尝试了一遍(被动的或者主动的,譬如我就被动地把Android、Windows、IOS的HelloWorld都写了一遍);有人做全栈,将网站的后台和前端都学了;也有人把热门的语言和框架都学习了一遍;还有人可能硬件、软件、管理之间换来换去。一个技术切换很频繁、积累不是很深厚的程序员,在企业看来十年工作经验和两三年的差别不会很大的(不排除少数非常有天分,能够把所有主流的技术都学会的程序员。本文讨论的是更一般的情况)。所以在这个时候,企业当然优先选择经验少一些但是更具有性价比的程序员。

时代总是在变化的。有些热点,譬如WebOS、裸眼3D都渐渐散去了,VR、AI也经历过低潮高潮。有些却始终吸引着人们前进,譬如操作系统虽然从Windows/Linux变成了Windows/Linux/IOS/Android,这些系统在这十年里面也都经历了好多次的版本更新,但是一些基本的东西并没有被彻底颠覆,颠覆的,往往是用户体验和软件架构。

少数醉心于技术本身的人,能够坚守一些相对长期的大的技术方向,看透新旧技术背后的算法和数学物理原理,做到新旧技术融会贯通。因而在每次新技术出现之后,他的知识的密度更高了。


结语


目前AI技术这么热门,我身边的很多人都开始把注意力转到AI。这个时候,你是选择把原来技术的新旧版本融汇贯通,还是跟着历史的车轮投入AI阵营?

当我们工作39年后,是否还有机会像这个老爷爷一样,满怀激情,给某个著名的、影响深远的项目提交一个老爷爷补丁? 还是像我家里那位说的,以后看到年迈的看门老大爷,还带点秃头的,有点焦虑的,可能就是曾经的程序员?

后记:

其实我不喜欢这种过于直白的标题。譬如Gone with the wind,翻译成飘就很有意境。翻译成乱世佳人,能揭露小说的主题,但是淡而无味。如果考虑市场的需要,应该叫乱世少妇和她的三老公。还有边城,如果叫船家少女的爱情故事,那就知道了故事大概,也很吸睛。这些伟大的作品都坚持了他们富有诗意的名字。但是我的这个短文不能像这些伟大的作品一样,随性的取个码农田园风的名字:老爷爷的补丁。这个短文不过是一个快速消费品,要屈从于市场吸睛的需要。

参考链接:

  • 老爷爷Bill Budge的Wiki主页

https://en.wikipedia.org/wiki/Bill_Budge

  • 老爷爷Bill Budge的领英主页

https://www.linkedin.com/in/billbudge/

  • 老爷爷Bill Budge的补丁

https://chromium-review.googlesource.com/q/owner:bbudge%2540chromium.org+status:merged

  • 老板告诉我,超过35岁的简历不用看了

https://www.sohu.com/a/155274111_746578

作者:徐星,2007年硕士毕业于武汉大学,参加工作的十年专注在图形系统架构方面的研究。现供职于某半导体公司,从事开源项目Chromium的基础图形系统的研究。

声明:本文为 CSDN 独家投稿文章。作者独立观点,不代表 CSDN 立场。


征稿啦

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。


————— 推荐阅读 —————

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存