写点什么

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

  • 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:002089

评论

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

InPlant SCADA笔记 工程属性中的经典模式

万里无云万里天

工厂运维 InPlant SCADA

(代购系统神器)深入解析1688平台API:商品图片与详情描述的获取之道

代码忍者

API 文档 API 测试 API 设计

螺旋文字滚动特效源码解析

南城FE

CSS 前端 动画

【YashanDB知识库】账号被锁,如何分析具体原因

YashanDB

yashandb 崖山数据库 崖山DB

面向物联网的 NGINX Plus:对 MQTT 流量进行加密和身份验证

NGINX开源社区

负载均衡 开源 物联网 IoT mqtt

再获奖项,亚信安慧AntDB数据库被评为“2023-2024国产数据库创新赋能优秀产品”

亚信AntDB数据库

InPlant SCADA笔记 io 查看数据库管理与IO驱动

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 查看工程的网络架构

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 二次确认

万里无云万里天

工厂运维 InPlant SCADA

在 Go 中如何使用反射实现简易版 encoding/json

江湖十年

Go json 后端

一枚与时间赛跑的中国芯片

脑极体

AI

macOS Monterey 12.7.6 (21H1320) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos ISO ventura

AI技术修复奥运珍贵历史影像,《永不失色的她》再现百年奥运女性光彩

阿里云CloudImagine

云计算 音视频 AI技术 视频云 奥运会

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

Geek_b7ce72

InPlant SCADA笔记 报警管理功能

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 调度任务功能

万里无云万里天

工厂运维 InPlant SCADA

大咖公开课 | 大模型场景讲解以及测试方法

测试人

软件测试

InPlant SCADA笔记 背景模版

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 查看工程的数据库与历史趋势的信息

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 工程管理界面的五种风格

万里无云万里天

工厂运维 InPlant SCADA

macOS Ventura 13.6.8 (22G820) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos ISO ventura

wamp配置多目录访问方法

tbapi

wamp

智源发布三款BGE新模型,再次刷新向量检索最佳水平

智源研究院

【YashanDB知识库】自动选举配置错误引发的一系列问题

YashanDB

yashandb 崖山数据库 崖山DB

从0到100:旅拍小程序开发笔记(上)

CC同学

InPlant SCADA笔记 工程管理的工程属性与全局设置

万里无云万里天

工厂运维 InPlant SCADA

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