前Airbnb工程師:如何零基礎猥瑣發育成區塊鏈開發者?

AI前線發表於2018-01-31
本文由 「AI前線」原創,原文連結:前Airbnb工程師:如何零基礎猥瑣發育成區塊鏈開發者?
策劃編輯|Vincent
作者| Haseeb Qureshi
編譯 | Debra
編輯|Emily

AI 前線導讀:"加密貨幣、ICO、網際網路催生的金錢產物——所有些東西可真太他媽的讓人興奮了,而你這個開發者是不是也坐不住了,也想擁抱這場瘋狂的盛宴?但你應該從哪裡開始做起呢?

很高興你跟我志同道合,都對這個領域超級感興趣。但是,我猜你可能發現自己目前處於困惑的處境,因為在區塊鏈飛速發展的時代,你還沒有明確的渠道來學習相關知識。

自從我離開 Airbnb,全職投入到區塊鏈工作以後,很多人都問我是如何這個領域的。這是我的這份“權威”但不完整的指南,希望能夠幫助你進入區塊鏈開發領域。"


本指南將分為十個部分:

  1. 為什麼要學習區塊鏈開發?
  2. 先決條件
  3. 比特幣的理論基礎
  4. 建立一個自己的區塊鏈
  5. 以太坊和智慧合約程式設計
  6. 智慧合約安全性
  7. 脫離輔助輪
  8. 建立自己的專案
  9. 探索區塊鏈社群
  10. 找到一份工作

為什麼要學區塊鏈開發?

在回答這個問題之前,我先給大家提個醒:區塊鏈現在是一個被過分高估的領域。這樣的價格不可持續,並且終將在某一天徹底崩盤。這一切都發生過,並可能再次發生。但是如果你長期在這個領域工作,你得學會排除價格的干擾。用 Emin Gun Sirer 的話來說就是,“價格是加密貨幣中最無趣的部分”。區塊鏈是非常重要的技術,且毫無疑問將改變世界。

如果你還不確定,我無法告訴你是不是應該到這個圈子裡來。但是當初說服我進入這個圈子有五個理由:

現在還早。

比特幣十年前就出世了,但在近十年才火起來,特別是隨著 2015 年以太坊的推出。這個領域的大多數新公司和創意都建立在以太坊的基礎之上,雖然以太坊現在仍很不成熟。

所以,即使你從現在開始學習,你也可以在幾年內成為世界級的專家。因為做這個的人不多,所以追上隊伍不是很難。這就跟 20 世紀晚期才開始學深度學習的專家一樣。

這個領域還沒有一個完善的人才培養渠道。

大多數最優秀和最聰明的學生都專注於機器學習,網路程式設計或遊戲開發。當然,區塊鏈在公共話語中變得越來越有吸引力,但它仍然是可以促進你職業發展的詭異而具有顛覆性的話題。

早期,區塊鏈完全是密碼發燒友、偏執狂和陌生人的專屬領地,直到最近這種情況才發生變化。作為一個好奇而思想開放的開發者,相信你會為這個領域帶來很多價值。

大部分創新發生在學術界之外

據我所知,中本聰不是一名學者。沒有大學或機構開設連貫的區塊鏈課程。這個領域的創新大部分是由愛好者、企業家和獨立研究人員引領的。幾乎所有你需要知道的東西都是在白皮書、部落格文章、公共渠道和開源軟體中可以找到。你需要做的,就是擼起袖子,開幹!

對人才的需求遠遠超過供給。

在這個領域沒有足夠的開發人員,他們不能很快地得到訓練。每個公司都在競相聘請區塊鏈人才,而專案人員應該是最能切身感受到人才稀缺的人。很多頂級公司因報酬不夠有吸引力而留不住人才,因為他們的選擇太多了。如果你掌握了一些技巧,就很容易找到工作。

加密貨幣真的很酷。

世界上還有什麼工作可以造出像密碼保護、去中心化貨幣這些科幻電影裡才會出現的東西?這就像狂野的西部大開發一樣,好的和壞的後果都有。這個領域將會更加透明,相關監管也會越來越完善。但毫無疑問,加密貨幣是你現在可以從事的最具創新性的領域之一。

Naval Ravikant 在最近的一次採訪中說道:成功的關鍵是能帶給社會一些它想要,但是卻不能獨立獲取的東西。學校裡是學不到這些東西的,否則早就全球供應了。

所以,你應該創造別人都不會的東西。目前,區塊鏈是一個全新的,世人對之知之甚少的新事物,如果你成功地建立了去中心化技術的未來,世界絕對不會虧待你。

先決條件

我建議在你在深入這個領域之前瞭解一些基礎知識。區塊鏈建立在數十年的電腦科學、密碼學和經濟學研究之上,中本聰是一個叛徒,但即使是他也很瞭解區塊鏈的歷史。為了理解區塊鏈的工作原理,您需要了解它們的構建塊——區塊鏈出現之前還出現過那些東西,以及為什麼這些東西不起作用。

以下是我們需要熟悉的先決條件,按照重要性依序排列。

請注意,這些連結只是一個起點,這些話題你還需要做進一步的瞭解。


電腦科學

資料結構

您需要熟悉主要資料結構的特徵和複雜性保證:連結列表,二叉搜尋樹,雜湊對映和圖片(特別是在區塊鏈中突出顯示的有向非迴圈圖)。它有助於從頭開始構建區塊鏈,以便更好地瞭解其工作原理和屬性。

加密

密碼學是加密貨幣的同名物和基礎。所有加密貨幣都使用公鑰 / 私鑰加密作為身份和身份驗證的基礎。我建議您學習 RSA(很容易學,不需要非常好的數學背景),然後再學習 ECDSA。橢圓曲線密碼術需要更多的抽象數學知識,雖然你不需要理解所有的細節,但要知道這是在大多數加密貨幣中使用的密碼術,包括比特幣。

另一個重要的密碼原語是密碼雜湊函式(cryptographic hash function)。這些可以用來構建承諾協議(Commitment scheme),這是建立 Merkle 樹的構建塊。 Merkle 樹使 Merkle 證明(Merkle proofs)成為區塊鏈用於可擴充套件性的關鍵優化之一。

分散式系統

這裡是幾本講解分散式系統的很好的教科書,但它涉及範圍廣泛,也很難學。分散式系統對區塊鏈的推理至關重要,所以在開始區塊鏈程式設計之前,你必須有一點這方面的基礎知識。

當你的工作不僅在一臺機器上進行時,你必須開始推理一致性和共識。你需要了解線性化( linearizable)和最終一致性(eventual consistency)模型之間的區別,容錯一致性演算法(如 Paxos 和 RAFT)的保證,以及分散式系統中推理時間上的難題,和安全與生存之間的權衡。

在這些背景知識的幫助下,你才能夠理解拜占庭容錯共識(Byzantine fault-tolerant consensus,公共區塊鏈的基本安全要求)方面的困難。您還需要了解 PBFT,這是第一個提供拜占庭式容錯共識的可擴充套件演算法之一。PBFT 是許多非證明區塊鏈共識演算法的基礎。同樣地,你不需要了解 PBFT 正確性的細節,只需要瞭解總體思路和安全保證即可。

理解分散式資料庫的傳統方法(核心,因為區塊鏈畢竟是資料庫)也是非常有用的。你還需要了解一下分片(例如通過一致性雜湊,Consistent hashing),leader-follower replication 和基於法定人數的提交(quorum-based commits),以及分散式雜湊表(DHT),如 Chord 或 Kademlia。

網路

區塊鏈的分散式主要來源於其對等網路拓撲結構。因此,區塊鏈是過去的 P2P 網路的直接產物。

要理解區塊鏈通訊模型,您需要了解計算機網路的基礎知識:這意味著你需要知道 TCP vs UDP、資料包模型、IP 資料包,以及 Internet 路由的工作原理。

公共區塊鏈通常使用 Flooding 八卦協議來傳播訊息。瞭解從 Napster 到 Gnutella,BitTorrent 和 Tor 等 P2P 網路設計的歷史對你來說是有益的。區塊鏈有自己的地位,但吸取了這些網路的設計經驗。

經濟學

加密貨幣本質上是跨學科的,這也它之所以迷人的一部分原因。除了電腦科學、密碼學和網路之外,它們還與經濟學有著千絲萬縷的關係。加密貨幣可以通過其經濟結構獲得許多安全屬性,通常被稱為隱密經濟學(cryptoeconomics)。因此,經濟學對理解加密貨幣來說至關重要。

博弈論

博弈論在加密貨幣經濟學中扮演著最重要的角色,即對多個代理人之間的收益和激勵的研究。你不需要對此有深入瞭解,但需要了解博弈論分析的基本工具,以及如何使用它們來分析一次和迭代遊戲中的激勵。

關於博弈論,您需要了解兩個關鍵概念,即納什均衡(Nash equilibria )和謝林點(Schelling points),因為它們在隱含經濟分析中佔有突出的作用。

巨集觀經濟學

加密貨幣不僅僅是協議,其也是一種貨幣形式。因此,它會受到巨集觀經濟法(如果可以稱之為法律)的限制。加密貨幣受到不同貨幣政策的影響,並會對通貨膨脹和通貨緊縮作出可預測的回應。你應該瞭解這些過程,以及它們對消費、儲蓄等方面的影響。

另一個有價值的經濟學概念是貨幣流通速度,因為其會影響貨幣價值。

個體經濟學

加密貨幣也與市場息息相關,這就需要了解微觀經濟學。你需要對供求曲線有非常敏銳的直覺,並具備推理競爭和機會成本(經常被用於加密貨幣挖掘)的能力。對於許多硬幣分配和隱含經濟系統,拍賣理論(auction theory)尤其重要。

現在,你已經掌握了基本理論,開始進入區塊鏈開發吧。

比特幣的理論基礎

2008 年 10 月,中本聰(Satoshi Nakamoto)發表了一篇白皮書,論述了分散數字貨幣的協議。他把這個協議稱為比特幣。

在瞭解區塊鏈背後的重要思想之前,您必須從比特幣開始,瞭解 Satoshi 最初的初衷。

首先,我建議您對工作證明(proof-of-work)和 fork choice rule(也被稱為中本聰共識)有所瞭解,從這裡開始:

視訊連結:

v.qq.com/x/search/?q…

我建議你多看一些視訊解說,讓這個想法在你的腦海裡生根發芽:

視訊連結 2:

www.youtube.com/watch?v=bBC…

有了對於區塊鏈的直覺之後,本文將對比特幣的關鍵組成部分進行更深入的端到端的闡述。


建立一個自己的區塊鏈

現在是時候構建您自己的基於工作量證明的區塊鏈了。別擔心,其實聽起來難做起來容易,這裡是一些很好的資源。

首先,我開了一個視訊講座,講解如何用 Ruby 做這件事情(即使你不是 Ruby 程式設計師,我也建議你看看):

資源連結:github.com/Haseeb-Qure…

在這裡你還可以找到其他用各種程式語言編寫的區塊鏈應用。繼續構建自己的模型。

當你做到這一點時,你應該已經很好地掌握瞭如何在區塊鏈(比特幣)上建立一個簡單的支付應用程式。你現在也應該有足夠的背景知識,能夠閱讀和理解原來的比特幣白皮書。

要了解比特幣挖掘的經濟學和機制,我建議觀看普林斯頓關於比特幣和加密貨幣的比特幣挖掘講座。

現在,你應該已經達到了瞭解比特幣 header,並知道每個元件含義的水平。您還可以使用比特幣區塊瀏覽器,探索原始比特幣交易。

現在是研究比特幣和加密貨幣歷史的好時機。以下加州大學伯克利分校的視訊做了很好的概述。

視訊連結:youtu.be/apYieuvnUaE

一些額外的資源:

  • 比特幣的學術先驅
  • 比特幣機制:UTXOs 和比特幣指令碼(比特幣指令碼不是非常重要,大致知道它能做什麼即可)
  • 比特幣 forks 指南
  • 軟分叉和礦工訊號
  • 雙重打擊,51%的攻擊和自私的開採
  • 重播攻擊
  • 比特幣可擴充套件性問題,這是比特幣生態系統中大部分爭議的來源。你應該知道為什麼
  • 比特幣人會對塊的大小有很多爭議。
  • 隔離的證人,也就是 SegWit,不是必須瞭解,但會經常出現。
  • 閃電網路(Lightning Network)是比特幣更重要的擴充解決方案之一,也推廣到其他區塊鏈
  • 比特幣完整節點,比特幣費用統計,圖表,圖表和其他圖表
  • 比特幣能源消耗指數(在釋出時,比特幣開採能源消耗量相當於祕魯全國)
  • Gwern 對比特幣齷齪之處作了深刻的論述
  • 如果你想更深一步瞭解,可以參考 Jameson Lopp 關於比特幣資源的資源。

以太坊和智慧合約程式設計

現在,您已經構建了自己的區塊鏈,知道比特幣的動態,現在是研究以太坊的時候了。

理解區塊鏈和工作量證明如何在對等網路內實現分散式拜占庭式容錯共識。但支付網路只是你可以應用區塊鏈的應用程式之一。在 2013 年,以太坊的創始人 Vitalik Buterin 問道:將區塊鏈應用到分散式計算機上會怎樣?

在以太坊上,你花錢讓礦工在這個分散式虛擬機器上執行自己的程式。這意味著您可以使用圖靈完整程式語言(不同於比特幣指令碼)執行任意計算。顯然,這包括所有的支付程式,因此以太坊比特幣的功能更強大,並做了進一步創新。

其後是智慧合約,即在此類虛擬機器上執行的程式的名稱。智慧合約可以根據程式的執行直接與區塊鏈的數字貨幣進行互動。換句話說,您可以建立自動執行的金融合同。這是一個瘋狂的想法,用這個程式設計模型,你幾乎可以做到所有科幻作品中的事情。

以太坊掀起了 ICO 和區塊鏈開發的浪潮。它是排在比特幣後面的第二大加密貨幣,它的開發者是排名第三的加密貨幣幣種的 10 倍之多。它擁有最強大的開發團隊,最成熟的工具,大多數 ICO 和專案都與其相關,且最被業內看好。如果你正在做區塊鏈開發工作,你很可能將會為以太坊智慧合約編寫程式碼。(即使無志於此,瞭解一下這個領域的趨勢也無妨。)

首先,關於高層次以太坊的詳解:

視訊連結:

www.youtube.com/watch?v=mCz…

以太坊背後的思想也催生了一波隱性經濟學的創新浪潮。你應該接觸一下 DAO 的思想。

好吧,幻想告一段落,讓我們來深入瞭解背後的技術吧。

Preethi Kasireddy 關於以太坊黃皮書和內部結構概覽介。以太坊使用的是賬戶模式而不是比特幣的 UTXO 模式,您很快就會明白為什麼這會使編寫智慧合約變得更容易。

與任何技術一樣,瞭解以太坊的最好方法是建立一些小型專案。

以太坊的主要程式語言是 Solidity,它是一種靜態型別的 JavaScript-esque 語言,實話說有很多缺點和設計問題。像 Viper 這樣的更強大的語言可以在推出之後取代它,但目前,Solidity 是智慧合約程式設計的通用語言。這基本上是以太坊的 JavaScript,所以你需要學會它(和它的陷阱)。

第一次接觸 Solidity 開發時,我建議您通讀所有的 CryptoZombies 教程。這些是高質量的 Codecademy-esque 教程,可以學到 Solidity 程式設計的基礎知識。

現在,你的胃口被吊起來了,是時候自己開發了。

入門以太坊的課題是構建一個相容 ERC-20 的令牌。我推薦這本指南作為你完成任務的指導教程。

Remix 是一個瀏覽器中的 Solidity 編輯器和編譯器, 它基本上是以太坊開發的輔助輪,所以我建議把 Remix 中的其他練習都做一遍。設定一個本地區塊鏈以瞭解以太坊工具也值得一試。本教程很好地介紹了一個端到端的區塊鏈堆疊,並對這些堆疊進行了解釋。

接下來,我建議你建立一個投票系統,稱之為以太坊的 Todo。 Karl Floersch 的教程講解了如何建立一個安全的提交顯示投票系統。

很好,現在該中期考試了:建立一個安全的投幣遊戲,兩個玩家可以安全地進行投擲硬幣遊戲。這次沒有教程,自己動手做吧。在這個過程中要考慮到可能發生的攻擊,如 玩家如何作弊?你能確保他們坦誠相待嗎?這裡有一些提示。

智慧合約的安全性

對於區塊鏈開發來說,保證安全性是絕對必要的。智慧合約一直被災難性的黑客攻擊,包括 DAO、Parity Wallet,以及 Parity Wallet hack 2(現在竟然還有他們自己的 T 恤衫)威脅著。如果你打算編寫生產智慧合約,你必須把這三個黑客透徹地分析一遍。

然而事實上,智慧合同很難盡善盡美。雖然程式設計工具鏈的改進讓黑客更難實施攻擊,但程式設計員會不可避免地犯錯誤。智慧合約程式設計過程中還會犯許多微妙的錯誤,例如搶先交易或安全隨機生成。

作為一名智慧合同開發人員,您必須把安全性放在第一位,所有處理大量資金流動的程式碼都應該通過像 Oyente 或 Securify 這樣的靜態分析器來進行,並進行徹底的測試,然後由有經驗的智慧合約審計師進行審計。為了結果更可靠,您還可以使用 OpenZeppelin 開源合同等預審元件。

為了加強安全性,我建議您使用 OpenZeppelin 的 Ethernaut,在這個遊戲中您可以找到攻擊智慧合約黑客的漏洞,這對你防範攻擊有很重要的參考價值。

Phil Daian 發起了一項有名的智慧合約黑客挑戰賽,叫做 Hack This Contract。

在這之後,我強烈建議閱讀由 ConsenSys 編寫的“智慧合同最佳實踐(Smart Contract Best Practices)”。預計你將會在智慧合約程式設計生涯中多次重溫這個文件。由安全專家推薦的參考書目也值得你進一步閱讀。

脫離輔助輪

如果你已經做到了這一點,現在就應該已經做好了通過 Remix 的準備,並可以開始正式使用 Solidity 開發堆疊了。

大多數開發人員推薦使用 VSCode 或 Atom 作為文字編輯器,因為它們的 Solidity 外掛相當完善。為了與本地區塊鏈進行互動,你需要使用 Ganache(以前稱為 TestRPC),以及用於測試(基於 JS 的)和配置構建管道的 Truffle 框架。

現在是研究 IPFS 的好時機,您可以將其作為一個比以太坊成本便宜很多的分散式儲存庫。以下是創始人 Juan Benet 的簡短說明:

youtu.be/skMTdSEaCtA

在與以太坊和和 IPFS 完整節點互動方面,大多數開發人員推薦使用 Infura。在乙太網路上,Etherscan 和 ETH 加油站可以提供有用的實時統計資料。

完成 Web3 堆疊設定後,嘗試部署一個端到端的 Dapp(分散式應用程式)。本教程是一個使用 Node 和 Postgres 作為後端的完整堆疊概覽,另外,本教程演示如何使用 IPFS 作為持久層來建立完全分散的應用程式。

建立自己的專案

現在,你應該對大部分技術比較熟悉了,剩下的就是開始構建專案,並深入到區塊鏈社群。

首先,開始建立自己的專案。如果有一些很棒的想法讓你興奮,那就去實現它,然邀請朋友來攻擊它!如果你還沒有好的想法,還有很多高質量的開源專案可以練手。OpenZeppelin 是建立智慧合約不錯的選擇。

此外,我建議你最好選擇一個你熱衷的開發專案,進入他們的 Slack 或 Rocketchat,告訴他們你做一些貢獻,讓他們給你分配一些小任務,,或者在他們的 Github 上發現未解決的問題。

請注意,雖然我一直專注於協議和智慧合約開發,但區塊鏈公司需要 Web 開發人員來構建其核心功能。這些角色通常需要與區塊鏈進行互動,所以你對於區塊鏈模型應該有所瞭解。但是對於區塊鏈初創公司的許多工程師來說,他們的大部分工作是構建一個 Python 網路伺服器,或者設計一個 React 前端,與區塊鏈互動可能只是這項工作的一小部分。您不必專注於智慧合約開發,因為實際上這只是區塊鏈工程的一部分。

除開源貢獻之外,還有許多區塊鏈黑客競賽不斷湧現。大多數專案都有一個你可以加入的免費的公共 Slack,以及一個非常活躍的以太坊 Gitter 社群。當你深入到這個領域時,你最終會在 Telegram、Gitter 等場所發現志同道合的夥伴,一起學習進步。

區塊鏈社群

真正去了解區塊鏈世界的最好方法就是沉浸其中,閱讀和聆聽最聰明的人,尤其是他們過去寫過的東西。這一直是我嘗試進入一個新領域時的策略,對我來說也是回報豐厚。

雖然好的區塊鏈內容很多,但同時也有很多廢話。以下是我推薦的學習社群。

媒體

我推薦三個很棒的播客,分別是 Software Engineering Daily Blockchain interviews,很多關於科技和加密貨幣的介紹和指導。其次是 Epicenter 和 Unchained,相信你聽過之後會去翻已經播過的節目來聽。另一個有趣的技術播客是 Conspiratus。

此外還有幾個很好的 Youtube 頻道(儘管 Youtube 上有很多垃圾),如 Ethereum Foundation ,並觀看 Devcon3 簡報。伯克利的區塊鏈課程記錄了他們的許多講座,其中大部分都是很棒的技術概述。另外還有 Decypher Media、Jackson Palmer 等技術頻道。

線上閱讀

區塊鏈發燒友通常在兩個地方發表他們的意見:Reddit 和 Twitter。Reddit 上的大多數使用者質量不高,大多是一些廢話。r/Ethereum 上的內容一貫質量不錯(對於特定的加密貨幣,還有一些瞭解透徹的使用者)。然而,這些人大多數是投資人,別太關注他們說了啥。遠離比特幣相關的使用者,比特幣社群在圈子裡臭名昭著,人人敬而遠之。

Twitter 更是魚龍混雜。無論如何,大多數區塊鏈人都活在 Twitter 的世界裡。根據我的經驗,這裡的區塊鏈人有五種型別:開發者、企業家、記者、商人,以及“思想領袖”。

對於這些人,我建議你遠離“思想領袖”,企業家無所謂,記者通常只關注重大訊息,除非你是個商人,否則對於開發者來說,這些訊息只會讓你分心。

最應該關注的是真正的開發者。目前,他們是最重要,也是正在推動技術的發展的群體。

以下是特定型別的代表人物:

開發者

  • Vitalik Buterin,以太坊
  • Zooko Wilcox,ZCash
  • Nick Szabo,智慧合約的發明者
  • 弗拉德 Zamfir,以太坊
  • Marco Santori,Cooley LLP
  • Riccardo“fluffypony”Spagni,Monero
  • Matt Liston,Gnosis

企業家

  • Balaji Srinivasan,Earn.com
  • Erik Voorhees,變形

投資者

  • Naval Ravikant,MetaStable
  • Ari Paul,Blocktower Capital
  • Linda Xie, Scalar Capital
  • Chris Burniske,Placeholder

記者

  • Tuur Demeester,Adamant Research
  • Laura Shin,福布斯(你也可以關注我,雖然我絕對不在這個名單之列。)

我建議你最好儘可能少關注 Twitter 和 Reddit,只關注一些新聞速遞了解最新訊息就足夠了,比如 Inside Bitcoin、Token Economy 、 Week in Ethereum.

除此之外,您不需要實時監控最新新聞,而應該專注於專案建立和學習。

以下使一些好的技術部落格:

  • Vitalik Buterin,網站上有很棒的區塊鏈和密碼經濟分析(閱讀所有他以前的部落格文章,Vitalik 被普遍認為是一代區塊鏈人的思想家)
  • Hacking,Distributed,由康奈爾大學研究人員進行區塊鏈安全分析
  • Unenumerated,尼克·薩博(Nick Szabo)的部落格文章,論述加密貨幣在社會中作用的文章
  • Money Stuff:馬特•萊文(Matt Levine)的 Bloomberg Syndication,深入分析市場、金融和區塊鏈新聞
  • Vlad Zamfir 對國有和公共區塊鏈持溫和謹慎的態度
  • Chris Burniske 撰寫了一系列關於如何評估加密資產的高質量部落格文章
  • Jameson Lopp 從區塊鏈生態系統軟體工程師的角度出發,撰寫了一系列偉大的技術文章
  • Tim Swanson 的 Great Wall of Numbers 對區塊鏈狂潮進行了清醒而條理清晰的解構,特別是在企業領域(你也可以閱讀我的部落格,再次宣告,雖然我仍不在這個名單之列。)

書籍和課程

如果你想要更加系統地學習區塊鏈,就需要看一些高質量的書籍和課程。

區塊鏈最好的教科書是 Bitcoin and Cryptocurrency Technologies (內含普林斯頓 Coursera 課程)。在這個領域,其他的書籍我只推薦 Andreas Antonopoulos 和以太坊創始人的 Gavin Wood 共同撰寫,O'Reilly 出版的 Mastering Bitcoin。非技術書我推薦 Nathaniel Popper 的 Digital Gold。幾乎所有值得閱讀的東西都是在部落格上,而不是在書本上,因為這個領域正在飛速發展,最重要的人物很少有時間寫書,而且書本在發行時經常已經過時了。

你還可以通過一些高質量的課程來系統學習。這是一些普林斯頓 Coursera 課程(Youtube 上也有視訊)和加州大學伯克利分校的一些講座連結。對於那些想要進入智慧合約開發的人們,Consensys Academy 的課程也不錯。

我還在舊金山的布拉德菲爾德電腦科學學院為軟體開發人員教授為期 4 周的加密貨幣研討會。如果你是舊金山的軟體工程師,想要了解更多關於加密貨幣背後的理論和實踐的知識,可以來聽一聽。

找工作

正如我之前所說的,區塊鏈初創公司正在瘋狂地招聘人才。如果你真的做到了以上我所說的,甚至只做到了一半,那麼你已經能夠在這個領域有所作為了。 AngelList 在如何在密碼空間找到工作做了一個很好的寫作。

這裡是幾個不錯的區塊鏈相關工作釋出區:

  • AngelList 加密啟動
  • BlockchainJobz
  • Ethereum Jobs
  • Be in Crypto
  • 區塊鏈工作委員會
  • Crypto Jobs List
  • Google(區塊鏈搜尋查詢)
  • ConsenSys Jobs(旗下有很多以太坊創業工作室)

我知道一些特別有前途的區塊鏈初創公司正在招聘開發人員:

  • 0X
  • 達摩實驗室
  • Civic

市場上還有一些大公司在招聘開發人員:

  • Coinbase,加密界的 Google,一直在瘋狂招聘
  • Stellar 和 Ripple,如果你想做對企業友好的加密貨幣,它們不錯的選擇
  • Square 已經整合了一些區塊鏈,但不知道他們是否在進行外部招聘
  • IBM、Visa 或 JP 摩根

但是在我看來,選擇進哪一家公司最好是因為對某一個專案感興趣,並可以直接參與開發。大多數區塊鏈團隊都願意為合適的人才進行遠端招聘。許多開發者可以通過 Twitter,Github 或公共 Slack 渠道,展示自己的技術能力,並表現出一定的主動性,他們會給人留下深刻的印象。

這就是我為對你的建議,完成這些之後,我相信你會比我走的更遠。

兔蟲洞

我向你展示的這些僅僅是一個開端。加密貨幣仍然處於起步階段,我真的相信這是一個值得投入的,發展最迅速的領域。我相信這個指南在一年之內就會過時,當你進入這個領域時還需要不斷探索,不斷進步,不斷學習。

更多幹貨內容,可關注AI前線,ID:ai-front,後臺回覆「AI」、「TF」、「大資料」可獲得《AI前線》系列PDF迷你書和技能圖譜。


相關文章