GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

人到中年的程序员,请提前准备好 Plan B

2019 年 8 月 11 日

人到中年的程序员,请提前准备好Plan B

中年程序员的生存现状已经是老生常谈的话题了,有多老呢?十年前,就有一位网名“johnfx”的程序员谈过这个话题,并且专门为此写了一篇文章。随着中年程序员生存现状的话题再次成为热点,这篇文章被顶到了 HackerNews 网站的首页,并且引发了数百条讨论

十年前的中年程序员面临的“生存危机”与今天有何不同?十年前的经验是否仍有值得借鉴的地方?AI 前线对 johnfx 的文章进行了编译,并整理了如今程序员对这一问题的看法,希望对各位读者有所帮助。


问题的起源

在撰写最近的一篇文章“ 年龄歧视和编程工作 ”时,我发现了1998年纽约时报的一篇文章,该文章引用了美国国家科学基金会和人口普查局关于软件工程职业生涯长度的统计数据,让我非常震惊:


计算机科学专业的大学生在毕业后的 6 年里,约有 57%的人从事程序员相关职业;而毕业 15 年后,这个数字下降到 34%;在毕业 20 年后,也就是大多数人处于 40 岁出头的年纪时,这个数字下降到了 19%。

相比之下,土木工程同时期的数据分别为 61%、52%和 52%。


我发现:这篇文章的语气,以及仅使用可疑的计算机科学毕业生样本来支持其结论的做法,破坏了它的可信度。在很多时候,政府探索软件工程行业的进展非常缓慢,所以这项研究中,统计者完全忽略了大量的在职程序员,因为他们要么获得了另一门学科的学位,要么从未完成大学学业。


尽管如此,聪明的投资者似乎也同意:软件工程师的贬值速度,只比他或她辛勤工作所用的计算机慢一点点。1996 年,时任英特尔总裁兼联合创始人的 Craig Barrett 发表了这样一条评论:


不论软件还是硬件工程师,他/她的半衰期只有短短几年。


当然,这也仅仅是某个西装革履的家伙的说法,但更重要的是,他(当时)作为一名 57 岁的前工程师,竟然也公开强调对其他工程师的年龄歧视。这么一位有影响力的业内人士居然认为编程生涯与职业篮球运动员的职业生涯大致相同,真是可怕极了。


我的看法

科技领域的年龄歧视问题已经引起了相当多的指责,但我怀疑,这可能是这个领域快速变化的必然结果。


请先考虑如下几个问题:


  • 员工的市场价值主要取决于他/她在与雇主相关的技术方面的经验。

  • 软件工程至少每 10 年就会经历一次重大的技术变革。

  • 虽然技术的转变并不会完全否定老一辈的技能,但它确实为应届毕业生创造了更公平的竞争环境。


现在,你需要站在招聘经理的角度思考:如果你的公司要使用像 Ruby on Rails 这样的新技术,除了 David Heinemeier Hansson(Ruby on Rails 原作者)拥有 5 年以上的工作经验,其他人都没有。当然,对于经验丰富的老手来说,拥有额外 10 年 C++经验的老兵与同样拥有 3 年 Rails 经验的新贵相比,区别还是很大的。在所有条件相同的情况下,你自然会聘用经验更丰富的人。


然而,并非所有的事情都是平等的。这 10 年的 C++经验让经验丰富的求职者越来越贵,因为他们需要在 C++相关的工作中才能发挥这些经验的价值。问题是,额外经验的边际效用必须超过雇佣老兵的边际成本,才能证明支付溢价是合理的


译注:在微观经济学中,边际效用(英语:marginal utility),又译为边际效应,是指每新增(或减少)一个单位的商品或服务,它对商品或服务的收益增加(或减少)的效用,也即是「效用──商品或服务量」图的斜率。 经济学通常认为,随着商品或服务的量增加,边际效用将会逐步减少,称为边际效应递减定律。


这就是问题的根源。求职者的经验越无关紧要,效用/价值的等式就越不平衡,这就需要假定经理有额外的预算来获得这些奢侈的经验。


即使这位经验丰富的求职者的薪资水平与一位年轻求职者不相上下,招聘经理也必须考虑让某人大幅减薪的影响。他们会在入职第一天就士气不足吗?他们会在仅入职一个月就改变主意离开吗?这都是可能出现的棘手问题。


一个不幸的事实是:与其他更为武断和反复无常的歧视形式不同,年龄歧视往往是客观合理的商业规律作用的结果。我并不是要证明这是一种可以接受的做法,而是试图描述这种做法让经理在不损害公司道德和法律义务的情况下做出明智的商业决策所面临的困境。


那么,你准备好 Plan B 了吗?

假设你家底不够厚实,但好在不是什么野鸡大学毕业的,或者不到 40 岁就死于由红牛引发的心脏病,那么你应该考虑考虑缓冲策略。以下是一些可行的选择:


1.为一个永远不会歧视你的人工作

不,不是你的妈妈,这个人恰恰是你自己!


如果你不是创业型人才,建议你考虑一下咨询公司。出于某种我不完全理解的原因,当企业租用人才而不是直接招聘人才时,看到你有一点点白发和对不同技术的一点点经验,他们可能会对你产生谜一样的信任感。


2.向黑暗面“屈服”,进入管理层

其实我想说的是,编程的工作对一个人进入管理层几乎没有什么帮助,但管理层显然认为,包括技术人员在内的所有人都有一种“毕业”的强烈愿望。


我认为这是一个谬论,没有人会持续设计和构建软件 20 多年,除非他们没有野心或增长潜力。然而,像我这样尊重这种奉献精神的人是少数。也许最好停止与之斗争,但在冒险之前请考虑以下几点:


  • 中层管理人员的工资不像高层工程师那么高;

  • 想要跟上新技术变得越来越难,因为你不再是直接使用者;

  • 会议、办公室政治和处理不切实际的要求将会占据你的生活;

  • 虽然你可能会尽量避免使用,但是管理术语会慢慢进入你的日常词汇表;

  • 即使不是你的错,也是你的错;

  • 即使是你的功劳,荣誉也要归于团队;

  • 作为一名技术神童,在技术领域要比在管理领域容易得多,你必须在一开始就看清自己;

  • 你将被迫做出影响人们个人生活的决定(工资、奖金、解雇等),这有时让人难以忍受;

  • 能够设定议程,有时还能说“不”,这是非常令人愉快的。比如:“不,我们不会干这种事的。”;

  • 电脑是可以预测的,人是复杂的,你最终会幻想拥有一票机器人员工;

  • 指导是非常有益的,但也非常具有挑战性。


送上一句名言给选择这条路的同胞:


世界上最困难的事情是知道如何做一件事,然后看着别人做错而不加评论。


——西奥多·哈罗德·怀特


译注:西奥多·哈罗德·怀特,中文名白修德,美国新闻记者、历史学家和小说家,曾作为《时代》周刊记者在抗战时期访华,以记述 1960 年、1964 年、1968 年和 1972 年美国总统选举而著称。


3.既然你已经有了一棵摇钱树(指技术),那就榨干他 X 的!

我知道你喜欢编程,因为你喜欢技术,所以你投入了大量的时间和精力来掌握你所使用的技术,你的经验使你与众不同。梅花香自苦寒来,赚钱也是一样,此时的蛰伏可能只是你发展潜力的一种方式


这个行业瞬息万变,但成熟的技术能力往往不会被淘汰。很有可能,即使在几十年后,你仍然能够通过你所熟悉和喜爱的技术赚到一些体面的钱。


网友观点

网友 C4stor:我不确定我是否应该相信这篇文章的说法。看看 JVM,20 年过去了,它还在摇摆;内存分配模式呢?问题仍然存在;至于网络堆栈?看起来变化也不大。


年纪大一些的人似乎有时间正确地学习 unix 网络工具、JVM 调试工具和内存检查工具。我认识一些年龄较大的开发人员,我非常尊敬他们,因为我觉得他们可以调试计算机上发生的任何事情,使用的工具我甚至压根不知道,但这些工具确实已经存在了几十年。


而我,则需要通过谷歌搜索才能知道如何使用 tcpdump 或 jstack。


我同意新技术总是在不断涌现,但我觉得要赶上那些实际上仍然非常相关和重要的老技术是相当困难的。因为现在不会有人再来教你老技术,这些技术也不再会成为某个会议主题,更不会再被炒作,尤其当你意识到 90%的新技术都是旧概念的重新组合时。


然而无可否认的是:我不知道管理层是否意识到了这一点!


但是,根据我的观察,这种知识对生产力的影响确实是巨大的,尤其是当生产处于火热状态或发生棘手的问题时。


所以,尊敬前辈,请他们一起来参加会议和聚会,我们需要更多的智慧而非炒作


网友 asdfman123:我遇到的每一位年长的开发人员都非常博学,而且坦白地说,他们在这方面都比我做得好得多。


用一项爱好来打比方,比如弹吉他。把一个只玩儿了 4 年吉他的人和一个已经玩儿了 20 年的人放在一起比较是有些荒唐的,我觉得软件开发并没有什么不同。


唯一的问题是,当你年纪大了,你确实需要学习新技术。我曾经与那些被技术领域淘汰的较年长的开发人员交谈过,他们过去从事的是大型机技术,一直到职业生涯的中期,都从来没有想过要学习任何新东西。


只要你摆脱了明显正在衰退的技术,它们就像正在下沉的船(我认为,你至少应该提前 10 年预警),老实说,我不认为跟上时代有那么难。不必追随每个流行趋势,但要确保你所用的技术仍然是主流的


此外,初创公司对员工的年龄确实存在歧视,因为他们需要能工作到凌晨 2 点的员工。但事实上,仍然有很多稳定的、非创业的工作供你选择。从来没有离开过原始圈子的人可能会认为这是技术生涯完蛋的开始,但实际上有一些非常好的企业在等待着优秀的开发人员。


网友 Stratoscope:我今年 67 岁,已经编程 50 年了。


我注意到的一件事:在面向硬件的公司中,似乎有更多年长的开发人员和工程师。


我目前在 Wing Aviation 工作,这是 Alphabet 公司旗下的无人机快递公司。我们最初的位置在谷歌 X 大楼。


X 大楼附近到处都是硬件初创公司,当我刚开始在那里工作时,我立刻注意到一件事:这是很长一段时间以来,我第一次不是大楼里年龄最大的人。


现在我们已经搬到自己的小工作室里去了,我可能又变成最老的了,但问题并不大。我们的团队中有很多白发苍苍的人。




如果你对于这篇文章的观点有自己的看法,或者面对程序员“中年危机”有更好的应对之策,欢迎在评论区留言~


2019 年 8 月 11 日 14:0412995
用户头像
陈思 InfoQ编辑

发布了 575 篇内容, 共 202.7 次阅读, 收获喜欢 1178 次。

关注

评论 7 条评论

发布
用户头像
有了Plan A 属于当下,如何延伸到未来确实很难,需要付出很多,但同时请准备Plan B,他付出或许更多,但是可以延续你的职业生涯,说不定还未未来呢
2019 年 08 月 21 日 15:26
回复
有没有Plan B的相关的引导呢
2019 年 08 月 21 日 15:26
回复
用户头像
先说一下我的工作履历吧,5年国企(3年c++,2年jquery的前端web),后跳槽,目前2年的前端移动开发,使用过React,ReactNative和android。每天都在学东西,也不是说很新的东西。感觉有些慌张,马上30了,还是一个码农。感觉啥都干过,但啥都没有多深,也没有多大的项目拿得出手。考虑到以后,真是心烦意乱。不知道和我一样的还有多少,又是如何做的呢
2019 年 08 月 19 日 21:41
回复
用户头像
咨询工作确实是个选择,或者培训师,教练。
2019 年 08 月 13 日 18:07
回复
用户头像
10年前的文章拿出来炒冷饭,或许有一定的参考意义,但不可尽信
2019 年 08 月 12 日 00:19
回复
你觉得这是一篇十年前的冷饭,或许这应该成为你焦虑的地方,想想十年后的你会如何?会不会因为年龄歧视,走投无路?
2019 年 08 月 12 日 09:46
回复
用户头像
为什么没人评论,这个问题其实很值得,很需要探讨
2019 年 08 月 11 日 20:30
回复
没有更多了
发现更多内容

JAVA 程序展示时间与数据表保存的时间相差了 13 个小时!

我不自豪谁志豪

MySQL 学习 后端

中国历史学习

小任

历史 中国 中国历史

生活不奖赏心血来潮

池建强

个人成长 写作

部署Hexo博客到VPS

ini

企业招聘的需求决定了C/C++程序员的学习方向

C语言技术网-码农有道

C/C++

一次生产事故导致系统崩溃的原因排查过程

hellocj

乞丐版英制单位转换

escray

学习 CSD 认证实战营

聊聊我对开源的理解

zygfengyuwuzu

开源

从草根到百万年薪C/C++程序员的二十年风雨之路

C语言技术网-码农有道

c++ 编程语言 C语言

DataGrip常用快捷键

fliter

原创 | 类应该是匀称和均匀的

编程道与术

七大查找算法,面试考试皆可用

我不自豪谁志豪

Java 面试 算法

死磕Java并发编程(8):CurrentHashMap如何实现高效地线程安全?在Java8中有哪些设计实现的演进?

七哥爱编程

Java Java并发 ConcurrentHashMap

NIO 看破也说破(二)—— Java 中的两种BIO

小眼睛聊技术

Java 学习 程序员 架构 编程语言

Netty 源码解析(六): Channel 的 register 操作

猿灯塔

如何消除写作过程中的痛苦,让写作变成一种享受

七镜花园-董一凡

写作

零基础、非计算机相关专业的如何转型程序员

C语言技术网-码农有道

程序员 转型

终端Terminal:程序员是如何查询天气预报的?

lmymirror

GitHub 工具 命令行 terminal 终端工具

面试考试可用,十大排序算法

我不自豪谁志豪

学习 面试 算法

如何在“写作平台”做一个读者

小天同学

思考 写作平台 建议 读者 阅读量

Python 中怎样合并数据

张利东

Python

SpringIOC源码篇-Bean实例化-Spring如何选择类构造器(1)

申屠鹏会

Java Spring Boot

Centos的初步配置

玉龙BB

Docker Linux Docker-compose Centos 7

低代码是什么鬼

Jeff Kit

低代码 全栈 开发

Linux初学-01

Flychen

断章取义,不一样的C/C++语言的学习策略

C语言技术网-码农有道

C/C++

程序员大佬怎么跳槽?

程序员干货站

Python 人工智能 程序员 程序员人生 后端

早起实操手册

超超不会飞

效率 生活 自律

IT培训机构那些不得不说的事儿

C语言技术网-码农有道

IT培训机构

产品周刊 | 第 13 期(20200503)

Herbert

产品 设计 产品经理 产品设计

聊聊我的程序员下属

程序员干货站

Python 人工智能 程序员 程序员人生 程序人生

DNSPod与开源应用专场

DNSPod与开源应用专场

人到中年的程序员,请提前准备好Plan B-InfoQ