iT邦幫忙

2022 iThome 鐵人賽

DAY 29
1
Web 3

Smart Contract Development Breakdown系列 第 29

Day 29 - Blockchain Developer Roadmap

  • 分享至 

  • xImage
  •  

Blockchain Developer Roadmap

Synchronization Link Tree


Intro.

之前在 Appwroks School 與 Camp 當助教的時候其實也認識不少人資跟工程師,還有許多老闆,在找區塊鏈工程師這塊算是蠻令人頭痛的一件事情,因為真正懂區塊鏈的人不多,純開發的話可能會因為不是很懂背後的架構而遇到許多問題。

目前業界許多老闆還是會傾向找已經成熟的「後端工程師或 SWE」來魔改,畢竟單論語法的話 Solidity 並不是很困難,如果是用 Rust 的鏈那說不定原本這些工程師就很熟悉了。Node.js 就不用說了,對這些資深工程師來說根本是信手捻來。

區塊鏈工程師其實分成很多種,只會串接 Web3 API 的前端工程師算不算區塊鏈工程師呢?實際上現在幾乎沒有什麼產品是完全去中心化的,甚至許多產品都有很大一部分功能依賴於中心化的後端與資料庫。所以即便是立志當區塊鏈工程師,還是得要具有 Web2 的開發基本功,想當工程師是沒有捷徑的(偷笑

Requirements from HR

這邊第一個部分我想從我的 LinkedIn 還有電子信箱傳來的獵人頭公司信件,裡面有的區塊鏈工程師工作需求來寫,再加上一些我蒐集來的資料!希望可以讓大家大概知道這些 HR 都希望區塊鏈工程師有什麼能力。

類型 內容
Underlying Architecture Go(Geth) / C++(cpp-ethereum) / Rust(Solana)
Wallet Protocol
Software Engineering Asynchronous Programming (async/await) in Rust 非同步程式設計
分散式、高併發、多執行緒
CI / CD 持續性整合 / 發布
Automation Pipelines 自動化數據工作流
Documenting Codebases 文件代碼庫
Develop Tool & Unit Testing(QUnit,Mocha,Jasmine,RSpec)
Full-Stack, Microservices JavaScript (Node, Express, React, Redux)、Django、Rails、HTML、CSS
RESTful HTTP Servers Engineering
Relational and Time Series DB(Postgres, SQL, InfluxDB)
Kubernetes, K8S / Docker 虛擬容器化管理技術
  • 這個部分 Unit Testing 其實還有許多可以使用的工具,例如 Chai、Foundry、Waffle之類的
  • 常用的開發框架 Frame:Foundry / Hardhat / Brownie / Truffle
  • 常見的節點商或節點模擬:Ganache / Infura / Alchemy /Quick Node
  • 有些公司或專案會需要開發建置在分散式儲存系統例如 IPFS,或者是分散式雲端運算例如:fluence network

Ability

Web3(Dapps) Development

  • Smart Contract
    • Solidity
    • Other language...
  • API
    • web3.js
    • ethers.js
    • opensea.js
    • etherscan.io
    • coinmarketcap

這個部份如果有串接中心化的 API 可能就要考慮應用程式想要達到的中心化程度,一切都是 Trade Off,沒有完美的解法!

Blockchain Developer

  • Mathematical
    • Statistics & Probability
    • Linear Algebra
    • Discrete Mathematics
    • Cryptography
  • Computer Science
    • Data Structure & Algorithms
    • Operating System
    • Distributed System
    • Internet Protocol
  • 有的企業專門做 B2B 的聯盟鏈(Consortium Blockchain):Hyperledger / Fabric
  • 如果有需求要串接其他 Public Chain 的話就需要 Cross Chain 的技術
  • 或者是 Scalibility 的需求時就需要具備於 Side Chain 或 L2 Solution 開發的技術

Cast an eye over the Blockchain Developer Types

Blockchain Developer

顧名思義就是真的做區塊鏈核心開發的工程師,例如開發 Ethereum Client Geth 或 EVM 的工程師,或者是建置 L2 Solution 的工程師等等的,這個部分就非常需要 Operating System / Distributed System 還有 Cryptography 的能力,當然也有網路協議與資安的部分都需要非常熟悉(節點之間的溝通可能會透過網路協議的方式)。

工作內容可能也可以面向 Oracles(預言機)以及跨鏈橋的部分!

Decentralized Application Developer

  • DEX
  • De-Fi
  • Game-Fi
  • Token & Tokenomics / DAO
  • Quadratic Funding/Voting
  • Decentralized Service

這部分其實就是跟 Web2 應用程式工程師差不多,無論是 Mobile / Website 還是 Desktop Software,都是需要串接區塊鏈的相關 API,相對應的前後端技術都和 Web2 相差無幾。不過 call API 這件事情實際上並沒有那麼簡單,在過往 Wallet Protocol 以及 Blockchain Provider 的部分文章我們都有提到過,如果不了解底層架構,在開發 Dapp 上可能會遇到很多困難。

Centralized Application Developer

  • CEX
  • Online Compiler: Remix
  • HFT (high-frequency trading) / Quantitative Trading
  • Nodes Provider
  • Wallet(Wallet Manufacturer 會需要熟悉 Back-End & Wallet Protocol 的技術)
  • Data Analysis with Dashboard (e.g. Diem)

中心化的應用程式如果需要與區塊鏈串接其實和上述的去中心化應用程式相差無幾,不過通常是「半去中心化」的,也就是會有某些資訊儲存在中心化的資料庫,而某些資料儲存在區塊鏈。例如交易所會有一些私鑰儲存著所有用戶的資產,某些 Game-Fi 會把使用者的遊戲資產上鏈,但大部分影像處理仍然是留在中心化的部分。

撈資料的部分也是同理,中心化的應用程式去撈取區塊鏈的資料進行後端或雲端資料分析,最後呈現在 Dashboard 上供使用者取用或參考。基本上中心化的應用程式都會有串接區塊鏈的動作,只是大部分主要服務還是仰賴著中心化的管理。甚至許多中心化的應用程式背後還會自己運行節點,以方便直接同步所有區塊鏈的資料或跨鏈用途。


Closing

Reference


最後歡迎大家拍打餵食大學生0x2b83c71A59b926137D3E1f37EF20394d0495d72d


上一篇
Day 28 - Foundry with Ethernaut
下一篇
Day 30 - Conclusion & Future
系列文
Smart Contract Development Breakdown30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言