Nicholas' blog

程序员为什么越老越贬值的厉害?

# 转载# 底层逻辑

1. 类比工地搬砖的,个人多数只是一个环节而已

如果我们分析一下那些“越老越吃香”的职业,比如医生、律师、老师等,我们会发现如下特点:

  1. 他们的工作基本是以某个人为核心开展的,不需要军团似的“团队性”运作。
  2. 他们所需要的核心技能迭代速度不是很快,而且对过往经验的依赖非常强。

为什么大家都认为程序员是越老越贬值呢?

我们打个可能很多程序员不太高兴的比方,把IT领域与建筑工程领域的横向对比一下,与编码的工作类似的性质的刚好就是工程领域里面农民工所干的工作,比如:

建筑工程里面的油漆和木工 ------- 类似软件工程里面的前端开发,

建筑工程里面的泥工和钢筋工------类似软件工程里面的后端开发

这两种工作都有如下特点:

  1. 项目都是团队化运作的,个人只是项目中的一小部分。
  2. 工程的架构和工作规范都是由专业性更强的人制定的。
  3. 所用的技术和工具是高度封装和组件化的,就像钢筋工不需要学习钢筋的锻造技术。
  4. 你的岗位服从的价值大于创意的价值。
  5. 就业群体庞大,技能同质化

当然:

  1. 程序员入行的学历门槛和技能要求比木工、油漆工等要高得多
  2. 程序员与架构师的关系也不像农民工与建筑师那样存在political意义上的分层。
  3. 程序员所用的技术可能在三五年就已经完全更新换代了。

所以,程序员越老越贬值不确定。

可以确认的是如果一个程序员无法跟上技术更新的步伐、保持旺盛的工作精力,突破编码与技术架构、管理协调之间的瓶颈。

最可能的结果就是沦落为与后来而上的新进码农大军展开性价比的比拼。

来源:知乎 作者:Jim Jin

2. 在食物链的应用端,天花板低

在中国,程序员越老越贬值,是因为我们在软件行业中的位置比较低端。上层到互联网,应用软件中层到数据库,底层到驱动程序等等,我们用的都是国外成熟的软件架构,在此基础上做个简单的应用层面开发,就是中国的软件。

我们为什么没有自己的数据库软件?为什么没有自己的编译器?为什么没有自己的操作系统?等等,有技术含量的软件,从民用软件到工业软件基本是国外公司在垄断。我时常在想个问题,如果一个程序员,从26岁硕士毕业,到35岁遭遇裁员,仅仅9年时间。9年时间,如果是医生,可能还是主治医师,如果是老师,可能才是中级职称。凭什么认为程序员到9年就能达到这个行业技术巅峰?因为我们在软件产业链低端,程序员随着年资越来越高,工资越来越高,而他们干的活年轻人也能干,老板当然愿意用便宜的年轻人。

我在的公司,周边很多40多,50多的同事,不少人是公司的中坚力量,因为我们搞的很深入,一些研发需要多年的累计学习,一个人没有十几年甚至20几年的工作经验,是不可能对操作系统,对编译,对一些行业标准比如5G 视频编解码标准,有深入理解,并在此基础上进行创新。

来源:知乎 作者:仲夏的梦幻

3. 护城河要特殊的,需要复合知识

以我个人为例,现在我能接到的offer一般是这么些情况:

  1. 做低时延交易系统。难点是相关技巧细节网上讨论很少很零碎。

技术面基本都能过,唯一的例外就是碰上从互联网公司出来的傻叉外行,会问些奇怪的蠢问题挂人,也不知道是忌讳还是面试时察觉到了我对他们的不屑。

  1. 期权相关交易系统,难点是需要懂期权相关知识,如果是做市方向,需要同时懂低时延和波动率曲面。

  2. 对接境外交易品种,比如crypto。

  3. 合伙自立门户类型,极端情况下一个策略一个IT就能把业务跑起来 。

除此之外初级岗位已经接不到了。

你看,护城河要么是特殊的,非通用的领域知识(这是写c/cpp的老哥职业寿命比较高的主要原因),要么是行业自身特殊 --一两个人的小团队就能搭起赚钱的交易业务,没有通用的八股知识。

来源:知乎 作者:Deep Van

4. 知识密集型的部分正在逐步转化为劳动密集型,而首席业务,能力要求高

程序员这个工种目前的发展趋势,就是向“外科手术团队”靠拢

程序员本身会分化为两种,一种是主刀大夫,身上承担最关键的能力,并兼具管理职能;另一种是流水线工人,不需要操心宏观,只管细节,可替代性极高。

这两种程序员的含金量是天渊之别,前者可能年薪50万-100万,后者只有20万甚至更低。

为什么会这样?

这是因为程序员本质上是知识密集型的创造性劳动

其中,知识密集型的部分正在逐步转化为劳动密集型,靠DevOps,靠SpringCloud,靠成熟的架构;而创造性工作越来越集中到两个核心方向:技术与商业模式

按照创新画布区分,商业模式创新是颠覆式创新,技术创新是突破式创新,二者兼具是架构式创新。

老派一点的企业,会区分CTO和CIO。其中,CTO为技术负责,CIO为业务结合技术负责;CTO是技术能力优先,CIO是业务分析能力优先,就是这种区分的一个典型案例。

现在比较流行的是,一个团队,大概50人左右,有一个首席架构。其他所有的管理者来做业务分析得工作。或者让产品经理与技术团队紧密结合,由产品来干这个事儿。

未来这种区分会渗透到每个团队里去。现在很多初级产品经理都是技术出身,相当于小CIO;高开相当于小CTO。前者我给起个名字,叫“首席业务”,后者叫“首席技术”。

除了这两个关键节点以外,整个团队都是打杂的,是围绕着这两个关键输出点,按部就班的干活的,叫“螺丝钉”。

螺丝钉的未来是什么样?

螺丝钉这个群体,一定是流程化管理,用职能区分功能,用流程穿起来。他们在自己的领域深度钻研,做的是标准化的东西。业务也好,技术趋势也好,与他们没关系。

这些人必然很年轻,因为用不着很多经验,也用不着很多专业知识和技能。

这种人,职业天花板很低岗位要求也不高可替代性很高薪资也会越来越低劳动时间会越来越长。对于这个群体来说,培养不如更换。你不会去维修、改进一个螺丝钉,你换个新的就完了。

绝大多数内卷发生在这个群体里。

这也是很容易出现幻觉的群体,他们会觉得自己干了一个又一个活,随着年龄的增长,自己的技术提升了,经验提升了,能力提升了。

很可惜,投入产出比反而越来越低了,因为岗位要求的上限在那。

螺丝钉这个岗位本质上就是拼体力的,技术要求越来越低的。以前C语言家族的开发人员需要操心各种硬件驱动问题,内存的分配问题等等,现在大家都不操心了。以前Java程序员至少还要理解框架里每个组件的原理,JDK的实现原理,虚拟机的实现原理,现在也不用关心了。

我5年前去一家程序员培训机构招聘,很惊讶,他们批量产出只会SSH的程序员。所有的语言基础都一塌糊涂,但是能够用SSH画出合格的页面。没有人有本科学历,大专也不多,有些甚至是中专。要的钱也不多,只要比端盘子多就行。

有些同学可能觉得,自己绝对不是这个岗位的,自己应该是前面两个岗位的。

给大家一道自测题,“你是否说过,需求描述不清晰,这类的话?

如果回答“是”,你是这个岗位的可能性高达90%以上。螺丝钉才要求前道工序的质量,质量不够高就不干活——当然了,这个岗位的人也很难理解为什么。

这里给螺丝钉们日行一善,解释一句:因为有价值的人会引导对方说出业务目的和意义,抱怨需求不清晰的本质是坐等和甩锅。说到这个程度再理解不了,你跟钱没缘分。

接着说说下一个倒霉蛋,就是技术方向的“首席技术”们。

首席技术们的未来是什么?

未来将会发展成高开带中开初开的外科手术团队,但是现在,一般来说只有做到架构师了,才算是技术路线走通了。

这条路,技术含量很高专业壁垒高可替代性低

致命的问题在于,岗位太少,组织不需要那么多架构师,所以竞争极其激烈,内卷的严重程度第一。

因为中国目前的阶段是鸿蒙初开不久,商业化水平不够高,这部分红利已经足够吃了。

前段时间叫人口红利,也就是说,你只要把同样的商业模式铺到足够多的人就行。所以你看2C的烧钱就行。

现在叫商业红利,也就是说,现在的商业模式很陈旧,商业化水平低,只要你把先进的商业模式搞出来,就能吃到红利。

还有政策红利,就是市场化的程度还在增高,让出一部分,我们吃一部分红利。

所以颠覆式创新,成本低见效快,足够了。技术嘛,凑合用就行。

现在一个公司的研发至少要50人以上,才能有一个架构师。

而他的预备队至少也是35人以上(开发)。35个人竞争一个岗,大概就是这个竞争烈度。

你竞争这个职位,还不如去竞争CTO啊,拿的钱还比架构多。

那么竞争不上的怎么办?就还是前面说的那个岗呗。

最后,说说这个“首席业务”。

首席业务们的未来如何?

他既不是技术大牛,也不是产品经理,但实际上是技术和业务的结合点。

传统的Title里,这些人其实应该叫“解决方案专家”,有的企业叫“Solution Manager”。他们为公司的业务团队提供了技术咨询服务。

他们天然的会成为整个团队的舵手,前进的方向是这些人把握的。

这些人的水平决定了技术团队被整个公司承认的下限

啥意思呢?如果这些人水平高,业务方会非常省心,非常满意,公司业务发展也会顺畅得多,赚的钱也多,自然都认为技术团队给力,靠谱。

“首席技术”们做不到这个,因为他们的新技术、高精尖技术,距离业务太远了。

这个岗位未来会是非常有竞争力的岗位,也是大家除了管理岗以外发展的方向。

程序员的贬值是必然的,向外归因是没有意义的,你的人生路到底要怎么走,不是说你骂几句资本家,骂几句内卷,就能改变的。没有用,所以我也懒得提。

我这篇回答里,把未来程序员团队的模式做了个预测,大家可以参考自己现在所处的位置,寻找适合自己的方向。

来源:知乎 作者:上官人