---
title: "如何成為 Solidity 開發者"
description: "成為 Giga Brain 等級 Solidity 開發者所需的一切"
---

## ‍為什麼要成為 Solidity 開發者？

隨著 web3（用來描述更去中心化、更民主化的網際網路版本）及其底層技術區塊鏈持續發展，深入投入這個生態系統，可能帶來的實際效益，就跟 1990 年代學習開發網路應用程式一樣。

區塊鏈技術是 NFT、DeFi、[DAO](https://www.alchemy.com/dapps/top/daos) 等知名去中心化應用與使用案例背後的動力來源。若想參與塑造網際網路的未來，成為[區塊鏈開發者](https://www.alchemy.com/overviews/solidity-developer)是投入 web3 領域的途徑之一，可能同時具備影響力與豐厚報酬，尤其隨著這項技術在消費與工業場景中變得越來越實用。

因此，你可能會想知道該學習哪種 [web3 程式語言](http://www.alchemy.com/overviews/web3-programming-languages)。其中一個最佳選擇是 Solidity，一種用來在 Ethereum 等區塊鏈上執行智能合約的物件導向程式語言。

Solidity 的語法與 Javascript 和 C 類似，這代表 web2 開發者可以更快跨過學習曲線。

根據 cryptocurrencyjobs.co 的資料，美國 [Solidity 開發者薪資](https://www.alchemy.com/overviews/solidity-developer-salary)的平均基本薪資為 127,500 美元，最低基本薪資為 80,000 美元，最高則為 180,000 美元。實際數字會依地區、公司及經驗而有所不同。

在當今數位化程度日益提升的世界中，能在去中心化、非同步、快速變動且高薪的環境中運用強大的技術，是很難找到的機會。如果你還沒被說服，以下簡短說明為什麼 web3 這股潮流對開發者來說是個有吸引力的選擇：

1. 加入 5,000+ 名每週持續學習的開發者行列
1. 在 Discord 回答測驗、在 Telegram 認識新朋友、贏取周邊商品
1. 透過以專案為導向的課程，學習新的程式技能與工具
1. 透過 Proof of Knowledge NFT，建立你身為 web3 開發者的聲譽

## **成為 Solidity 開發者的 7 個步驟**

現在我們對 Solidity 開發者是什麼、以及加入這股蓬勃發展的潮流有哪些好處，已經有了較完整的理解，接下來就來探討幾種深入學習 Solidity 的方法：

### **1. 參加訓練營**

快速學習 Solidity 並成為 Ethereum 開發者的一個有效方法，是[參加 Solidity 訓練營](https://www.alchemy.com/overviews/solidity-bootcamp)。透過有講師指導的訓練營，開發者可以學會核心的區塊鏈加密技能，更深入了解 Ethereum，建構並部署去中心化應用程式，並精通智能合約開發。

Alchemy University 為期 7 週的 Ethereum Developer Bootcamp，是初次接觸 web3 的開發者學習這門最熱門程式語言的理想方式。客製化的學習工具、互動式程式挑戰，以及隨產業成長不斷更新的課程內容，都是[ Alchemy University 課程](https://university.alchemy.com/?a=96a59db6cb)的部分優勢。

如果開發者對開發完全是新手，Alchemy 的**為期 3 週的 JavaScript 速成課程**是開始 Ethereum 訓練營前很好的先修課程。

### **2. 掌握 Solidity 基礎**

如果你偏好更個人化的方式來掌握 Solidity，網路上有許多公開可取得的指南、文章與影片可以協助你。這些資源能幫助開發者以自主學習的方式，深入了解基本的區塊鏈術語、工具與應用。此外，具備 C++、JavaScript 或 Python 的基礎知識，也有助於加快學習速度。

不過，要[開發智能合約](https://www.alchemy.com/overviews/solidity-smart-contract)應用程式，開發者必須了解安全與不安全做法之間的差異。忽略或輕忽[智能合約安全](https://www.alchemy.com/overviews/smart-contract-security-best-practices)最佳實務並不可取。

一些需要掌握的 Solidity 基礎概念包括 Solidity 函式與修飾符（modifier）。**Solidity 函式**是一組程式碼區塊或陳述式的集合，被組織在一起以執行特定任務。一般來說，Solidity 函式可以使用 *function* 關鍵字定義，後面接上一個不與任何保留關鍵字重複的獨特函式名稱。函式也可以帶有一組參數清單，包含參數名稱與資料型別。

**Solidity 修飾符**類似於物件導向程式設計中使用的裝飾器（decorator）模式。基本上，修飾符可以改變其所附加函式的行為。修飾符最主要的用途，是在函式執行前自動進行檢查。如果函式不符合修飾符的要求，就會拋出例外，並立即停止函式的執行。

### 3. 學習輔助的 Solidity 工具

要成為 Solidity 開發者，需要對 web3 工具有廣泛的了解。像 Hardhat、Alchemy 以及 [Remix（線上 IDE）](https://www.alchemy.com/overviews/solidity-ide)這類輔助工具，能提升你的應用能力，因為許多公司都使用類似的技術堆疊。

#### **Hardhat**

**‍**Hardhat 內建了 Hardhat network，這是一個專為開發設計的本地 Ethereum 網路。部署合約、執行測試以及除錯程式碼，都可以完全在你的本機環境中完成。

在 Hardhat network 上執行合約與測試時，你可以透過在 Solidity 程式碼中呼叫 [console.log() 函式](https://www.alchemy.com/overviews/solidity-console-log)來輸出記錄訊息與合約變數。別忘了，要使用這個函式，你必須在合約程式碼中匯入 hardhat/console.sol。

#### **Foundry**

Foundry 是一套以 Rust 撰寫、速度極快、可攜且模組化的 Ethereum 應用程式開發工具組。Foundry 由三個獨立元件組成：Forge、Cast 與 Anvil。

- **Forge** - 一個 Ethereum 測試網路，類似 Hardhat 和 Truffle
- **Cast** - 一個功能豐富的工具，用於與基於 EVM 的智能合約互動、傳送交易並取得鏈上資料
- **Anvil** - Hardhat network 上的本地 Ethereum 節點，類似 Ganache
- **Chisel**：一個快速、實用且輸出詳盡的 solidity REPL

此外，開發者還可以使用其他區塊鏈開發工具。雖然無法一一列舉，以下提供幾個值得參考的工具：

1. **Truffle** - 一套用於 Ethereum 的開發環境、測試框架與資產管理流程
1. Brownie - 一個以 Python 為基礎的開發與測試框架，針對 Ethereum Virtual Machine（EVM）
1. **Echidna** - 為智能合約定義屬性，並運用模糊測試（fuzzing）來抓出安全漏洞
1. **Remix** - 一套功能強大的開源 IDE，可在瀏覽器中撰寫、編譯並除錯 Solidity 合約

### 4. 累積 Solidity 開發的實作經驗

不論你想建立 NFT 智能合約、鏈上 DAO，還是去中心化金融應用程式，教學文章與[課程](https://www.alchemy.com/overviews/solidity-course)都是學習 Solidity 開發的主要方法。這些 web3 教學提供引導式的學習體驗，參與者可以透過閱讀文件與觀看影片示範，以自己的步調學會完成特定任務。

若想開始，可以參考 [Alchemy's Road to Web3](https://www.alchemy.com/docs) 系列中的 Solidity 教學，包括：

- How to Develop an NFT Smart Contract (ERC721)
- How to Build a "Buy Me a Coffee" DeFi dApp
- How to Make NFTs with On-chain Metadata
- How to Create an NFT Gallery
- How to Create a Dynamic NFT
- How to Build a Staking dApp
- How to Build an [NFT Marketplace](https://www.alchemy.com/dapps/best/nft-marketplaces)
- How to Build a Betting Game on Optimism
- How to Build a Token Swap Dapp with 0x API
- How to Create a Decentralized Social Media App

### 5. 參加 Ethereum 黑客松

黑客松是來自不同背景的人齊聚一堂，共同開發最小可行產品以解決現實問題的活動。[Ethereum 黑客松](https://www.alchemy.com/overviews/best-web3-hackathons)是絕佳機會，能讓你在全球結識新朋友、建立你的 web3 作品集、獲得實作開發經驗，甚至有機會獲得贊助該活動公司的工作機會。

無論你是線上參賽還是實體參賽，黑客松都能提供一個平台，讓你更深入探索 web3 的世界。目前，在 web3 黑客松領域，公認的標竿是 EthGlobal 系列活動與 Gitcoin。兩者都提供完整的培訓與實作經驗。

### **6. 審計智能合約以賺取賞金**

審計智能合約以賺取賞金，是累積實作經驗、獲得獎勵並了解智能合約運作方式的另一種方法。除了個別公司與去中心化協議贊助的賞金計畫之外，也有一些平台可用來尋找賞金計畫，例如：

1. web3 原生平台 - Immunefi 與 HackenProof
1. 傳統平台 - Bugcrowd 與 HackerOne
1. **專案自行管理的賞金計畫** - Ethereum Foundation 與 0xProject

### 7. 應徵 Solidity 開發者職缺

具備基礎知識與實作經驗後，下一步就是考慮應徵[全職 Solidity 開發者職位](https://www.alchemy.com/overviews/solidity-developer)。你將與來自世界各地的團隊成員一起，為 web3 生態系統與去中心化技術打造產品、服務與基礎設施。

別忘了，熱情、同理心與主動學習也同樣重要！

#### 更新你的履歷與 LinkedIn

在應徵 Solidity 開發者職位時，[將你的履歷與 LinkedIn 更新為以 web3 為重點](https://www.alchemy.com/overviews/web3-hackathon-resume)非常重要。務必凸顯你的個人檔案、工作經歷、專案、學歷、技能、證照，以及你的作品集連結。

最後，加入量化的資訊也是個好主意，這能幫助你以更具說服力的方式，向招募人員與潛在雇主展現你的影響力。

#### **在 Web3 求職平台上搜尋職缺**

在 [web3 求職平台](https://www.alchemy.com/overviews/solidity-jobs)上搜尋職缺，是探索適合自己職位的有效方式。像 web3.career、cryptocurrencyjobs.co 與 web3jobs.so 這類網站，都是不錯的起點。

Alchemy、OpenSea、Coinbase 等大型 web3 公司都設有內部資源，專門負責人才尋訪、招募與雇用，這代表職缺很可能會刊登在它們的[徵才頁面](/careers)上。

最後，有志成為 Solidity 工程師的人，也可以在 Indeed 與 Monster.com 等求職平台上，尋找由 web2 公司刊登的加密貨幣相關職缺，以及大型 web3 公司為提高曝光度而跨平台刊登的職缺。
