写点什么

为什么顶级软件工程师得不到应得的薪水?

  • 2020-09-03
  • 本文字数:1684 字

    阅读完需:约 6 分钟

为什么顶级软件工程师得不到应得的薪水?

史蒂夫·乔布斯说过,在软件开发行业,软件开发者的最好水平与平均水平之间的差别是 50:1;甚至可能是 100:1。如果你是一名软件工程师,可能会同意乔布斯所说的。


软件工程师的最好水平与平均水平之间的差距真的非常大,比大部分职业都大得多。


然而,也有一些行业的人才分布跟软件行业类似,最常见的就是职业运动员。1%的运动员表现比平均水平好得多,而这种天分差距也反映在运动员的工资上,这是完全有道理的。例如,美国职业棒球大联盟的顶级投手之一斯蒂芬·斯特拉斯堡(Stephen Strasburg),在 2019 年拿到了 3800 万美元,而美国职业棒球大联盟的平均工资是 430 万美元。


如果说工资反映了运动员的贡献,那么,为什么软件开发者的工资分配跟职业运动员的工资分配不一样?

为什么评价一个软件工程师那么难?

我认为,这主要是因为企业不能像体育俱乐部评价他们的球员那样评价软件工程师。


大部分职业体育项目都有非常完整且客观的运动员统计数据,管理人员可以相当准确地评价运动员。因此,俱乐部会为那些优秀的球员支付更高的工资,因为每个人都知道他们是优秀的。如果一家俱乐部不想付那么多钱,其它俱乐部会愿意付。尽管有时候一个运动员的价值和价格会有一些差异,但两者之间的差距永远不会太大。这正是信息非常透明时,市场的运作方式。


而软件开发市场就是一个完全不同的世界。你不可能知道某人是否是一个好的软件工程师,除非你曾经与他们密切合作过很长一段时间。


如果你是一个程序员,你可能会有一个能够贡献 10 倍、50 倍平均产出的同事。如果现在你是这个人上级的上级,你会知道他/她是一个“10 倍工程师”吗?如果你的 CTO 或 CEO 知道他/她是一位如此出色的工程师,会愿意支付比平均水平高 10 倍的工资来留住他们吗?


很可能不会。


事实上,那些“10 倍工程师”们只得到 10%的加薪,仅此而已。根本原因是人们不知道他们有多好,除了直接接触的同事。

编程面试结果作为评价依据是否可行?

事实上,从大型科技公司的招聘流程中就可以看出评价一个软件工程师是多么的困难。


对于程序员来说,最常见的技术面试流程是要求他们解决非常具有挑战性的编程问题。如果面试者之前从未见过这些问题,那么大部分这些问题都非常难解决。这也是为什么许多人选择集中练习(或记忆)可能的面试习题集(这也称为 leetcoding)。


同时,在短时间内解决复杂算法问题的能力与一个人在工作中的表现并不高度相关。一个软件工程师在工作中所做的事情与解决那些预先定义好的编程面试问题是完全不同的。这并不是评价软件工程师能力的一个理想方式。


软件工程师在工作中需要解决的许多问题是非常模糊的。知道如何将一个模糊的问题分解为几个定义好的编程子问题,以及如何将一个业务问题框定为一个已经深入研究的学术问题,对于成为一个高效工程师来说是非常重要的。


尽管大部分公司已经意识到招聘过程中的这个问题,他们仍然倾向这么做。为什么?因为没有更好的方法来评价一个软件工程师的能力。也许这种传统的面试流程只能衡量一个软件工程师工作能力的 20%,但总比什么都没有强。


所以,你知道这有多么难了。

考核并不能使工资分配更平均

我之所以提出上面的面试例子,是为了说明几乎不可能用一种弹性的方法来评价一个软件工程师。现在,我想做一个思维实验来进一步阐述这一观点。


假设程序员的能力与职业运动员的能力一样容易衡量。如果这个假设是真的,你的工程师同事应该有些人拿年薪 200 万美元,而有些人拿年薪 10 万美元。即使他们都知道彼此的薪水和分配有多极端,他们仍然会感到公平。因为他们知道那些拿 20 倍薪水的人比其他人优秀 20 倍。他们值那么多薪水。


但试想一下,如果一个公司真的这样分配薪水,人们会不会感到不公平甚至愤怒?我想他们肯定会的,除了那些优秀工程师的亲密同事(那些每天和他们一起工作的人)。


由于几乎不可能大规模且客观地评价软件工程师能力,公司会更倾向用一种比较安全的方式来分配软件工程师的报酬,尽管这可能不会真实地反映出他们的能力。


原文链接:


Why Aren’t Companies Paying 50X Software Engineers 50X More? Why The Programming Job Market Is Not Like Professional Sport’s Free Agency?


2020-09-03 07:001896

评论

发布
暂无评论
发现更多内容

突破容量极限:TiDB 的海量数据“无感扩容”秘籍

京东科技开发者

分布式数据库 #TiDB

阿里云Lindorm与Intel、OSIsoft共建IT & OT超融合工业数据云

许力

数据库 大数据 IoT 工业互联网 工业物联网

阿里巴巴内部秘密培养的“Java架构师养成计划”图谱曝光,全是干货!

Java架构追梦

Java 学习 架构 面试 阿里巴巴人才培养计划

年薪百万offer从何入手?这份“通关面试手册”带你轻松碾压字节面试官

比伯

Java 编程 架构 面试 计算机

Meet new Sentinel Go committers!

阿里巴巴云原生

开源 开发者 云原生 sentinel 中间件

基于区块链技术落地应用开发-食品溯源

13828808769

《写给大忙人看的JAVA核心技术》.pdf

田维常

电子书

程序员的真实故事

Learun

敏捷开发

解析—MyBatis在SpringBoot中动态多数据源配置

比伯

Java 编程 程序员 架构 计算机

线程上下文切换,这些是你需要掌握的

田维常

系统上下文

CloudIDE插件在手,按时下班不愁

华为云开发者联盟

ide Cloud CloudIDE

一不小心,就入选Gartner魔力象限了

数据君

数据库

架构师训练营第 1 期 -week12

习习

人工智能应用实操:手把手教你用Python控制IoT智能硬件

智能物联实验室

物联网 IoT

量化交易系统APP软件开发(现成)

系统开发

教你用Python自制拼图小游戏,轻松搞定熊孩子

华为云开发者联盟

Python 游戏 拼图

云计算领域-杨明越加入InfoQ协作平台

杨明越

Linux中父进程为何要苦苦地知道子进程的死亡原因?

linux大本营

c++ Linux 后台开发 进程

数据资产管理平台规划概要

马踏飞机747

大数据 数据治理 数据资产

云图说|AI开发难!难!难!端云协同多模态AI开发套件你需要了解一下

华为云开发者联盟

AI 分布式协同 开发

大企软件系统问题多?归乡名企工程师:解决很简单,分分钟做个新系统

Philips

敏捷开发

第十一周 安全稳定总结

蓝黑

极客大学架构师训练营

每周学点 TARS——服务鉴权功能

TARS基金会

DevOps 后端 鉴权 TARS

今天,我们和人民大学一起干了件大事!

数据君

数据库

追忆

刘旭东

回忆 情绪

第十一周 安全稳定作业

蓝黑

极客大学架构师训练营

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

阿里巴巴云原生

开源 开发者 云原生 中间件 双十一

话题讨论 |程序员35岁被裁,是真的吗?你离35岁还有几年?

Java_若依框架教程

话题讨论

架構師訓練營第 1 期 - 第 11 周總結

Panda

架構師訓練營第 1 期

架构师训练营第 1 期 - 第十一周总结

Todd-Lee

极客大学架构师训练营

如何利用小熊派获取MPU6050六轴原始数据

华为云开发者联盟

物联网 IoT 小熊派

为什么顶级软件工程师得不到应得的薪水?_语言 & 开发_Tech Things Around_InfoQ精选文章