程序员要为降薪做好准备!
以下为译文:
如果考虑到工作量,就会觉得程序员这一职业的报酬高得惊人。以下是 Dan Luu 将其与其他高薪职业作比较的一段话:
如果有志于法律行业,就必须先足够幸运地进入一所顶级学校,这将花费数十万美元的学费。然后,你必须幸运地获得足够好的成绩才能进入顶级公司。再然后,你必须持续赢得职场竞赛才能避免被踢出局,这需要牺牲个人生活的方方面面。咨询、投资银行等与此类似,得到的补偿似乎与付出的牺牲程度成正比(例如,投资银行家的薪水更高,但工作时间却比律师更长)。
从付出和牺牲的角度来看,医学这条路似乎要好一些,因为有卡特尔限制人们进入该领域,但是与像 Facebook 和 Google 这样的大多数工作相比,医生这一职业所要求的学习和实习经历仍然是极其残酷的。
我姐姐目前处在医学实习的第二年,而我觉得,“极其残酷”这个词甚至都不足以描述她吃的苦。她每周工作 80 个小时,经常是夜班,救死扶伤,而在医院里看到的生离死别的场景就算回到家也不会忘记。她已经在医学院学习了四年,还得有至少一年的时间才能开始赚到医生级别的钱。相比之下,我大学一毕业就开始做程序员,一周工作 40 小时,挣得更多而且还不用随时待命,我感到挺不好意思的。
但是,令我不安的是,我们并没有真正明白为什么程序员能得到这么高的报酬,尤其是为什么这种情况能够持续存在?人们有很多猜想:
-
需求:随着软件吞噬世界,需要程序员去做的事情比程序员的数量要多得多。
-
供给:把人们培养为程序员很难,适合这个领域的人比预期的要少,而且编程培训班还没有我们想象的那么好。
-
初创公司:大公司需要与选择自己创业单干的程序员们竞争,而创业在许多领域都很难做到。
-
新颖性:这个领域是相对较新的,新领域的某些特质可能导致更高的利润和更高的报酬,也许是由于竞争关系还不成熟?
-
其他:我很好奇别人是否还有其他想法——请在评论区讨论吧!
现在形势都很好,而且自 Dan 2015 年那时候发表的评论以来,情况似乎变得更好了,但变化也有可能会发生。鉴于我们对深层原因一知半解,并且未来的变化方向可能多种多样,我认为我们应该认真对待崩溃的可能性:不是一定会发生的事情,或者会在任何特定时间范围内发生的事情,但足以让你认真对待并做好准备。
具体来说,我建议你以自己收入的一小部分作为生活费,并每月攒下数倍于生活费用的钱。比起保持支出水平不变,削减支出要痛苦得多。但攒钱的时间越长,你的处境就越好。如果采用这种方法,但程序员的行业并没有迎来降薪,那么你仍然会在一个好处境:你可以提早退休或把钱用来支持自己所爱的事情。
如果被解雇而找不到类似的高薪工作对你来说将是一场灾难,那就弄清楚你需要进行哪些改变,以避免这种情况。
(这一点并不只针对程序员,但是我认为行业降薪发生在技术界比发生在那些更成熟的领域的几率更高。)
以下是部分网友的评论精选:
@NewEntryHN:
许多程序员错误地认为自己做的事情很容易或者很简单,因为他们发自内心喜欢这件事,并且很多时候都把它当作一种业余爱好。他们的职业选择从来都不是为了赢,他们只是碰巧赢了而已,所以他们会觉得自己是骗子。
把编程当做爱好的程序员(通常也是最好的程序员)通常会通过在业余时间做自己的小项目来为自己未来的职业发展投资,这意味着很多周末和夜晚都用来尝试新事物、写代码、阅读、学习等等。这通常是一项无形的投资,因为这是一种业余爱好,而且感觉并不像在工作。
最后,其实程序员并不需要研究多深,就能让自己的知识面足够做出个让旁人一头雾水的东西来的。
没有人热衷于用心记住人体的骨骼或有关知识产权的法律文本。但是程序员很有可能熟知大量的 Bash 命令及其选项、HTTP 状态代码、API 接口等。医生能够从一系列症状中找到解决健康问题的方法似乎是非常高级的技术,但是在计算机外行看来,从一个 Error 提示的线索中就能解决计算机问题的能力简直就是魔法。
@Ikeboy:
我碰巧有喜欢阅读知识产权法律案件的爱好,这最开始是由我的公司受到知识产权问题的影响而引发的。
但在那之前,我也有阅读各种案例的业余爱好,纯粹是因为觉得有趣。我记得读过 Ross Ulbricht 的许多审判文件,并将其与他的支持者所声称的事情进行了比较,这个过程很有启发性。
@Ethn:
工资不取决于工作的难度。
工资基于因就业这一行为而产生的,未捕获的劳动力价值的机会成本。对于软件工程而言,这种对立是尖锐的,因为拥有相同的技能,一个雇员可以自己成立一个竞争性企业,并捕获所有价值。
在其他行业,你需要拥有大量资金才能做到,因此,如果你没有这样的资金,则机会成本要么不存在,要么因融资成本、风险而进一步降低。
你的最终 SWE 工资最终将是你可以折现到期望值而无风险的价值。
比起同一个企业的员工,公司的风险更小,从而能拥有更好的 EV,从而能从雇员身上获利,其中的原因包括品牌、现有客户群、速度、专有市场分析等等。
@Austincheney:
经济学对软件行业的理解很差,所以在雇用或支付开发人员方面,我质疑其中经济考虑的正确性。
由于低廉的复制成本,软件行业的与众不同之处在于规模。在别的行业,比如汽车行业,你可以轻松地预想到增加新劳动力的成本,可以将这些支出直接映射到增加的生产数量上。在这种情况下,劳动与产品的比例并不完全是 1:1,但是接近的——但在软件中这种接近 1 比 1 的比例不存在。
也许最大的不同是,在汽车装配的流水线上,工程师只占少数。大部分劳动是由工人的体力劳动和机器人产生的。在软件中,真正的工程部分同样只占少数,但真正的工程和机械的增删改查之间并不容易区别。
能证实这一点的是,许多开发人员害怕并坚决拒绝写任何形式的原始代码。如果你对编写一个问题的原始解决方案感到害怕,那么你做的事情又怎么能被称为工程呢?