作者介绍:Haseeb:加密货币对冲基金MetaStable Capital的普通合伙人。
原文链接:https://haseebq.com/about/
本文应该是我看到过对于区块链应用开发学习指导最全面,同时也是最好的材料。希望这篇文章能够让想学习区块链开发的朋友有所收获,在此特别感谢两位本文的翻译者:了得资本的Managing Partner @Blake 及 Mochimo 和 Ixian 的中国社区负责人 @angryolk。
区块链开发权威指南
加密货币,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/),但这是一个庞大而困难的研究领域。 分布式系统对于区块链的论证是绝对必要的,因此在处理区块链编程之前必须在此建立基础。
一旦你的系统不再运行在一台机器上,就必须开始论证一致性和共识。 您需要了解可线性化和最终一致性模型之间的区别。 您还需要了解容错一致性算法的保证,例如 Paxos 和 RAFT。 了解在分布式系统中论证时间的困难, 鉴赏安全与活性之间的权衡。
有了这样的背景,你将能够理解拜占庭容错共识的困难,这是公共区块链的主要安全要求。 您将需要了解 PBFT,这是首个提供拜占庭容错共识的可扩展算法之一。 PBFT 是许多非工作证明区块链一致性算法的基础。 再一次,你不需要了解 PBFT 太多的细节,而是总体的思路及其安全保障性。
理解传统的分布式数据库也是非常有用的(其核心思想是,区块链本质上是数据库)。 了解分片(例如通过一致性哈希),主从复制( leader-follower replication),分布式哈希表 (DHTs),例如 Chord 或 Kademlia.。
网络
区块链的分布式在很大程度上源于其点对点网络拓扑结构。因此,区块链是过去 p2p 网络的直接产物。
要了解区块链通信模型,您需要了解计算机网络的基础知识:如 TCP 与 UDP、数据包模型、IP数据包,以及大致的网络路由工作方式。
公共区块链倾向于通过 gossip protocols 和 flooding 来传播信息。学习p2p网络设计的历史,包括 Napster to Gnutella, BitTorrent ,Tor,都具有一定的指导意义。区块链有自己的特点,但它们借鉴了这些网络的经验教训以及它们是如何设计的。
经济学
加密货币本质上是多学科的 – 这是使它们如此迷人和激进的主要原因。 除了计算机科学,密码学和网络,它们还与经济学密切相关。 加密货币可以通过其经济结构获得许多安全属性,这通常被称为加密经济学。 因此,经济学对于理解加密货币至关重要。
博弈论
对加密货币最重要的经济学分支是博弈论,即研究多个主体之间的收益和激励。你不需要深入到很细节,但你需要了解博弈论分析的基本工具,以及如何使用它们来分析一次性和持续性游戏中的激励因素。
你的剧本中的两个关键概念应该是纳什均衡点和谢林点,因为它们在密码学分析中具有突出的特点。
宏观经济学
加密货币不仅是协议,也是货币的形式。因此,它们响应宏观经济规律(如果它们可以被称为规律的话)。加密货币受制于不同的货币政策,并对通货膨胀和通货紧缩作出可预见的反应。你应该了解这些过程以及它们对支出、储蓄等的影响。
另一个有价值的经济概念是货币的流通速度,特别是当它与货币的价值相对应时。
微观经济学
加密货币也深深地与市场交织在一起,这需要了解微观经济学。你需要对供求曲线有很强的直觉。你应该能够解释竞争和机会成本(它们将经常应用于挖矿领域)。在许多硬币发行和密码经济系统中,拍卖理论具有突出的特点。
我希望你已经熟悉了其中的一些话题。如果是的话,请随意浏览或跳过它们。
好吧,到现在为止,你已经完成并巩固了你的基础知识,现在您已经掌握了以上的理论,让我们来开始区块链开发吧。
比特币的理论基础
2008年10月,Satoshi Nakamoto发表了一份白皮书,他在其中描述了一种分散数字货币的协议。他把这个协议叫做比特币。
在你了解区块链背后的伟大创意之前,你必须先从比特币开始,掌握 Satoshi 的独到见解。
首先,我建议你建立关于工作证明和分叉选择规则(也称为中本共识)的直觉。你可以从以下视频开始:区块链可视化 Demohttps://www.youtube.com/watch?v=_160oMzblY8&feature=youtu.be
我建议多看几个视频,让想法更加深入你的脑海:比特币的工作原理https://www.youtube.com/watch?v=bBC-nXj3Ng4&feature=youtu.be
很好! 现在你已经建立了自己的直觉,本文将提供关于比特币原理的关键组件更深入的阐述。
自己构建区块链
现在你有了高级直觉,是时候建立自己的基于工作的区块链证明了。别担心,这比听起来容易。这里有一些好的资源。
首先,我有一个视频讲座,我将详细介绍如何在 ruby 中实现这一点(即使你不是 ruby 程序员,我也建议您观看):如何用 ruby 创建一条区块链讲解https://www.youtube.com/watch?time_continue=1016&v=3aJI1ABdjQk
资源及 PPT 点击此链接:https://github.com/Haseeb-Qureshi/lets-build-a-blockchain
你还可以找到用其他各种语言编写的区块链实现形式。建立你自己的区块链,并满足你自己的需求,是最实用的方式。
一旦你做到了这一点,你应该能很好地掌握如何在区块链(即比特币)上实现一个简单的支付应用程序。你现在也应该有足够的背景能够阅读和理解最初的比特币白皮书。
为了了解比特币挖矿的经济学和机制,我建议观看普林斯顿的比特币和加密货币课程中关于比特币挖矿的讲座。
如果你已经完成了这一课程,你应该对比特币有了足够的了解,能够通过比特币块头来理解它的每一个组成部分的含义。你还应该能够玩比特币块浏览器和导航原始比特币交易。
现在是研究比特币和加密货币历史的好时机。下面的视频,由加州大学伯克利分校提供,提供了一个很好的概述。
伯克利分校比特币学习视频:https://haseebq.com/the-authoritative-guide-to-blockchain-development/
一些额外的可靠学习材料:
比特币的学术先驱 (Academic precursors to Bitcoin)
比特币机制:utxos和比特币脚本(比特币脚本不是特别重要,只是大致知道它能做什么)( UTXOs and Bitcoin script)
比特币分叉指南 (Short guide to Bitcoin forks)
软分叉和矿工信号 (Soft forks and miner signaling)
双重花费,51%攻击和自私采矿(Double spends, 51% attacks, and selfish mining)
重放攻击 (Replay attacks)
比特币的可扩展问题是比特币生态系统中大多数争议的根源。你应该知道为什么行业内对块大小争论这么多。(Bitcoin scalability problems)
隔离见证,也就是Segwit,不是非常必要的,但它引出了很多东西。(Segregated witness, a.k.a. SegWit)
Lightning Network 是比特币更重要的扩展解决方案之一,也推广到了其他区块链中。(Lightning Network)
(NPC 也曾编译过一份完整的关于闪电网络的学习资料,可在历史消息中查看)
比特币完整节点、比特币费用统计、图表、图表和更多图表(Bitcoin full nodes, Bitcoin fee statistics, charts, charts)
比特币能源消耗指数(在本文公布时,比特币采矿消耗的能源与秘鲁所有地区一样多)
(Bitcoin energy consumption index )
格温关于比特币的深刻论述(Insightful essay by Gwern)
如果你想深入兔子洞的话,jameson lopp 在比特币上还有很多其他资源。(wealth of other resources)
以太坊(Ethereum)和智能合约的编程
现在你已经构建了一个区块链并了解了比特币的动态,现在是时候深入研究以太坊了。
你了解区块链和工作证明如何在点对点网络中实现分布式、拜占庭式的容错一致性。但是,支付网络只是你可以在这样的区块链上运行的一个应用之一。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)等方面。
作为一名智能合约开发者,你必须将安全性视为最重要的事情。在智能合约编程中没有“快速行动和打破常规”。这意味着任何处理大量资金流动的代码都应该通过像Oyente或Securify这样的静态分析程序来运行,进行彻底的测试,然后由经验丰富的智能合约审核员进行审计。你还应该尝试依赖预审计的组件,比如OpenZeppelin的开源合约。
为了加强你的安全性,我建议你使用OpenZeppelin开发的Ethernaut,这是一款你可以在智能合约中发现并攻击漏洞的游戏。他们中的很多人已经复制了对这个领域发生的智能合约的真实攻击。Phil Daian也有一套优秀的智能合约黑客挑战称为 Hack This Contract.
从新手到老手
如果你已经做到了这一步,你现在应该准备好跳过 Remix,开始使用一个可靠的开发堆栈。
大多数开发人员都推荐使用 VSCode 或 Atom 作为文本编辑器,因为它们有相当可靠的 Solidity 插件。为了与本地区块链进行交互,你将使用Ganache(以前是TestRPC),并且你将使用Truffle框架进行(基于JS)测试和配置构建通道。
然后是着手研究IPFS,你可以使用IPFS作为一个完全去中心的文件存储,其成本比Ethereum区块链低得多。以下是作者Juan Benet的简短解释:
对于Ethereum和IPFS全节点的交互,大多数开发人员推荐的Infura。Etherscan和ETH 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信息流塞满,请先关注这些人):
建设者
Vitalik Buterin, Ethereum
Zooko Wilcox, ZCash
Nick Szabo, inventor of smart contracts
Vlad Zamfir, Ethereum
Marco Santori, Cooley LLP
Riccardo “fluffypony” Spagni, Monero
Matt Liston, Gnosis
企业家
Balaji Srinivasan, Earn.com
Erik Voorhees, Shapeshift
投资人
Naval Ravikant, MetaStable
Ari Paul, Blocktower Capital
Linda Xie, Scalar Capital
Chris Burniske, Placeholder
记者
Tuur Demeester, Adamant Research
Laura Shin, Forbes
总而言之,我建议尽量减少您对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)撰写,关于他对区块链狂热的冷静而坚定的解构,特别是在企业领域
如果你想要一种更有条理的方法来学习这些材料,有一些高质量的书籍和课程(以及许多低质量的书籍和课程)。
如果你想用更结构化的方法来学习这些材料,有一些高质量的课程(还有很多低质量的课程)。我已经链接到了普林斯顿大学Coursera课程(视频也在YouTube上)和加州大学伯克利分校(UC Berkeley)的一些讲座。我也听说了针对那些想进入智能合约开发的人员关于康森斯学院(Consensys Academy )的好消息。
我还在旧金山布拉德菲尔德计算机科学学院( Bradfield School of Computer Science)为软件开发人员举办为期4周的加密货币研讨会。本课程仅限于旧金山地区,座位有限,因为它是一个小型的、深入的研讨班。但如果你是名位于旧金山的软件工程师,想了解更多有关加密货币背后的理论和实践,那么它可能很适合你。
但在我看来,加入一个公司最好方法是找到一个你感兴趣的项目并直接联系他们。大多数区块链团队都愿意为合适的人才提供远程办公职位。许多开发人员可以在Twitter、Github或他们公共的Slack频道上轻松的联系上。假如你有扎实的作品集并能展示技术专长,如果你表现出一些主动性。就会让很多人印象深刻。
这就是我能给你的。如果你做了以上所有的事情,你应该做好准备,不久你可能会比我走得更远。
兔子虫洞
因为兔子洞不会真的结束。我给你展示的只是一个开始。加密货币仍处于早级阶段,我真的相信这是你可以工作的最快速发展的领域。我相信这本指南将在一年内过时,还有很多令人惊叹的项目我还没有机会谈论。但如果你进入这个空间,你会在适当的时候找到他们。
保持探索。保持越来越好。保持学习。
本文来源:NPC社区