可能是对于区块链应用开发学习指导最全面,同时也是最好的材料。

原文标题:《区块链开发权威指南》(The authoritative guide to blockchain development
作者:Haseeb Qureshi,加密货币对冲基金 MetaStable Capital 普通合伙人
译者:Blake,了得资本 Managing Partner、angryolk,Mochimo 和 Ixian 的中国社区负责人

MetaStable 合伙人分享近万字的区块链开发指南Haseeb Qureshi,个人故事相当传奇:他 16 岁时拿着 50 美元开始玩在线扑克游戏,一年之后,通过扑克牌比赛赚了 10 万美元。19 岁便成为了一位全球知名的职业扑克比赛选手,获得众多赞助,已然是百万富翁。但是 21 岁的时候,他决定离开职业牌坛,从此再也没有打过扑克牌。25 岁时,他对计算机产生兴趣,开始学习软件,从此走上编程和技术投资之路,后来,加入大名鼎鼎的加密资产投资机构 MetaStable Capital,成为普通合伙人

加密货币,ICO,神奇的互联网现金 – 这一切都非常令人兴奋,而你,热切的开发者,想要了解这些疯狂的东西,你该从哪里开始呢?

我很高兴你对这个领域感到兴奋。我也是。但你可能会发现还是不清楚从哪里开始。区块链正在以极快的速度发展,但没有明确的指南来学习这些东西。

自从我离开 Airbnb 在区块链上全职工作以来,很多人都向我询问如何全时进入区块链空间。考虑一下我的权威(不可避免地这篇文章是不完整的)区块链工程指南。

指南目录

  • 为什么要学习区块链开发?
  • 预备知识
  • 比特币的理论基础
  • 自己构建区块链
  • 以太坊与智能合约编程
  • 智能合约的安全
  • 从新手到老手
  • 创建自己的项目
  • 领导区块链社区
  • 得到一份工作

为什么要学习区块链开发?

在我回答这个问题之前,让我先做一个小的陈述:区块链现在是一个被高估的事物。这些价格是不可持续的,崩溃肯定会到来。这一切以前都发生过,而且很可能还会发生。但如果你在这个领域长期工作,你就会学会对价格置之不理。用 emin gun sierr 的话来说,价格是加密货币中最不有趣的部分。这些都是非常重要的技术,它们将不可逆转地改变世界。如果你不确定,我不能直接告诉你是否跳进去。但我可以试着告诉你五个让我信服的理由:

区块链仍然很早期

比特币是 10 年前发明的,但区块链行业的创新率直到最近几年才达到一个狂热的水平,特别是随着以太坊在 2015 年的推出。这一领域的大多数新公司和想法都是建立在以太坊之上的,况且以太坊还很不成熟。

即使你现在开始,你也可以在几年内成为世界级的专家。大多数人都没做那么久,要赶上也没那么难。从现在开始学习区块链类似于在 21 世纪末开始研究深度学习。

这个领域还没有很强的人才漏斗

大学里最优秀、最聪明的学生大多专注于机器学习、网络编程或游戏开发。虽然区块链在公众话语中变得越来越具有吸引力,但它们仍然是一个怪异和颠覆性的话题,进入这个领域对你的职业生涯来说可能是场冒险。

在早期,区块链只属于 cypherpunk (赛博朋克)(其实更准确的说服应该是加密朋克)、偏执狂和怪人的领域,只是最近才开始改变。作为一个好奇和开放的开发人员,你会给这个领域带来很多价值。

大部分创新都发生在学术界之外

据我们所知,中本聪并不是一个学者。目前还没有一所大学或机构提供一整套的区块链知识体系。这里的大多数创新都是由狂热者、企业家和独立研究人员领导的。你需要知道的几乎都是白皮书、博客、公共休闲频道和开源软件。你只需要卷起袖子,投入战斗。

对人才的需求远远超过供给

这个领域还没有足够的开发人员,他们也不能快速得到培训。每个人都在竞相招聘区块链人才,项目方也感受到了人才短缺。许多最好的公司付不起足够的钱让员工留下来,因为他们有太多的机会。如果你掌握了一些技能,就很容易找到工作。

加密货币真的太特么酷了

还有什么地方可以建立像加密、安全、去中心化货币这样科幻小说里的事物?现在是狂野的西部 - 当然这带来好坏两面。这个领域可以更加透明,并最终实现监管。但毫无疑问,加密货币是您现在可以从事的最具创新性的领域之一。

Naval Ravikant 在最近的一次采访中说:成功的关键是给社会提供它想要的东西,只是你不知道怎么去做而已。你无法在学校学习到这样的知识;如果可以的话,这个世界的物质文明早就极度饱和了。

所以去建立一些没有人知道如何构建的东西吧。而现在,区块链是全新的,还有很多东西需要解决。如果你成功地建立了去中心化技术的未来,那么世界将会给你带来丰厚的回报。那么,在你进入这个领域之前,你需要知道哪些东西呢?

预备知识

我建议你在深入研究之前,先加强对基本原理的理解。区块链建立在计算机科学、密码学和经济学数十年研究的基础上。中本聪是一个「反叛者」,但他也很清楚之前的历史。为了理解区块链的工作原理,您需要了解先于区块链产生的区块,以及为什么他们不起作用。

以下是一些需要熟悉的预备知识,按重要性排序。注意,以下内容里的链接只是一个学习起点,您可能会想深入了解更多。

计算机科学

数据结构

您需要熟悉主要数据结构的特性和复杂性保证: linked lists, binary search trees, hash maps, 以及 graphs (特别是在区块链中具有显著特征的有向非循环图)。从头开始构建它们有助于更好地理解它们的工作方式和属性。

密码学

密码学是加密货币的代名词和基础。所有加密货币都使用公钥 / 私钥加密( public/private key cryptography)作为身份和身份验证的基础。我建议学习 RSA ( RSA)(它很容易学习,不需要很强的数学背景),然后看看 ecdsa ( ECDSA)。椭圆曲线密码需要更抽象的数学——理解所有细节并不重要,但要知道,这是大多数加密货币(包括比特币)使用的密码。

另一个重要的密码原语是密码散列函数(哈希函数)。这些可用于一致性,并且是 merkle 树的构建块。Merkle trees 支持 Merkle proofs,这是区块链用于可扩展性的关键优化之一。

分布式系统

关于分布式系统有一些很好的教科书(https://dataintensive.net/),但这是一个庞大而困难的研究领域。 分布式系统对于区块链的论证是绝对必要的,因此在处理区块链编程之前必须在此建立基础。

一旦你的系统不再运行在一台机器上,就必须开始论证一致性和共识。 您需要了解可线性化和最终一致性模型之间的区别。 您还需要了解容错一致性算法的保证,例如 PaxosRAFT。 了解在分布式系统中论证时间的困难, 鉴赏安全与活性之间的权衡。

有了这样的背景,你将能够理解拜占庭容错共识的困难,这是公共区块链的主要安全要求。 您将需要了解 PBFT,这是首个提供拜占庭容错共识的可扩展算法之一。 PBFT 是许多非工作证明区块链一致性算法的基础。 再一次,你不需要了解 PBFT 太多的细节,而是总体的思路及其安全保障机制。

理解传统的分布式数据库也是非常有用的(其核心思想是,区块链本质上是数据库)。 了解分片(例如通过一致性哈希),主从复制( leader-follower replication),分布式哈希表 (DHTs),例如 ChordKademlia.。

网络

区块链的分布式在很大程度上源于其点对点网络拓扑结构。因此,区块链是过去 p2p 网络的直接产物。

要了解区块链通信模型,您需要了解计算机网络的基础知识:如 TCP 与 UDP、数据包模型、IP 数据包,以及大致的网络路由工作方式。

公共区块链倾向于通过 gossip protocolsflooding 来传播信息。学习 p2p 网络设计的历史,包括 Napster to Gnutella, BitTorrentTor,都具有一定的指导意义。区块链有自己的特点,但它们借鉴了这些网络的经验教训以及它们是如何设计的。

经济学

加密货币本质上是多学科的 – 这是使它们如此迷人和激进的主要原因。 除了计算机科学,密码学和网络,它们还与经济学密切相关。 加密货币可以通过其经济结构获得许多安全属性,这通常被称为加密经济学。 因此,经济学对于理解加密货币至关重要。

博弈论

对加密货币最重要的经济学分支是博弈论,即研究多个主体之间的收益和激励。你不需要深入到很细节,但你需要了解博弈论分析的基本工具,以及如何使用它们来分析一次性和持续性游戏中的激励因素。

你的剧本中的两个关键概念应该是纳什均衡点和谢林点,因为它们在密码学分析中具有突出的特点。

宏观经济学

加密货币不仅是协议,也是货币的形式。因此,它们响应宏观经济规律(如果它们可以被称为规律的话)。加密货币受制于不同的货币政策,并对通货膨胀和通货紧缩作出可预见的反应。你应该了解这些过程以及它们对支出、储蓄等的影响。

另一个有价值的经济概念是货币的流通速度,特别是当它与货币的价值相对应时。

微观经济学

加密货币也深深地与市场交织在一起,这需要了解微观经济学。你需要对供求曲线有很强的直觉。你应该能够解释竞争和机会成本(它们将经常应用于挖矿领域)。在许多硬币发行和密码经济系统中,拍卖理论具有突出的特点。

我希望你已经熟悉了其中的一些话题。如果是的话,请随意浏览或跳过它们。

好吧,到现在为止,你已经完成并巩固了你的基础知识,现在您已经掌握了以上的理论,让我们来开始区块链开发吧。

比特币的理论基础

2008 年 10 月,Satoshi Nakamoto 发表了一份白皮书,他在其中描述了一种分散数字货币的协议。他把这个协议叫做比特币。

在你了解区块链背后的伟大创意之前,你必须先从比特币开始,掌握 Satoshi 的独到见解。

首先,我建议你建立关于工作证明和分叉选择规则(也称为中本共识)的直觉能力。你可以从以下视频开始:

区块链可视化 Demo

MetaStable 合伙人分享近万字的区块链开发指南区块链可视化 Demo

我建议多看几个视频,让想法更加深入你的脑海:

比特币的工作原理

MetaStable 合伙人分享近万字的区块链开发指南比特币的工作原理

相信看完视频,你已经建立了自己的直觉能力,接下来本文将对比特币原理的关键部分做更深入的阐述。

自己构建区块链

现在你有了高级直觉,是时候建立自己的基于工作的区块链证明了。别担心,这比听起来容易。这里有一些好的资源。

首先,我有一个视频讲座,我将详细介绍如何在 ruby 中实现这一点(即使你不是 ruby 程序员,我也建议您观看):

如何用 ruby 创建一条区块链讲解

MetaStable 合伙人分享近万字的区块链开发指南如何用 ruby 创建一条区块链讲解

资源及 PPT 点击此链接:https://github.com/Haseeb-Qureshi/lets-build-a-blockchain

你还可以找到用其他各种语言编写的区块链实现形式。建立你自己的区块链,并满足你自己的需求,是最实用的方式。

一旦你做到了这一点,你应该能很好地掌握如何在区块链(即比特币)上实现一个简单的支付应用程序。你现在也应该有足够的背景能够阅读和理解最初的比特币白皮书。

为了了解比特币挖矿的经济学和机制,我建议观看普林斯顿的比特币和加密货币课程中关于比特币挖矿的讲座。

如果你已经完成了这一课程,你应该对比特币有了足够的了解,能够通过比特币块头来理解它的每一个组成部分的含义。你还应该能够玩比特币块浏览器和导航原始比特币交易。

现在是研究比特币和加密货币历史的好时机。下面的视频,由加州大学伯克利分校提供,提供了一个很好的概述。

伯克利分校比特币学习视频:https://haseebq.com/the-authoritative-guide-to-blockchain-development/

一些额外的可靠学习材料:

如果你想深入兔子洞的话,jameson lopp 在比特币上还有很多其他资源。(wealth of other resources

以太坊与智能合约编程

现在你已经构建了一个区块链并了解了比特币的动态,现在是时候深入研究以太坊了。

你了解区块链和工作证明如何在点对点网络中实现分布式、拜占庭式的容错一致性。但是,支付网络只是你可以在这样的区块链上运行的一个应用之一。2013 年,以太坊的创始人 Vitalik Buterin 问道 : 使用区块链来实现去中心化的计算机会怎么样 ?

在 Ethereum,你向矿工付费,让他们在这个分布式虚拟机上执行你的程序。这代表你可以使用图灵完备的编程语言 (与比特币脚本不同) 执行任意的计算。当然,这包括与支付相关的应用,因此 Ethereum 启用并催生了创新的一套超越比特币的功能。

这就引出了智能合约——在虚拟机上运行的程序名称。智能合约可以根据程序的执行直接与区块链的加密货币进行交互。换句话说,你可以创建自动执行的金融合约。这是一个疯狂的想法,一旦你接受了这个编程模型,你就可以做各种想做的事情。

Ethereum 催生了 ICO 的浪潮和构建在区块链之上的开发人员。它是仅次于比特币的第二大加密货币,拥有 超过 10 倍 的下一代最流行平台的开发人员,最强大的开发团队,最成熟的工具,以及基于它的大多数 ICO 和项目。它还拥有最多的 行业支持。如果你正在进行区块链开发,那么你将 Ethereum 智能合约编写代码。(即使你不是,了解这个领域的情况也是很重要的。)

首先,我们对 Ethereum 做一个更详细和高层次说明 :

以太坊背后的理念也催生了 加密经济学领域 的创新浪潮。你应该深入了解 DAO 的思想,以及它们所暗示的所有科幻狂热梦想。

好了,幻想已经够多了,让我们深入研究一下技术。

以下是 Preethi Kasireddy 对 Ethereum yellow paper 及其内部结构 的一个很好的概述。Ethereum 使用的是 账户模型,而不是比特币的 UTXO 模型——你很快就会看到为什么这样更容易编写智能合约。

与任何技术一样,了解以太坊的最佳方式是构建几个小项目。

Ethereum 的主要编程语言是 Solidity,这是一种静态类型的 JavaScript-esque 语言。这是一种有 很多缺点的 语言,它也有很多设计上的问题。一旦 Viper 等更健壮的语言准备好投入生产,它们可能会取代 Solidity,但目前 Solidity 是智能合约的编程通用语言。它基本上是 Ethereum 的 JavaScript,所以你需要学习它 (和它的 缺陷)。

首次接触 Solidity 语言开发时,我建议你通读所有的 cryptozombie 教程。这是一个令人愉快和高质量的 Codecademy-esque 风格的教程,会教你 Solidity 的基础编程。

现在,已经激起了你的求知欲,是时候着手自己尝试了。

Ethereum 的「hello world」可以创建一个 兼容 ERC-20 的令牌。我建议将 本指南 作为指导你完成这个过程的第一个教程。

Remix 是一个浏览器内的 Solidity 编辑器和编译器——它基本上是 Ethereum 开发的训练轮,所以我建议把剩下的练习都在 Remix 内完成。但是,设置一个本地区块链并了解 Ethereum 工具也是值得的。本教程 很好地介绍了一个点到点的区块链堆栈,并解释了其中的各个部分。

接下来,我建议创建一个投票系统。我把这个叫做 Ethereum 的 Todo 应用。Karl Floersch 有一篇 很棒的教程,介绍了如何构建一个安全的委员会公开投票系统。

很好,现在开始期中考试:构建一个安全的抛硬币 (coin toss) 游戏,在这个游戏中,两个玩家可以安全地在抛硬币上下注。这次没有教程,自己做吧。想想可能的攻击——玩家如何作弊 ? 你能保证他们打得诚实吗 ?这里可以给你一些灵感

智能合约的安全

安全对于区块链的开发是绝对必要的。智能合约一直受到灾难性黑客攻击的困扰,包括 DAO 黑客攻击Parity 钱包黑客攻击,以及 第二次 Parity 钱包黑客攻击,如果你想要编写智能合约,你必须阅读这三个技巧的分析。

事实是,智能合约很难搞好。虽然编程工具链将会得到改进,使这些精确的攻击变得更加困难,但最终它们都是由于程序员的错误造成的。还有许多由智能合约编程产生的更微妙的 bug,比如在 前端集群(frontrunning) 或 安全生成随机性(secure generation of randomness) 等方面。

作为一名智能合约开发者,你必须将安全性视为最重要的事情。在智能合约编程中没有「快速行动和打破常规」。这意味着任何处理大量资金流动的代码都应该通过像 OyenteSecurify 这样的静态分析程序来运行,进行彻底的测试,然后由经验丰富的智能合约审核员进行审计。你还应该尝试依赖预审计的组件,比如 OpenZeppelin 的开源合约

为了加强你的安全性,我建议你使用 OpenZeppelin 开发的 Ethernaut,这是一款你可以在智能合约中发现并攻击漏洞的游戏。他们中的很多人已经复制了对这个领域发生的智能合约的真实攻击。

Phil Daian 也有一套优秀的智能合约黑客挑战称为 Hack This Contract

在你做到了这些以后,我强烈建议你整本阅读由 ConsenSys 编译的 Smart Contract Best Practices。希望在你的智能合约编程生涯中多次重温这个文档。bibliography 也值得安全专家进一步阅读。

从新手到老手

如果你已经做到了这一步,你现在应该准备好跳过 Remix,开始使用一个可靠的开发堆栈。

大多数开发人员都推荐使用 VSCode 或 Atom 作为文本编辑器,因为它们有相当可靠的 Solidity 插件。为了与本地区块链进行交互,你将使用 Ganache(以前是 TestRPC),并且你将使用 Truffle 框架进行(基于 JS) 测试和配置构建通道。

然后是着手研究 IPFS,你可以使用 IPFS 作为一个完全去中心的文件存储,其成本比 Ethereum 区块链低得多。以下是作者 Juan Benet 的简短解释 :

对于 Ethereum 和 IPFS 全节点的交互,大多数开发人员推荐的 InfuraEtherscanETH Gas Station 在以太网络上提供有用的实时统计数据。

一旦你建立了完整的 Web3 堆栈,尝试部署端到端 Dapp(去中心应用程序)。这个教程 为后端提供了一个使用 Node 和 Postgres 的良好的全堆栈概览,并且 这个教程 将向你展示如何使用 IPFS 作为持久性层 (persistence layer) 创建一个完全去中心的应用程序。

创建自己的项目

现在,你应该对大多数技术都有了深入的了解,剩下的就是开始构建一些东西,并深入区块链社区。

首先,开始建立自己的项目。如果你对某个点子很感兴趣,那就去实现它,并说服别人和你一起破解它 ! 如果你还没有特定的想法,或者不愿意动手,有许多高质量的开源项目欢迎你的贡献。OpenZeppelin 可能是上手智能合约的一个好的起点。

更好的是,我建议从寻找一个你喜欢的正在积极开发的项目开始。去他们的 Slack 或者 Rocketcha – 开发人员通常都在那里。告诉他们你愿意帮忙,并要求完成一些小的任务 (或者在他们的 Github 上发现一些尚未解决的问题)。

注意,虽然我一直关注协议 (protocols) 和智能合约的开发,但区块链公司需要 web 开发人员来构建它们的核心功能。这些角色经常需要与区块链 (们) 进行交互 , 所以要有一个区块链是如何工作的良好心理模型 , 但对于许多区块链初创公司的工程师 , 你的工作将在 Python 构建一个网络服务器 , 或者设计一个前端的 React, 与区块链交互可能只是一小部分的工作。你不必专门从事智能合约开发 — 实际上,这只是成熟的区块链堆栈的一部分。

除了对开源项目的贡献,还有 许多区块链黑客马拉 松不断涌现。大多数项目都有一个免费的 Slack,你可以加入其中,而且 Ethereum 本身有一个非常活跃的 Gitter channel,在那里有很多开发者。当你深入到这个空间,你最终会找到你的同伴,无论是在 Slack 频道,Telegram,还是 Gitter channel。无论在哪里,找到和你趣味相投的人并继续学习。

领导区块链社区

真正了解区块链世界的最好方法是让自己沉浸在其中。阅读和倾听最聪明的人,特别是他们过去写的东西。当我尝试学习一个新的领域时,这一直是我的策略,它为我带来了回报。

有很多好的区块链内容,但也有很多垃圾。这是我推荐的信息节食法。

媒体

在这里我推荐三个不错的播客,Software Engineering Daily Blockchain,他们对许多主题和加密货币提供了很好的技术介绍,以及 Epicenter 和 Unchained — 他们过去推出的很多都系列值得一听。另一个有趣的新兴技术播客是 Conspiratus。以上的博客建议你们都订阅。

YouTube 上也有几个不错的频道(尽管 YouTube 上有很多垃圾)。订阅以太坊基金会并观看 DEVCON3 演示文稿。伯克利大学的区块链记录了他们的许多讲座,其中大部分都是优秀的技术概述。Decypher 媒体还发布了访谈、白皮书评级和教程。Jackson Palmer 有精彩的每周概述,内容里面虽然技术部分较少但是涵盖内容较全面。

在线阅读

对于实时区块链聊天来说,它主要存在于两个地方:Reddit 和 Twitter。对于 reddit 来说,大多数栏目的质量都很差。r/ethereum 的质量一直不错(并且有一些适合特定加密货币的栏目)。不过,大多数栏目都被投机者占领,并不能对得起你的注意力。远离比特币相关的栏目。众所周知,比特币是最有毒性的社区之一,而 Reddit 只会放大这一点。

Twitter 上的内容更是参差不齐了。不管好坏,大多数区块链用户都生活在 Twitter 上。区块链 Twitter 起初对我来说有些神秘,但最终我建了一个非正式的 Twitter 区块链人物分类。根据我的经验,有五种类型的区块链人物:建设者、企业家、记者、交易员和「思想领袖」。

避免像瘟疫一样的「思想领袖」

企业家有理由活跃在 twitter 上,因为他们大多扮演炒作者的角色,或者在 Twitter 上宣传自己的项目。投资者大多在 Twitter 上谈论价格和炒作类项目,如果你也是这样的,那你继续吧。记者们倾向于在推特上发布当天的主要新闻。我建议你远离这些消息,除非你需要实时信息,但是通常这些信息对你来说都不是必须的。如果你是一个活跃的交易者,这可能很重要,但如果你试图在区块链技术上有所建树,大多数实时的东西都会分散你的注意力。

把注意力放在区块链建设者身上。他们是当前最重要的人,也是推动科技进步的人。

每个类别中都有几个代表(如果你想把你的 Twitter 信息流塞满,请先关注这些人):

建设者

企业家

投资人

记者

不防也关注我一下,尽管我绝对不属于这个名单。

总而言之,我建议尽量减少您对 Twitter 和 Reddit 的曝光率。 如果你不是记者或日常交易者,很可能,你不需要实时聊天。 重要信息将以异步方式向您显示,你可以关注重点信息摘要,而不是时刻获取市场的信息并受其影响。

我建议订阅 Inside Bitcoin 以获取最重要的加密新闻的每日摘要(它涵盖的不仅仅是比特币)。对于代币项目,Token Economy (代币经济)每周都有出色的内容,而 Week in Ethereum (每周以太坊)则对以太坊生态系统中以开发人员为重点的事件提供了很好的摘要。

除此之外,您基本上不需要监控实时新闻。请专注于学习和积累。

另外,你可以关注一些好的博客。长篇幅的内容往往是学习最好的选择。我的建议如下:

  • V 神博客(Vitalik Buterin)提供优秀的区块链和密码经济分析(阅读他所有的旧博客文章,Vitalik 被广泛认为是百年一遇的思想家)
  • 破解,分布式(Hacking, Distributed)由康奈尔研究人员发表的区块链安全性分析
  • 未枚举(Unenumerated),Nick Szabo 发表关于加密货币在社会中作用的挑战性和折衷性论文的著名博客
  • 金钱物质(Money Stuff),马特·莱文(Matt Levine)的 Bloomberg 的供稿,针对市场、金融和区块链新闻交叉点深刻的分析
  • 弗拉德·赞菲尔(Vlad Zamfir) 对国家和公共区块链适中谨慎的观点
  • 克里斯·伯尼斯克(Chris Burniske)撰写了一系列关于如何评估加密资产的优秀博客文章
  • 詹姆森洛普 (Jameson Lopp) 从构建区块链生态系统软件工程师的角度发表他出色的技术文章
  • 数字长城(Great Wall of Numbers)由蒂姆斯旺森 (Tim Swanson)撰写,关于他对区块链狂热的冷静而坚定的解构,特别是在企业领域

再一次,建议你也阅读我的博客,尽管我并不完全属于这个名单。

书籍和课程

如果你想要一种更有条理的方法来学习这些材料,有一些高质量的书籍和课程。

区块链最好的综合教科书是比特币和加密货币技术(Bitcoin and Cryptocurrency Technologies)(与普林斯顿 Coursera 课程配套)。在这个领域,我唯一推荐的书是安德烈亚斯·安东诺普洛斯(Andreas Antonopoulos)的《精通比特币》(Mastering Bitcoin)和他即将出版的《精通以太坊》(《Mastering Ethereum》),由以太坊联合创始人加文·伍德(Gavin Wood)合著(均由 o'reilly 出版)。另外一本我推荐的非技术性的书是纳撒尼尔·波普(Nathaniel Popper)的《数字黄金》(《Digital Gold》)。几乎所有值得阅读的东西都会出现在博客中,而不是书籍-这个领域发展很快,以至于最重要的人物很少有时间写书,而且书籍在发行时往往已经过时。

如果你想用更结构化的方法来学习这些材料,有一些高质量的课程。比如普林斯顿大学 Coursera 课程(视频也在 YouTube 上)和加州大学伯克利分校(UC Berkeley)的一些讲座。我也听说了来自康森斯学院(Consensys Academy ),对于想进入智能合约开发的人员来说的的好消息。

另外,我还在旧金山布拉德菲尔德计算机科学学院( Bradfield School of Computer Science)为软件开发人员举办为期 4 周的加密货币研讨会。本课程仅限于旧金山地区,座位有限,因为它是一个小型的、深入的研讨班。但如果你是名位于旧金山的软件工程师,想了解更多有关加密货币背后的理论和实践,它也许很适合你。

得到一份工作

正如我之前所说,区块链初创公司正在疯狂招聘。如果你真的做到了这一点,并且完成了我建议的一半,那么你很可能已经可以在这个领域找到工作了。AngelList 特写了一篇关于如何在加密领域找到工作的文章。

对于区块链相关的职务发布,有几个好的网站:

  • AngelList crypto startups
  • BlockchainJobz
  • Ethereum Jobs
  • Be in Crypto
  • Blockchain Job Board
  • Crypto Jobs List
  • Google jobs (blockchain search query)
  • ConsenSys jobs (以太坊创业工作室,其下有许多项目)

我知道一些特别有前途的区块链初创公司正在招聘开发人员:

  • 0x
  • Dharma Labs
  • Civic

市场上还有许多大型公司在开发加密产品:

  • Coinbase,加密行业里的谷歌,一直在疯狂地招聘
  • 恒星币(Stellar)和 瑞波币(Ripple)公司,如果你想直接开发更适合企业的加密货币
  • Square 整合了一些区块链,但不确定他们是否对外招聘
  • IBM、Visa 或 JP 摩根,如果你有传统情怀

请注意,这个特定的公司列表是以湾区为中心的,因为我居住于此。您可能居住在别的地方,以上网站推荐的工作会更全面。

但在我看来,加入一个公司最好方法是找到一个你感兴趣的项目并直接联系他们。大多数区块链团队都愿意为合适的人才提供远程办公职位。许多开发人员可以在 Twitter、Github 或他们公共的 Slack 频道上轻松的联系上。假如你有扎实的作品集并能展示技术专长,并且表现出一些主动性,就会让很多人印象深刻。

以上就是我能推进给你的。如果你做了以上所有的事情,不久你可能会比我走得更远了。

兔子虫洞

兔子洞不会真的结束。我给你展示的只是一个开始。加密货币仍处于早级阶段,我深信这是你可以工作的最快速发展的领域。我相信这本指南将在一年内过时,并且有很多令人惊叹的项目在这里我还没有机会谈论。但如果你进入这个领域,你会在适当的时候找到他们。

保持探索。保持越来越好。保持学习。


此文翻译组织介绍

NPC,由 Content、Capital、Community 组成。

  • Naissance Project content 是一个非盈利的区块链深度内容社区媒体。努力提供真正有价值的内容。
  • Naissance Project Capital 是 NPC 的投资基金,专注于投资早期优质且技术领先的区块链项目。
  • Naissance Project Community 是一个活跃的区块链技术,投资社区的高质量社区。

加入 NPC 社区请联系微信:luowei677329,欢迎投稿。

来源链接:mp.weixin.qq.com