学习区块链是否意味着你未来能日进斗金?
获取高薪 Solidity 开发者职位没有捷径
这话从一个 blockchain bootcamp 口中说出来可能听着有些滑稽,但这是事实。
并不是说你无法提高你作为区块链工程师的薪资。你绝对可以。但问题在于,这比上一门在线课程然后在你的 GitHub 上放几个项目要难得多。
这样想一想。假设你正在聘请一位会计师来处理公司的账目。一位求职者骄傲地走到你的办公桌前,拿着一份证书,并告诉你他有十二周的经验。
你会雇佣这个人吗?当然不会!
那么,是什么让你觉得 Web3 公司会雇佣拥有同等资历的工程师呢?你通往高薪区块链工程师职位的旅程不可能在几周内完成。这个世界根本不是这样运转的。
嘿,等一下!人们确实“闯入了 Web3”。我凭什么说这不值得?这当然是可能的。但我鼓励你做的是,根据你需要付出的努力和期望的回报,进行一次冷静的、数据驱动的成本效益分析。
你可以很容易地在十周内找到一份区块链工作。学学如何勉强拼凑出一个 NFT,然后在 Fiverr 上以该平台招牌般的低价出售你的服务。现在你有一份 Web3 的工作了。但这是你想要的那份吗?
并非所有 blockchain engineering jobs 都是平等的。Fiverr 上的低端开发者与拿着巨额薪水的天才开发者之间存在着天壤之别。
外界对 Web3 薪资存在太多误解。我们需要纠正的第一个误解是:区块链的薪水真的很高吗?
糟糕的数据科学与 Solidity 开发者薪资的神话
在 Google 上搜一下,你会看到比较 Solidity 工程师薪水与其他软件专业领域薪水并按薪资排序的表格——当然,区块链工程师名列前茅,平均收入在 120,000 美元到 150,000 美元之间。
那不是“Solidity 工程师”的平均工资。那是已就业的 Solidity 工程师的平均工资。
Studying solidity 并把它作为一项技能添加到 LinkedIn,并不能让你成为一名已就业的 Solidity 工程师。我粗略估计,每 10 个对 Solidity 掌握得还算可以(即在我们非常难的测试中能得分 25% 或更高)的工程师中,只有 1-3 人能通过担任 Web3 工程师赚到钱。
数据完全遗漏了庞大的没有在该领域获得工作的 Solidity 工程师群体。如果我们把他们的薪水算进平均值,数据会怎样?平均工资当然会暴跌。
还有哪些变量可能导致 Solidity 开发者薪资偏高?为了确定“Solidity”是他们高薪的原因,我们必须剔除一个众所周知的相关性:工程师的经验越丰富,薪水就越高。通常,只有经验丰富的工程师才有闲暇和技能去自学一门不寻常的学科。这迫使 Web3 公司不得不与资深 Web2 工程师的薪资进行竞争,而奇怪的是,这类薪水通常在 120,000 美元到 150,000 美元之间。所以“区块链”并非是导致高薪背后的关键因素,对吧?
这里还有一个混淆变量:区块链工程师通常具备多种技能。如果你既能编写优秀的前端 Web 应用,又能编写优秀的智能合约,理所当然你可以要求更高的薪水,不是吗?如果你受过传统的网络安全培训,并且具备 web3 development 技能呢?你能看出我想表达的意思。
薪资的增长是由于 solidity (或者就此而言,rust)引起的,还是因为技能的组合?好吧,我不知道,但举证责任在那些声称(或强烈暗示)Solidity 工程师薪水高是因为这项特定技能的人身上。要提出这一主张,你需要将只懂 Solidity 的工程师细分出来,将他们与只懂其他技术栈的工程师进行比较,并且在保持他们工作年限和地理位置相同的情况下进行对比。
现在的我当然不会愚蠢地说掌握区块链技能和薪水之间没有关联。但是有太多混淆因素,综合来看,我怀疑掌握区块链的真正“薪资溢价”大概在 10-20% 之间。这是一次不错的加薪,但你也可以通过更好地应对面试和谈判来实现——可以说,这是比学习另一种技术栈更有用的职业技能。
顺便说一句,如果你想在没有统计学或数据科学学位的情况下,善于理智地质疑数据科学,这里有 three books I recommend。
客观审视 Solidity 工程师的高薪
声称 150,000 美元的薪水“很高”是非常具有误导性的。从绝对意义上讲它是很高的,但与一般软件开发相比,这其实是一个很容易获得的薪水。中型科技公司的初级工程师赚得都比这多。
不信?让数据自己说话好吗?
我们可以通过查看成熟但非顶尖科技公司的初中级软件开发职位,来了解薪资分布情况。这方面网上最可靠的数据来源是 levels.fyi。
我们来看看:
American Express
最低级别: $100,000
中级: $150,000
Boeing
最低级别: $83,000
中级: $140,000
Charles Schwab
最低级别: $90,000
中级: $150,000
你明白重点了吗?
150,000 美元并不算高。这只是一家无聊到连沃伦·巴菲特都会投资的公司里,有着 4-5 年经验的软件工程师的收入。
上述公司并不以软件作为其主要收入来源,因此他们付给软件工程师的薪水并没有那么高。但如果你看看科技公司,初级薪水起薪就是 150,000 美元,之后的发展空间是没有上限的。我指导过的一个人,他在一家正经科技公司的第一份工作就拿到了 200,000 美元的年薪,而且这家公司可能是你们很多人不知道或无法脱口而出的。
现在回到 levels.fyi,如果你的眼睛还没因为嫉妒而发红,那就输入更多知名科技公司的名字查查吧。
Web2 的薪资客观上已经很高了。没有必要为了高薪而投身 Web3。
如果目标是钱,那就去狂刷 leetcode
如果你的目标纯粹是钱,那就精通算法和系统架构面试题。你很容易就能在上面列举的那些无聊公司里找到一份好工作。
精通意味着你可以在 30 分钟内零失误地解决大部分中等难度的问题,并能处理所有的边界情况。你应该能够在 15 分钟内编写出完美解决简单问题的代码。而且你的变量命名必须规范。这将让你处于一种能够轻松获得多个工作邀请、并让各大公司为你竞价的有利位置。
即使你完全不擅长谈判,这些相互竞争的 Offer 也会替你搞定。获得这些职位非常简单。疯狂练习算法面试题,准备好后,给这些公司的一些招聘人员发冷邮件(DM),并向他们展示你在 leetcode 或 hackerrank 上的一些证据,证明你确实懂这些内容并且有很大的机会通过面试。如果能通过面试,招聘人员就能拿到一笔丰厚的奖金,因此他们会把你的资料推荐上去。通过面试,然后砰!你就有钱了。
好吧,这很酷,但是每个人都讨厌算法面试题。区块链会是解决这个问题的方案吗?
不,并不是。为了让你的申请在一大批写过 ERC20 代币和把 NFT 放到 OpenSea 上的求职者中脱颖而出,你必须付出远超他们的努力。而这很快就会变成像练习算法面试题一样漫长且费力的工作。而且结果的保证性更低,因为 Web3 是一个高度波动的领域。
狂刷 leetcode 是通往高收入的一条既定道路。这是人生的终极作弊码。每个人都讨厌这样做,这正是它将继续作为人生终极作弊码的原因。如果你愿意做别人不愿做的事,你就能获得别人拿不到的薪水。就是这么简单。
是的,leetcode 可能会很难。但这远比通过律师资格考试,或是支付昂贵的医学院学费并经历令人筋疲力尽且屈辱的实习期要容易得多。
学习一门语言并不能让你成为一名开发者
如果你懂 Kotlin,你并不会自动成为一名 Android 开发者。如果你懂 Swift,你并不会自动成为一名 iOS 开发者。如果你懂 JavaScript,你并不会自动成为一名前端开发者。为什么?因为你必须了解生态系统和框架,才能成为该领域真正的开发者。一门语言可以在一个周末内学会,但框架和生态系统需要几个月甚至几年的时间来掌握。为什么会有人仅仅因为你学会了一门像 Solidity 这样简单的编程语言就付给你六位数的薪水呢?这毫无道理。
回看上面提到的六位数薪水,你觉得这些公司支付那么多钱,是因为这些工程师上了几个 Java 教程并完成了一门在线课程吗?当然不是!支付高薪的雇主期望的是全面的精通,而不是你在简历上的一条声称自己懂某门编程语言的要点。
区块链技能不会神奇地解决签证问题
既然谈到了钱,那我们就来聊聊当今世界一个极其不公平的现象。在发达国家出生的、开发技能平庸的人,与发展中国家技术熟练的工程师相比,依然可以获得高薪(即使将高昂的生活成本计算在内)。在东南亚,工程师每月挣 700 到 1,800 美元是非常普遍的。就算税收和生活费为零,一个每月挣 8,000 美元但由于税收和生活费损失 70% 的人,最终还能省下 2,400 美元,仍然遥遥领先。通过生活在海外来省钱的想法不过如此!
生活在发展中国家真正有才华的工程师,面临着 Solidity 工程师的薪资天花板,这部分是由有关工程师薪酬的文化规范造成的,部分是由于可获得的资本较少。这会导致一种恶性循环:工程投资越少,创新越少,资本增长就越慢。
关于远程工作将使发达国家的工程师失业而有利于熟练海外工人的说法,有相当多缺乏常识的闲谈。事情没那么简单。如果美国的工程师窃取了公司的知识产权(IP),公司可以起诉到他们无家可归,并让他们极难再次被雇佣。如果海外工程师窃取公司 IP,公司对此则无能为力。公司可能认为节省 60,000 美元不值得冒这个风险。
申请 H1B 签证既昂贵又缓慢,且充满不确定性。我从未见过员工人数少于 20 人的公司会雇佣持有 H1B 签证的人。
其次是文化问题,这是非常非常现实的。在美国,说“某某国家的人懒惰且未受过教育”被认为是非常不妥的。但在许多亚洲国家,说这种话被认为是正常的。想象一下,作为一名人力资源主管,在视频会议上处理一名员工大放厥词的喧闹局面,然后还要担心被人在 Glassdoor 上发表负面评论。当然,这些并不一定会发生,但发生的风险增加了从截然不同的文化背景中招聘员工的成本。许多美国人盲目地相信全世界都认同他们对多元化的大都市观点。但有国际工作经验的资深招聘经理知道事实并非如此,这只是可能出现的几十个问题之一。文化很难融合,即使双方都很努力。80% 的公司合并失败是有原因的。有时即使是同一个国家和同一个行业的人,都很难调和文化差异!
而且不要低估时区问题。在一个理想的世界里,团队可以异步交接任务,一个人晚上工作,另一个团队第二天接着工作。在现实中,如果你需要一个关键细节而另一名团队成员正在睡觉,这个微小的不便可能会加剧成为生产力的杀手。团队越大,这种情况就越容易发生。
省下 500,000 美元,却因为日常误解导致团队生产力暴跌至零,这是不值得的。
这并不是说你无法使其运转。但随着组织变大,难度也会增加,而且为使其运转所付出的努力具有真实的业务成本,很容易抵消在工资上节省下来的钱。
顺便说一句,如果你是一家小公司,我认为在海外招聘是明智的。你最大的风险不是时区或文化,而是你最大的客户拖欠账单,或者投资者没有兑现他们承诺的支票。我上面概述的风险对你来说并不关乎生死存亡。但大公司无法如此灵活地应对文化和 IP 风险。令人遗憾的是,支付最高薪水的恰恰是大公司。
对于海外劳动者,我不是说区块链不会帮助你变得更具竞争力和差异化。我要说的是,它并不是能抵消我上述问题的灵丹妙药。你的求职申请仍然会处于严重的劣势,这是区块链技能无法弥补的。
我包含这一部分内容的原因是,我们学校有很多申请者,他们希望我们教授的内容能够帮助他们绕开这种糟糕且不公平的劣势。克服这个障碍是可能的,但其本身就是一场艰苦的战斗,值得专门为此探讨一番。
以下是我对寻求获得西方高薪份额的海外工作者的一般性建议。第一步:你必须绝对碾压算法面试题。你受到的标准比当地人更高,所以对自己绝不手软,直到你能把 leetcode 刷烂。第二步,如果你能被西方认可的学校录取,拿签证会容易得多。
公司可以更容易地聘用你作为实习生,而不必为你申请更难办的签证。碾压那份实习工作。比当地人更努力工作,相形之下让他们显得懒惰。你的经理绝不会让 HR 得到片刻安宁,直到他们正式录用你。对她来说你是一个零风险候选人,而她足够聪明,不会放弃为你极力争取的机会。
那样的话,公司就可以轻易地证明为你办理签证的费用是值得的。当然这个策略有一个明显的缺陷:去西方大学上学通常与出生在富裕家庭有关。因此,如果你无法实现那个选项,那就碾压面试题,并在像 Turing、Toptal 或 Gun.io 等信誉良好的平台上工作。如果你能为知名品牌做合同工,你的职业实力将会不断积累,直到你最终能够将天平倾斜到对你有利的一面。
我知道,拥有西方国籍的我站着说话不腰疼,对吧?好吧,这样想想看。我完全可以向你们(海外工程师)投放定向广告,承诺只要你上我的课,就能获得西方的财富。然后我会把你塞进一个大班级(为了扩展性的胜利),在那里你的问题永远得不到解答,当你没看到成果时,我就责怪你不够努力或者申请的工作不够多。
那样做我也会赚很多钱。所以我对你们如此残酷地坦白其实是在亏钱。肯定会有人发泄愤怒的评论,说我正在摧毁人们的梦想。接受现实吧。我曾在硅谷雇佣过 H1B 工人。现在我住在东南亚,付出了血汗和眼泪试图帮助我的朋友们分得西方的一杯羹。即使我已经拥有特权般的地位,这依然异常艰难。
这是可能的。我已经为你提供了逐步实现这一目标的指导。但这很难。而且区块链并不会让这种困难神奇地消失,哪怕是降低一个数量级也不可能。你可以拥有一段成功的故事。这些事情时有发生。你甚至可能很幸运,能够早得多地实现你的目标。但这很难。
相信我,没有人比我更清楚这一点了。
真正感兴趣的人会在竞争中击败你
即使你没有被上述所有论点吓倒,如果你带着赚取高薪的意图进入区块链领域,你最终依然会输。
在争夺有限职位的竞争中,招聘人员只会从几十名申请者中挑选一名。最有资格的候选人通常是学习最刻苦并在课外 Web3 项目上投入最多时间的人。那些为了事物本身而对其产生兴趣的人,将能够比仅仅受金钱驱使的人学习得更刻苦、坚持得更久。受金钱驱使的人会问“这什么时候才能结束?”而对区块链本身感兴趣的人会问“我接下来能学到什么?”你认为哪种动机会让你走得更远,并让你成为更有竞争力的求职者?
把学习 Solidity 当作快速致富的捷径
既然 Solidity 开发者的薪资客观上并不“高”(在相对意义上),为什么会有那么多教育机构强调它们很高呢?
啊,是的,他们会说“只要学习四个月 Solidity,就能拿到 $100,000 的高薪”。
如果你的第一份编程工作就是 Solidity,那是不可能发生的。
也许,如果你有足够的特权可以长时间不工作,拥有顶尖大学的物理学学位,并且智商高达 160,也许你第一次尝试就能拿到六位数的 Solidity 开发者薪水,但这并非大多数人能够复制的模板。
Crypto 领域有太多快速致富的骗局,程序员(或对编程感兴趣的人)也未能幸免。当然,为了欺骗大多数未来的程序员,你不能承诺代币会涨到月球或获得 1,000% 的回报。现在,以这种方式诈骗人们的市场已经有些饱和且缺乏新意了。
你需要更微妙一些。
你需要承诺付出看似较少的工作量就能获得高额回报(例如,“只要报我的课程”)。这就是连聪明人也会被骗进快速致富骗局的原因。
它们只是被包装成“快速致富,但没那么富,也没那么快”。
也许有人注意到了 RareSkills 也是靠教授区块链赚钱的,所以这到底是怎么回事呢?学习区块链有比高薪更好的理由。
学习区块链工程的正当理由
掌握一项虽新但截然不同的技能,通常会让你成为更好的程序员
学习 LISP 非常“无用”。用 x86 汇编甚至更糟的 brainf**k 编程,不会为你赢得一份高薪工作。
至少不会直接带来。
但它们会带来更好的效果。*它们让你能够从外部审视自己的知识。*如果你只能以对象、方法、单例和静态类的思维方式去思考,你甚至不会意识到自己正在这样做。
但是,如果你了解如何使用不同的高级语言对问题进行建模,并且了解 CPU 是如何实际对该问题进行建模的,你将能够更全面地解决真正的问题。在面对遇到的工程挑战时,你将拥有更好的一套第一性原理来进行推理。
而这会让你成为一名薪水更高的程序员。
一些半瓶子醋嘲笑 Ethereum 智能合约工程师为了在智能合约中节省几十个字节而竭尽全力,却没意识到这套同样的技能和思维方式也能很好地转移到构建超大规模系统上。
是的,在每秒 10 笔交易(tps)的小世界里,节省几百个字节无关紧要,但在支撑 100,000 tps 的系统上,这就非常重要了。
在白板面试题中,面试官会问“如何让大 O 运行时间变得更小”。这只是对现实的不完美反映。任何(稍微懂点行的)笨蛋都可以查阅算法词汇表,为工作找到最高效的算法。但是知道如何紧凑地进行数据建模需要练习。
而智能合约工程师在这方面非常有经验。
捕捉黑天鹅
让我们用 Nassim Taleb style 来看待这个风险管理问题。如果你学习了区块链,而区块链后来被证明只是一阵毫无用处的狂热,你会损失 4 个月到 1 年的时间。但这并不是全盘皆输,因为这些知识可以很好地转移到目前被认为是“有用”的学科中。
但另一种可能是,区块链真的极有可能会成为生活中不可或缺的一部分。在那个未来,你所投资的一年时间会突然让你占据极大的优势。
明智的人生在很大程度上是由那些高上升空间和低下行风险的选择构成的。掌握区块链难道不符合这种风险状况吗?
你更有可能与对学习充满热情的人一起工作
和谁一起工作将对你的生活幸福感产生巨大影响。在一个新兴领域工作的一个优势是,它充满了好奇和热情的人,他们能够坦然接受一定程度的风险。当然,为了追求稳定而优化你的职业生涯绝对没有错。我们都有不同的偏好。但如果你属于那种享受新领域所提供环境的人,那么你通常会发现你的工作更加令人满足。
让我们探讨一下为什么这项技术可能真的很吸引人。
你发现这项技术真的很有趣
一些不明真相的愤青会说,为了技术去研究区块链就像是为了看文章去读花花公子杂志一样。每个人实际上都是为了钱,对吧?
错。
研究一项由人类集体“拥有”而非由大公司拥有的技术,真的会带来更多的成就感。我并不是在贬低像 AWS 这样的平台。投入其中的工程天赋是惊人的。但它缺乏存在于真实且有用的应用中纯粹算法的永恒灵魂。
为什么 100 美元的葡萄酒通常比经济舱里那种把 2.50 美元卖到 15 美元的葡萄酒好喝,即使它们尝起来都像酸葡萄汁?我说不清楚,而且除非你是品酒师,否则你也说不清楚。但我们都知道其中的差异是真实的。
(对于那些试图在我的比喻中挑刺,说品酒师在蒙着眼睛时会被骗的人,我的确可以在盲测中分辨出联合航空经济舱的葡萄酒——它具有一种吞咽时会让我的下巴酸痛的显著特征)。
区块链不必比其他计算模型“更好”。能够做到“与众不同但有用”就足够了,这也为你第 12 次构建同一个应用提供了一个受欢迎的喘息机会。如果你对千篇一律的事物感到厌倦,并想尝试一些新事物,这已是一个非常充足的理由去学习区块链,前提是你要对自己的动机保持诚实,并控制好自己的财务预期。
尽管那些知之甚少的愤青喋喋不休地说区块链“只是一个低效的 SQL”,这并不能使这种说法成立。
从分布式系统的角度来看,没有任何理论表明“拜占庭容错必然导致可扩展性降低一个数量级”。
让你好好体会一下。(看懂我玩的文字游戏了吗?)
我们对分布式系统的了解少之又少,以至于我们并不知道去中心化计算和中心化计算之间的理论性能差距——甚至不知道这种差距是否必然具有决定性影响!
是的,这似乎是我们人类集体知识中存在的一个大漏洞,不是吗?欢迎来到创新的前沿!这里的事物令人兴奋,并且不是因为价格的疯狂波动!
从实际意义上讲,是的。当前的中心化计算机确实效率高出几个数量级。但它同样也获得了高出几个数量级的研究资金。不要将资本投入的结果与理论上的极限混为一谈。
你发现这个生态系统真的很吸引人
区块链对博学者有着内在的吸引力。你还能在哪里找到像这样一个集成了分布式系统、密码学、经济学、行为科学、博弈论、编译器、政府政策以及语言设计等领域强烈交集的地方?
思考所有这些领域是如何相互作用的充满了乐趣!
与其为了好玩而学习随意的话题,你可以学习那些起初看似各不相干的话题,而将它们结合起来能使你成为 Web3 领域更强大的贡献者。这份未经探索的地图通向一个更大的机会。
你有现实的机会成为一名思想领袖
你可能无法在一个成熟的科技领域成为思想领袖。那里的领导者过于根深蒂固,需要涵盖的领域也太多了。但在区块链或任何此类新兴领域中,作为一个相对普通的人(前提是你聪明、有动力并且有时间),你可以提出行业领先的解决方案。试想一下,RareSkills solidity bootcamp 的两名学生使用 Solidity 开发了一种预售/空投 solution,它的性能优于 ECDSA 和 Merkle Trees 等“既定”解决方案。(那篇 Mirror 文章由于技术性极强,甚至一度在 hackernoon 上成为了热门趋势)。
以防你匆匆扫过了这句话,让我强调一下:是学生,不是麻省理工学院教授!
这确实意味着你必须仔细选择在区块链中的细分方向。NFT 的资源和工具目前已经过度饱和了。大多数 DeFi 解决方案都是由预言机驱动的超额抵押贷款的某种变体。做大家都在做的事情,你是不会成为思想领袖的。
去寻找文献资料稀缺但似乎很可能有用的方向。
这就是 I (Jeffrey) 在区块链领域确立自己地位的方式。我注意到网上没有研究 Ethereum 中 Gas 优化的资源,所以我创建了一门 Udemy course。没过多久,它就成为了一门畅销课程,并且出现在“Solidity”搜索结果的顶端。环顾四周后,我发现未被充分解释的不仅仅是 Gas 优化,除了如何制作 NFT、以基本方式使用 DeFi 或编写 Solidity 代码之外,几乎所有的主题都缺乏深入的解释。所以现在 RareSkills is going after those topics 正在全力攻克这些课题。
我们不仅仅是为了耍酷才专注于专家级的课题。如果区块链领域想要向前发展,它需要能够在基本、基础和理论层面上透彻理解这项技术的创新工程师。只有从这个有利的视角,他们才能注意到哪些行不通,并为此提出可靠的解决方案。
毕业出又一个能建立又一个 NFT 铸造网站的工程师,虽然是一个不错的开始,但对于以有意义的方式推动 Web3 普及毫无帮助。
你可能真的会改变世界
让我们把视野拉远,不要忘记 Bitcoin 确实是具有革命性的。我认为稳定币正在颠覆许多金融领域的道路上。它们确实让跨境支付和外汇交易变得更加容易。NFT 和 DeFi 虽然还很不成熟,但已经让我们略微体验到了它们所能成就的事物。我们不知道下一个突破会是什么,但金钱的产业对社会乃至人性来说都具有极其根本的意义。在过去几十年甚至几个世纪里,我们处理金钱的方式并没有发生太大的变化。但如果它将以良好的方式被彻底改变,那将是因为区块链。而如果你不懂它,你参与这种改变的机会就是零。
结论
以拿薪水为目的进入区块链领域是一个有缺陷的职业策略。如果你有资格在区块链领域获得高薪工作,你也同样有资格在 Web2 中获得同等(或更高)薪水的工作。高薪工作需要高水平的技能,这方面没有捷径。尽管区块链拥有民主化的力量,但它尚未解决发展中国家中类似职位薪水较低的问题。
然而,聪明人除了钱之外,还有很好的理由对它充满热情。这是一种做计算机科学的正规且令人兴奋的方式。虽然薪水并不像许多信息来源认为的那么高,但它们在其他方面仍然提供了不对称的上升空间。
因此,请查看我们的 blockchain bootcamps 并 apply to RareSkills。
我们不向你承诺更高的薪水。我们向你承诺更好的东西。
原文发表于 2022 年 11 月 30 日