通過學習Solidity和開發堆棧,就可以同時精通多個區塊鏈。從以太坊,到Polygon, Binance Smart Chain, Avalanche等等,Solidity涵蓋了所有這些。

這個路線圖是一項長期投資,不是我們在一天內可以完成的事情。但是按照這裡介紹的方法,我們將學習所有的基礎知識,包括先進的概念。

廢話少說,直奔主題。

CS50:計算機科學概論

根據目前自己的技能水平,可能首先需要對CS進行全面了解。

哈佛提供免費的CS50,這需要花費一段時間,但值得。基礎至關重要,特別是因為稍後將學習的許多高級概念建立在它們的基礎上。

freeCodeCamp

JavaScript是以太坊生態系統中許多工具的基礎。在學習Solidity之前,我們應該對JavaScript有一定的了解。

至少需要在這裡學習JavaScript課程。這也將花費相當長的時間,但是了解JavaScript也會幫助以後學習Solidity。

Public Key Cryptography

區塊鏈的核心是公鑰加密。我們應該了解它是什麼,它是如何工作的,以及為什麼以後要做的事情是有意義的。

這個視頻是一個很好的介紹。別忘了做些筆記。

Cryptography Digital signatures

使用密碼學,需要開始簽名消息和驗證身份。區塊鏈經常使用它。沒有簽名消息,就沒有安全交易。

例如,本文將使我們更好地了解交易是如何啟動的,以及為什麼這樣做是安全的。

區塊鏈上的哈希是什麼?

哈希是區塊鏈使用的一個核心概念。作為一名智能合約開發者,我們可能也會經常使用它。

本視頻很好地介紹了哈希算法及其在區塊鏈中的應用。像以前一樣,記筆記。

區塊鏈定義

現在知道了密碼學實際上是關於什麼的,是時候了解更多關於區塊鏈的一般知識了。區塊鏈將是我們工作的地方,所以我們最好清楚我們將使用什麼。

以太坊是如何工作的呢?

了解以太坊是非常有必要的,主要是因為需要努力在未來能夠使用類似以太坊的區塊鏈進行編碼。讀完本文時,我們就將對以太坊有一個大致的了解。

這是最後一個理論材料了。當完成這些之後,就將能夠再次進入代碼。這一次,我們將使用Solidity。

The Hitchhiker's Guide to Smart Contracts in Ethereum

是時候將我們的腳趾浸入Solidity 的水域了。雖然這個指南已經有點老了,但這個指南指引我們最終完成我們的第一個智能合約。

Solidity對我們來說可能是新的,所以最好是真正地消化學習材料。

Crypto Zombies

CryptoZombies是一款遊戲,但它教會我們Solidity。在本教程中,我們將編寫更高級的邏輯並熟悉該語言。

Time-locked Wallets: An Introduction to Ethereum Smart Contracts

是時候進行更多練習了。本教程將引導我們創建一個完整的dApp,包括我們自己的ERC 20代幣。

以本課程為契機,更深入地學習Solidity 並應用以前學到的知識。實踐就是一切,因此在Solidity 中編寫代碼的所有機會都是寶貴的。

以太坊dapp開發的最終介紹

這是一個關於dApp開發的系列視頻。專注於智能合約,我們將獲得更有價值的Solidity實踐。

Ethernaut

Ethernaut是另一款教我們Solidity的遊戲。這篇文章主要關注安全性,這是一個對智能合約開發者非常重要的話題。

安全性實際上是目前智能合約開發中最大的問題之一,這也是為什麼我們應該非常密切地關注這個問題並做很多筆記的原因。行業喜歡那些知道自己在做什麼的開發人員,他們也會高度重視在智能合約安全方面有經驗的人。

ethgas

我們編寫的每一行代碼都會對用戶產生影響。他們支付gas 調用我們的智能合約的功能。所以是時候了解gas是什麼、為什麼和如何產生的了。

我們現在又有了一些理論,而且是一個非常重要的理論。理解gas的概念,可以幫助我們更高地評價好的代碼設計,並且它有希望在我們編寫Solidity時觸發不同的思維過程。

Blockchain Oracles, Explained

我們不能在區塊鏈上做所有的事情。所以是時候學習Oracle了,這是智能合約與外部世界溝通的一種方式。

Oracle是一個先進的概念,每個Solidity開發者都應該理解。了解Oracle是一個相當大的優勢。我們以後要做的項目將或多或少地與他們接觸。

合約ABI 規範

每個智能合約都有一個ABI。當有人想要使用我們的合約時,他們需要知道ABI,我們也應該知道我們在那裡實際創建了什麼。

在我們已經構建了相當多的合約之後,現在是時候了解我們實際創建的內容了。 ABI是區塊鏈客戶端使用的核心。沒有ABI,就沒有客戶能夠調用鏈上的合約。

Keccak

Keccak是Solidity開發人員的重要哈希算法。我們會經常使用它,所以我們最好知道我們在使用什麼。

Hardhat

是時候選擇我們要使用的堆棧了。

推薦的開發環境是:Hardhat。

仔細閱讀文檔,了解關於這個以太坊開發環境的更多信息。現在我們可能已經明白為什麼一開始必須學習JavaScript。 Hardhat和其他許多Solidity工具一樣,是用JavaScript實現的。

Waffle

測試是至關重要的,特別是對於智能合約。

我的建議:Waffle。

Waffle是驅動測試的引擎。它使我們能夠編寫JavaScript並作為客戶端測試智能合約。

ethers.js

除了Waffle,我們還需要一個客戶端庫來調用我們的合約。

我的建議:ethers.js。

ethers是一個緩慢完成堆棧的庫。

OpenZeppelin

OpenZeppelin提供了許多已經實現的有用的標準。

許多專業項目都經常使用OpenZeppelin。

Ethereum改進建議

以太坊已經定義了許多標準,尤其是在代幣方面。標準化的A(B/P)Is是使生態系統正常工作的關鍵。把它們都瀏覽一遍,學習最重要的幾個,比如ERC20, ERC721等等。

Solidity Patterns

既然我們可以在不使用瀏覽器的情況下自由構建內容,那麼現在就可以在此過程中構建和學習重要的Solidity模式了。

模式可以應用於某些地方,並幫助我們以可識別和可維護的方式實現特定的目標。這是在我們擴展到創建自己的項目和使用自己的想像力之前,我們應該真正了解的最後一件事。

Source:https://medium.com/@oliverjumpertz/the-ultimate-smart-contract-developer-roadmap-edbedeff8aac