过去十年是去中心化技术发展史上一个有趣的时期。在 2009 年之前,进展缓慢且没有明确的方向,直到中本聪 (Satoshi Nakamoto) 创建并部署了比特币。这使得区块链(比特币背后的记账技术)进入了人们的视野。
从那时起,我们看到区块链彻底改变了我们过去认为理所当然的各种概念,例如监控供应链、创建数字身份、追踪珠宝和管理航运系统。IBM 和三星等公司正处于区块链的最前沿,将其作为下一波技术创新的底层基础设施。毫无疑问,区块链的作用将在未来几年不断增长。
因此,对区块链开发人员的高需求也就不足为奇了。LinkedIn 在其 2018 年新兴职业报告中将“区块链开发人员”列为榜首,预计增长 33 倍。自由职业网站 Upwork 也发布了一份报告,显示区块链是其指数中 5,000 多项增长最快的技能之一。
杰夫·贝佐斯 (Jeff Bezos)在描述 2003 年的互联网时说:“我们正处于 1908 年赫尔利洗衣机 (Hurley washing machine) 的阶段。” 今天也可以用同样的话来形容区块链。该行业正忙于构建其基础。如果您一直在考虑从事区块链开发人员的职业,那么现在正是入门的好时机。
但是,您可能不知道从哪里开始。当您试图找到立足点时,浏览无数的博客文章和白皮书或混乱的 Slack 频道可能会令人沮丧。本文是我在考虑是否应该成为一名区块链开发人员时所学到的知识报告。我将从基础知识入手,为每个您需要掌握才能达到行业就绪水平的主题提供资源。
技术基础
虽然您不会被期望从头开始构建区块链,但您需要足够熟练才能处理区块链开发的职责。需要计算机科学或信息安全专业的学士学位。您还需要掌握数据结构、密码学以及网络和分布式系统的一些基础知识。
数据结构
区块链的复杂性需要扎实的数据结构理解。从核心上看,分布式账本就像一个复制数据库网络,只是它以区块而不是表格的形式存储信息。这些区块也经过加密保护,以确保每次添加区块时的完整性。
因此,您必须知道常见数据结构(例如二叉搜索树、哈希图、图和链表)的工作原理。如果您可以从头开始构建它们,那就更好了。
这个 GitHub 存储库 包含了新手学习数据结构和算法所需的所有信息。其中包含 Python、Java、Scala、C、C# 和 C++ 等常用语言。
密码学
密码学是区块链的基础;它是使加密货币能够运作的原因。比特币区块链采用公钥密码学来创建数字签名和哈希函数。如果您没有强大的数学背景,可能会感到沮丧,但斯坦福大学提供一门免费课程,非常适合新手。您将学习经过身份验证的加密、消息完整性和分组密码。
您还应该研究RSA,它不需要很强的数学背景,并了解一下ECDSA(椭圆曲线密码学)。
并且不要忘记加密哈希函数。它们是使互联网上大多数加密形式成为可能的方程式。它们确保电子商务网站上的支付安全,并且是 HTTPS 协议背后的核心机制。区块链中广泛使用了加密哈希函数。
网络和分布式系统
在理解分布式账本的工作原理方面打下良好的基础。还要了解对等网络的工作原理,这转化为计算机网络的良好基础,从网络拓扑到路由。
在区块链中,处理能力是从连接的计算机中获得的。为了在这些设备之间无缝地记录和交换信息,您需要了解拜占庭容错共识,这是区块链中的一项关键安全功能。您不需要了解所有内容;对分布式系统的工作原理有所了解就足够了。
如果您需要从头开始,斯坦福大学有一个免费的、自定进度的计算机网络课程。您还可以参考这个关于分布式系统的优秀材料列表。
密码经济学
我们已经介绍了一些最重要的技术知识。现在是讨论这个行业的经济学的时候了。虽然加密货币没有中央银行来监控货币供应或监管加密货币公司,但了解围绕它们的经济结构至关重要。
您需要了解博弈论,这是为存在相关方之间利益冲突的情景建模的理想数学框架。看看 Michael Karnjanaprakorn 的 博弈论入门指南。它清晰易懂。
您还需要了解哪些因素会影响货币估值以及影响加密货币的各种货币政策。以下是一些您可以参考的书籍
- 商业区块链:下一代互联网技术的承诺、实践和应用,作者 William Mougayar
- 区块链:新经济的蓝图,作者 Melanie Swan
- 区块链:区块链初学者指南,了解区块链技术和利用区块链编程,作者 Josh Thompsons
根据您的技能水平,您无需阅读所有这些材料。但是一旦您完成学习,您将了解区块链的基础知识。然后您可以深入研究好的内容。
智能合约
智能合约是一个在区块链上运行的程序,一旦交易完成,即可增强区块链的功能。
与传统的司法系统不同,智能合约是自动且公正地执行的。也没有中间人,因此您不需要律师来监督交易。
随着智能合约变得越来越复杂,它们也变得更难保障安全。您需要了解智能合约可能被执行的每一种方式,并确保它能按预期执行。目前,没有多少开发人员能够正确地优化和审计智能合约。
去中心化应用程序
去中心化应用程序 (DApp) 是构建在区块链上的软件。作为一名区块链开发人员,您可以在多个平台上构建 DApp。以下是其中一些平台
以太坊
以太坊是维塔利克·布特林 (Vitalik Buterin) 的心血结晶。它于 2015 年上线,是最受欢迎的开发平台之一。以太币是以太坊的燃料加密货币。
它有自己的语言 Solidity,类似于 C++ 和 JavaScript。如果您有任何一种语言的经验,您都可以轻松上手。
Solidity 的一个独特之处在于它是面向智能合约的。
NEO
NEO 最初名为 Antshares,由张铮文 (Erik Zhang) 和达鸿飞 (Da Hongfei) 于 2014 年创立。它于 2017 年更名为 NEO。与以太坊不同,它不限于一种语言。您可以使用不同的编程语言在 NEO 上构建 DApp,包括 C# 和 Java。经验丰富的用户可以轻松开始在 NEO 上构建 DApp。它专注于为未来的数字业务提供平台。
如果您的应用程序需要每秒处理大量交易,请考虑 NEO。但是,它与中国政府密切合作,并遵守中国的商业法规。
EOS
EOS 区块链旨在成为一个去中心化操作系统,可以支持工业规模的应用程序。它基本上类似于以太坊,但具有更快的交易速度和更强的可扩展性。
Hyperledger
Hyperledger 是一个开源协作平台,旨在开发跨行业区块链技术。Linux 基金会托管 Hyperledger,作为开放工业区块链开发的中心。
学习资源
以下是一些课程和其他资源,可帮助您成为行业就绪的区块链开发人员。
- 布法罗大学 (University of Buffalo) 和纽约州立大学 (The State University of New York) 合作开设了区块链专业课程,该课程还教授智能合约。如果您每周投入 10 个小时,您可以在两个月内完成它。您将学习设计和实施智能合约,以及在区块链上开发去中心化应用程序的各种方法。
- DApps for Beginners 提供了教程和其他信息,帮助您开始在以太坊区块链上创建去中心化应用程序。您需要了解 JavaScript,并且具备 C++ 知识将是一个额外的优势。
- IBM 还提供面向开发人员的区块链,您将在其中使用 IBM 的私有区块链并使用 Hyperledger Fabric 构建智能合约。
- 只需 3,500 美元,您就可以报名参加麻省理工学院 (MIT) 的在线区块链技术:商业创新和应用课程,该课程从经济学的角度考察区块链。您需要有足够的资金才能参加这门课程;它专为希望了解区块链如何在组织中使用的管理人员而设计。
- 如果您愿意每周投入 10 个小时,Udacity 的区块链开发人员纳米学位可以在六个月内让您做好成为行业就绪的区块链开发人员的准备。在注册之前,您应该具备面向对象编程方面的一些经验。您还应该使用 JavaScript 开发过 Web 应用程序的前端和后端。并且您需要使用远程 API 来创建和使用数据。您将使用比特币和以太坊协议为实际应用程序构建项目。
- 如果您需要巩固基础知识,您可能会对开源社团大学 (Open Source Society University) 广受欢迎的免费计算机科学课程感兴趣。
- 您可以在 Opensource.com 上阅读各种关于 开源中的区块链的文章。
区块链开发类型
区块链开发人员真正做什么?它不涉及从头开始构建区块链。根据您所在组织的不同,以下是区块链开发人员所属的一些类别。
后端开发人员
在这种情况下,开发人员负责
- 设计和开发用于区块链集成的 API
- 进行性能测试和部署
- 收集需求并与其他开发人员和设计师并肩工作以设计软件
- 提供技术支持
区块链特定
区块链开发人员和项目经理属于此类。他们的主要角色包括
- 开发和维护去中心化应用程序
- 监督和规划区块链项目
- 就如何构建首次代币发行 (ICO) 向公司提供建议
- 了解公司的需求并创建解决这些需求的应用程序
- 对于项目经理,组织员工培训
智能合约工程师
这种类型的开发人员需要了解智能合约语言,例如 Solidity、Python 或 Go。他们的主要角色包括
- 审计和开发智能合约
- 会见用户和买家
- 了解业务流程和安全性,以确保智能合约中没有漏洞
- 进行端到端的业务流程测试
行业现状
有广泛的知识库可以帮助您成为一名区块链开发人员。如果您有兴趣加入该领域,那么这是一个通过引领下一波技术创新来有所作为的机会。它薪酬丰厚且需求量大。还有一个广泛的社区可以加入,以帮助您作为一名真正的开发人员入门,包括 Ethereum Stack Exchange 和世界各地的聚会活动。
银行业、保险业、政府和零售业是区块链开发人员可以工作的一些行业。如果您愿意为此付出努力,那么成为一名区块链开发人员是一个绝佳的职业选择。目前,需求远远超过现有的人才。
3 条评论