如何避免软件行业的薪资天花板?
英文原文:How to avoid the software salary ceiling
当程序员到了一定的阶段,通常都会有一个瓶颈期,随之的薪水也是难再有很好地提升,不妨看下一位谷歌工程师、创业者 Ross Williamson 在面临这些困境时的解决之道。
以下为译文:
在 18 个月前,我重新回到了技术员工队伍,我遇到了几个问题:
- 没有人关心我曾是 Google 的工程师,以及我创业时推出过两个非常有技术性的产品。面试时,我依旧要在白板上写代码。
- 我之前的薪水对于本地的科技市场太高了。
今天,我很高兴自己被雇佣了,困难都是暂时的。但我写了这篇文章,主要是让你明白本地科技市场。
把软件工程作为职场生涯的开始,你需要知道,2015 年计算机工程师的起薪是62553 美元。如果你工作在一个顶尖的工程公司:Google、Apple、非死book 等,会生活的很不错。在这些公司,高级软件工程师每年可以期望拿2~300K,这满足了大多数人的所需。另外,你无需在学校里花费额外的时间,或者长时间工作。
但是,如果你不是居住在硅谷或者工作于上面那些顶尖的公司怎么办?谷歌提供的薪酬已经是行业百分之前十了,但如果你只能找到能薪酬竞争力处在百分之五十的公司呢?
很多人成为了高级软件工程师之后会卡住,他们在5~10 年后依然是一个高级开发者。对于大多数人来说,卡住就卡吧!他们喜欢编码,并且不想管理人,以及薪水看起来还不错。在美国,一名高级软件开发者的平均工资 为 106,575 美元,这相当于中上层人的收入。但是,如果你想突破这一层怎么办?你如何突破薪水天花板呢?
当离开谷歌 3 年后,我第一次遇到了这个问题,而我选择了创业。接着 3 年后,我重新以员工的身份再次回归。
面试过程
我在小城镇面试初创公司和周边大公司时,没有人会因我的经历而给我加钱,我在谷歌工作过、创业、推出过 2 个技术性的产品完全不起作用。他们还让我通过白板写代码,并问我一些关于算法的问题,以及试图评价我的编码技能。我无法接受这些。正如之前说的那样,软件工程师的技术面试被打破。我们专注的领域,会对此前已经完成或实现的慢慢淡忘。事实上,我曾经通过了谷歌让人绞尽脑汁的面试题,可这些如果不是用于面试,你就不会再遇到。
无论如何,我还是受到了惩罚。我几乎忘掉了所有的算法和《Cracking the Coding Interview: 150 Programming Questions and Solutions》。在这个过程中,我搞砸了几个面试,不过最终我还是获得了一份好工作且不需要搬家,那还是在 3 个月以后。我比较了下搬家的时间和找工作的 3 个月时间,选择了后者。
如果你打算在一家软件公司工作,面试过程你是逃避不了的。也许有一天技术面试会自我修复,公司停止这种面试人的方式,我觉得十年内不会看得到。
谷歌和微软就一直在宣扬这种恶习——那种智商题目和二分查找之类的问题,对这类业内通行的软件工程师面试过程我非常的鄙视。除非一个新的热门公司出现,成为最顶尖的公司,且不要面试应聘者,这个行业可能会有所改变。
我要求的薪水太高了
本地的招聘者看到我以前的工资就开始犹豫了。可笑的是,当找工作时,在创业 3 年间并领取过工资,也没有涨薪水。即使是 3 年前的工资水平,这对于本地的高科技市场仍然过高。我不想再去参加面试,除非是有招聘者给出一个差不多薪水。如果他们对我要求的薪水不惊慌,我会同意参加 一个技术性的面试。
我毕业后就到了谷歌工作,从未想过会有今天这样的情况。我认为在谷歌的工作经历会一直对我的职业生涯有帮助,并不会阻碍我。我真是服了,人们看到我简历上的谷歌,就会把我从名单中移除,因为太贵了。
我 24 岁进入谷歌是否就达到了我职业生涯的最高点?
现在,我终于明白为什么年龄较大的程序员抱怨科技界肆虐的年龄歧视。年轻的从业者更廉价,而程序员的工作效率是非常难衡量的,所以大多数的公司选择了更便宜的那一个。
那么,我们该如何处理此类问题呢?更有经验的程序员在找工作时,如何避免薪水的天花板呢?
我见过最好的解决办法是 James Whittaker 的一本书《Career Superpowers》。
James 是我在谷歌的老领导,他曾来回在谷歌(4 次)和微软(3 次)之间跳槽,每次薪水都要涨一倍,在我看来,实际工作方面并没有什么改变。
这本书的场景还是有局限的(专业性强),并不具有广泛性。许多的软件开发者都像躲避瘟疫一样远离 QA ,而 James 有目的性地选择了这个职业。他知道 QA 相比普通的软件开发者是更容易脱颖而出的。他首先通过了国家权威机构的测试和 QA,开始是去了一家测试公司,后来进入了谷歌担任测试主管,然后在微软担任副总裁。他的优势就在于专业性强。
从这个角度看,我简历的问题是——太一般。当然,我在谷歌工作过,并开了一家公司,可我的简历基本上只能看到「Web/Mobile 软件开发者」。
我知道所有的谷歌专利技术,但这些在现实世界并不管用。结果是,我和一个刚毕业的孩子并没有什么明显的区别,除了一个高级的职称而已。另外,在大多数公司,更多的经验也不会被看重,因为开发者的生产力没法衡量或评估。
我工作的这个行业,真是糟糕透了!
那么,我现在继续做开发者,同样的事情会不会再次发生?一个办法就是摆脱软件,进入管理或项目管理。但是我喜欢编程,我想绝大多数程序员和我一样吧。
相反,我已经采取了 James Whittaker 的做法。我花费了6~8 个月的时间学习 Graphics、OpenGL 和 WebGL。大多数人不懂 3D Graphics,另外我们已经发现与 Graphics 相关的工作也超难招人。越少人知道这个事情,对我越有好处。
另一方面,未来我找工作将会变得更加困难,因为 Graphics 相关的工作明显要比 Web 要少好多。这就是一场赌博,可我愿意。大多时候,你想要获得更高的薪水,可选择的工作就越少。
在接下来的几年,我们一起看看我这么做的结果吧!
题图来自:Steve Cadman
关于作者:
Ross Williamson,ThinkFaster 创始人,十年的软件开发经验。曾在谷歌工作 3 年,主要工作是 Chrome 浏览器,以及 Google+ 和 Webmaster Tools 的 Web 性能,接着创立了初创公司 ThinkFaster。