原文:The blockchain developer shortage is not real
撰文:Jeffrey Scholz
#01
引言
阅读有关开发人员的新闻,很难不产生人才短缺的印象。有道理,对吧?如果这个职位能被公司轻易找到更廉价的人替代,他们就不会支付某人每年 10 万美元。但是,开发者并不短缺。不相信我吗?
复制和粘贴一个通用的开发人员职位描述,并在 LinkedIn 上创建一个免费的招聘信息。你至少会得到“一打”申请人。付钱给 LinkedIn 来推广这个职位,你会得到更多。作为一名招聘经理,我已经看到这种情况发生很多次。
有成百上千的人申请一个职位,你应该可以把他们的年薪压到 10 万以下,对吗?错了。
开发者并不短缺。更确切地说,不存在自称是开发者的人的短缺。而是缺少合格的开发者。
应用急救技术并不能使你成为医生。使用电子表格并不能使你成为一名会计。懂得建立一个应用程序并不意味着你是一名开发者。
任何开发领域都是如此。知道 React js 并不能使你成为合格的前端开发。知道 node js 或 django 并不能使你成为合格的后端开发。懂得使用 solidity 编写与发布合约,并不意味着你是合格的区块链开发者。
我们很容易看到前端开发,并认为 "哦,我只是把一些 div 作为 react 组件的线框,添加一些 CSS,然后,我就有一个 web 应用程序了。" 好吧,你做到了,但它很可能是一个缓慢的、混乱的、不利于 SEO 的应用程序。
你必须能够考虑到不同的浏览器。你必须知道如何优化组件负载,并在正确的时间和地点调用 API。你必须知道如何构建一个代码库,让多个工程师可以在互不干扰的情况下贡献。你必须知道为什么你会选择一个 CSS 解决方案而不是另一个做同样事情的解决方案。你必须使用合理的现代工具来提高你的生产力。如果页面加载缓慢,你必须知道如何加快它的速度。你必须知道 SEO 和移动优化是如何运作的。你必须知道各种各样的库,这样便不会重复造轮子。虽然你不需要成为一个 UI 或 UX 专家,但你至少需要知道基础知识。你必须认识到内存泄漏并避免它们。你必须构建你的应用程序,以便无缝地运行 A/B 测试。你的架构需要有正确的抽象,以实现功能和库的无缝交互。
公司最终了解到,并不是每个自称是开发人员的人都知道他们在做什么。由于糟糕的软件绝对会毁掉一个公司的收入,他们知道,只能雇用合格的开发人员。
让我们对区块链开发者做同样的假设。仅仅因为你在主网上放了一个智能合约,你就不会自动成为一个智能合约开发者。那么,什么使你成为一个合格的智能合约开发者呢?
就像前面的例子一样,你知道一长串不应该做的事情。仅仅因为你的代码编译并通过测试,并不意味着它是好代码。后台工程师知道他们可以随心所欲地对数据库进行索引,但按某人名字的第一个字母进行索引是个坏主意,因为带有普通字母的索引会被超载。前端开发者知道,尽可能少的组件挂载应该依赖于 API 调用,以避免在网络缓慢时出现空页面。他们知道某些 CSS 模式在某些浏览器上不起作用,或者比其他浏览器性能差。
你能为区块链创建一个类似的列表吗?现在就试试。这个清单有多长?你确定你找到了主要的问题吗?
招聘经理希望确信你知道这个清单是什么。你不会在 4 周的基础学习和经历简单的智能合约开发后,就对哪些事情不能做变得非常熟悉。
我们刚刚介绍了什么不能做,那知道解决重复出现的问题的好方法呢?你知道模式是什么吗?因为没办法对知识进行服用,陷入到严重的造轮子境地?你是否知道你是否应该在 L2 上,如果知道,它将如何与 L1 进行交互?你是否能够从所有的要求中退一步,思考如何有效地对你的数据进行建模,减少 gas 费,并以一种灵活的方式应对未来的变化?安全是一个大问题。同样的黑客攻击一次又一次地发生,因为开发人员一般不研究这个。这使得有信誉的招聘经理害怕雇用区块链开发人员。
这些都不是为了把关或人为的排他性。也不是要对那些在其职业生涯中较早的人说三道四。
关键是,如果你最多只能展示一些基于在线课程的简单项目,那么公司就有充分的理由拒绝你的申请。
玻璃杯装满 50% 并不意味着它是半空的。对以上事实,存在一个乐观的理解。任何相当聪明的人都可以成为几乎任何编程领域的高级工程师,只要他们训练得足够努力和长久。掌握一门学科并没有什么神奇或神秘的地方。它已经被做了过数百万次,并将再次被做过数百万次。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。