為什麼區塊鏈開發者工資這麼高?看看他們需要掌握多少東西就知道了
hi 小夥伴們好,營長又回來了!
說起區塊鏈一直有個大家喜聞樂見的話題,就是「開發者」,無論是人才招聘還是技術開發,開發者都是區塊鏈大潮背後的中堅力量。
今天咱們就聊聊「如何成為區塊鏈開發者?」這個話題,在營長採訪過的很多技術專家中,經常都會問他們是如何成為區塊鏈大拿的?以及是通過怎樣的方式和區塊磨鍊自己的技術的?日積月累下來,得到了很多優質的反饋。
因此,本篇文章將會回答並解決你以下問題:
我該如何成為區塊鏈開發者?
成為區塊鏈開發者需要掌握哪些知識/技能?
我該去哪裡尋找資源來自我提升?
我該如何養活我自己,以及找個靠譜的工作?
值得留意的是,這些內容並不單純是寫給小白的,即使你已經有開發經驗,也能通過這篇文章看出區塊鏈開發者的完整知識框架,填補自己的短板
文章中也會附上學習資源。
言歸正傳,下面就開始吧。
手把手帶你成為區塊鏈開發者:必備技能
1. 理解區塊鏈背後的原理
在開始開發前,對區塊鏈系統和機制有個深刻的瞭解是十分必要的,你需要先知道區塊鏈到底是什麼、什麼叫挖礦、礦工、區塊鏈、共識等基本知識。這裡推薦一本書:Mastering Bitcoin: Unlocking Digital Cryptocurrencies(《走近區塊鏈:解鎖加密貨幣》)
2. 熟悉以太坊
如果你想發幣或者玩玩ICO,那麼你需要先了解一下以太坊,因為以太坊是ICO專案最常用的平臺,也是作為一個區塊鏈開發者,無法繞開的一個平臺。第一步,你可以先從安裝以太坊客戶端開始,常用的客戶端有,
3. 花點時間學習Solidity和Truffle
Solidity是以太坊推出的智慧合約程式語言;Truffle是目前最常用的以太坊開發框架。作為區塊鏈開發者,你必須對Solidity和Truffle非常熟悉。其實,Solidity上手的門檻並不高,學過JavaScript的人應該很容易理解。
而Truffle,你可以參考官方的詳細操作步驟,對應步驟操作一遍應該就能掌握了。
Truffle操作步驟:
https://truffleframework.com/boxes/pet-shop
其他資源:
區塊鏈入門播客(Podcast):
https://techiesamrat.com/free-blockchain-basics-beginners-podcast-course/
超級有趣的區塊鏈DApp開發學習平臺Loom:
https://cryptozombies.io/
4. 從區塊鏈遊戲入手
遊戲開發是學習區塊鏈開發者最好的入手方向,上面的連結就是很好的學習資源。通過Loom你可以親手學習並開發一款自己的區塊鏈遊戲(開發者一個殭屍大軍,然後發起區塊鏈戰爭)。因為整個遊戲都是使用Solidity開發的,因此當完成整個遊戲之後,你會對這門語言有非常好的掌握,就問你棒不棒?!
此外,Loom平臺的遊戲開發還會讓你認識到,智慧合約不僅僅能用在交易,也能用在遊戲開發上。只要你腦洞夠大,還能找到更多的玩法。
5. Solidity雖好,但不要在上面花太多時間,應該把更多時間花在其他語言上
如果你想開發DApp,不要把時間和精力過多的放在Solidity上,因為如上文所說,Solidity只能用來開發智慧合約,而這只是DApp程式碼中很小的一部分。而DApp可以用任何語言開發,例如Python、Java、C++。
此外,因為Solidity非常簡單直接,學過其他語言的人稍微看一下就能懂,因此,其他語言上的功夫比Solidity重要的多。
6. 瞭解以太坊之外的其他主鏈
雖然以太坊現在是最大的主鏈平臺,但多接觸其他主鏈也有好處,例如Hyperledger或Multichain等。
7. 前端開發與密碼學
DApp由兩個部分組成——前端和後端。前端跟Web開發和移動開發差不多,用Java、HTML都可以。但後端開發就不一樣了,需要掌握密碼學的知識,比如使用者定義中的密碼函式等。理論上說,DApp的後端開發也可以用多種語言,常見的例如:C#、C++。
8. 理解多種資料結構
作為區塊鏈開發者,你需要對多種資料結構有深入的理解,如Stack、Queue、Linked List、Tree,以及HashMaps等。
9. 多「玩」比特幣原始碼
比特幣原始碼是學習區塊鏈開發最好的渠道之一。因為比特幣原始碼是開源的(用C++寫成),所以你在任何時候都可以繼續為比特幣專案貢獻程式碼,就算不貢獻程式碼,自己多多研究把玩也能得到很大的提升。
當然,如果你能把以太坊原始碼吃透並且也在上面貢獻程式碼,相信其他大多數的區塊鏈專案的開發,都難不住你了。
比特幣原始碼地址:
https://github.com/bitcoin/bitcoin
10. 學習分散式賬本協議
分散式賬本協議可以說是區塊鏈開發者需要掌握的最重要的知識之一,如果你真的下定決心轉型,這個知識非學不可。如果你不知道從何入手,建議先看看區塊鏈公司對技術人員的要求是什麼,然後再決定從哪開始學起。
海外招聘資源彙總:
https://crypto.jobs/learn
11. 開發一個自己的DApp
在掌握了上面的所有知識之後,開始試著開發一個DApp。這個DApp的目的有兩個:
反應你對上面知識的理解有多深;
通過實踐來進一步學習
一般來說,第一個DApp可以嘗試下分散式投票系統,以太坊官方有開發這種DApp的詳細步驟。
參考地址:
https://www.ethereum.org/dao
學習資源哪家好?
在瞭解了需要學習的技能之後,你可能會問,我在哪裡才能學習這些技能?
彆著急,接下來營長就把上面所提到的知識點和所有相關的學習資源打包給你。
12. Lynda、GitHub、油管上最好的以太坊學習資源
Xanesghost是Reddit上區塊鏈話題下的大V,他曾分享過一系列的以太坊學習資源,包括「官方」和「非官方」兩個部分。
先來看看非官方:
以太坊程式設計基礎(Lynda):
https://www.lynda.com/JavaScript-tutorials/Foundations-of-Programming-Fundamentals/83603-2.html
JavaScript精華訓練(Lynda):
https://www.lynda.com/JavaScript-tutorials/JavaScript-Essential-Training/574716-2.html
資料結構入門(Lynda):
https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Data-Structures/149042-2.html
離散數學基礎(Lynda):
https://www.lynda.com/Programming-Foundations-tutorials/Foundations-Programming-Discrete-Mathematics/411376-2.html
Git精華訓練(Lynda):
https://www.lynda.com/Git-tutorials/Git-Essential-Training/100222-2.html
重構程式碼(Lynda):
https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Refactoring-Code/122457-2.html
由淺入深密碼學:
https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg/videos
博弈學,從入門到精通:
https://www.youtube.com/playlist?list=PL6EF60E1027E1A10B
加密技術線上全教程:
https://www.youtube.com/channel/UCNcSSleedtfyDuhBvOQzFzQ/videos
官方資源:
以太坊智慧合約介紹:
https://www.youtube.com/watch?v=r7GVVk8v2Ik
Blockchain/Smart Contract 101:
https://www.youtube.com/watch?v=kanP89Y4hn8
Solidity特性詳解:
https://github.com/ethereum/wiki/wiki/Solidity-Features
Solidity官方文件:
https://solidity.readthedocs.io/en/latest/
Yminutes Solidity教學:
https://learnxinyminutes.com/docs/solidity/
Andreas Olofsson Solidity教學:
https://docs.erisindustries.com/tutorials/solidity/
Ethereum, Gas, Fuel & Fees:
https://www.youtube.com/watch?v=dd-ajiMl4HY
以太坊Mist簡介:
https://www.youtube.com/watch?v=MzT0fvmZ638
寫給以太坊開發者的DApp設計原則:
https://www.youtube.com/watch?v=nPpi9BPkRbo
區塊鏈程式碼的模組性、可擴充套件性、和安全性:
https://www.youtube.com/watch?v=1D7BH8krdhQ
合約複雜度的管理:
https://www.youtube.com/watch?v=gEV8LfFs8Io
DApp框架入門:
https://www.youtube.com/watch?v=XdPkzzjmirw
Truffle官方文件:
https://truffle.readthedocs.io/en/latest/
Tim Coulter的Truffle教學:
https://www.youtube.com/channel/UCFShdrPuhFqWlSnpGnz2Wag
StackExchange:
https://ethereum.stackexchange.com/
以太坊DApp開發資源列表:
https://www.youtube.com/playlist?list=PLe9AlNDGZKvBWrkf-tKgEJsu2Y_vrBgwv
用JavaScript開發DApp:
https://www.youtube.com/watch?v=cPlpWmC7JKk
給技術小白的DApp開發教程:
https://dappsforbeginners.wordpress.com/
如何用Mist打造一個無需伺服器的應用:
https://blog.ethereum.org/2016/07/12/build-server-less-applications-mist/
Solidity智慧合約實戰1:
https://www.youtube.com/watch?v=8jI1TuEaTro
Solidity智慧合約實戰2:
https://www.youtube.com/watch?v=3-XPBtAfcqo
以太坊DApp開發——Truffle、MetaMask:
https://medium.com/metamask
Web3開發規劃:
https://www.youtube.com/watch?v=XnQSTLDt1cc
智慧合約開發最佳實踐:
https://github.com/ConsenSys/smart-contract-best-practices
以太坊智慧合約安全手冊:
https://blog.zeppelin.solutions/onward-with-ethereum-smart-contract-security-97a827e47702
如何寫最靠譜的智慧合約:
https://blog.colony.io/writing-more-robust-smart-contracts-99ad0a11e948#.wfro33g0x
13. Coursera、斯坦福線上課程
剛開始,可以先看看斯坦福的線上課程:
https://crypto.stanford.edu/cs251/syllabus.html
這個課程把什麼是區塊鏈,什麼是加密貨幣講的十分透徹。
接著,可以看一些更深入的課程,比如Coursera關於比特幣和加密貨幣技術的課程:
https://www.coursera.org/learn/cryptocurrency
當然,國內的線上教育平臺,也能找到很多不錯的課程。
學會技術怎樣賺錢?
在學習了一定的區塊鏈開發技術之後,你可能會想我該如何用這些技術賺錢呢?除了找份區塊鏈開發的工作之外,還有哪些靠譜的賺錢方法?
這個部分將一一解答。
14. 找個正兒八經的工作
不用多說,找個區塊鏈開發相關的工作是大多數人的選擇。目前,整個區塊鏈市場都處於人才荒的狀態,技術紮實的開發者想找個靠譜的工作並不難。在找工作之前,你應該先想清楚是否真的要從事區塊鏈開發,此外,你比較中意的工作地點在哪?
通常很多型別的公司都會招聘區塊鏈的相關開發者,包括:初創公司、科技公司、銀行、私有企業,甚至是政府和專業服務機構等。
可參考以下網站:
https://crypto.jobs/
15. 區塊鏈招聘網站
隨著區塊鏈行業的火熱,招聘網站也越來越多,除了上面的網站之外還有一個不錯的招聘網站:
http://blockchainjobz.com/
16. 試著拿些認證
經驗是找到好工作的基礎,一般來說,如果你有個三五年的Web開發經驗,去拿一些認證相對來說比較容易。最簡單的拿認證的方法是為一些初期的開源專案貢獻程式碼,當然如果能拿到一些知名專案的認證則更好,例如Hyperledger Platform,不過這個專案需要你的C++和Java技術過硬。
17. 為開源專案貢獻程式碼,並拿到報酬
上面說了為一些開源專案貢獻程式碼可以拿到認證,實際上有些開源專案也會給貢獻者金錢的獎勵。例如Gitcoin。開發者可以再GitHub上解決釋出者的問題,就可以拿到相應的以太幣作為獎勵。步驟如下:
在GitHub上找到懸賞任務,無論是Bug、安全還是任何其他任務;
宣告任務;
解決任務的問題;
提交任務成果 & 獲得獎勵。
Gitcoin地址:
https://gitcoin.co/
18. 通過ICO賺錢
這年頭,要是沒試過ICO都不好意思跟幣圈的人打招呼。其實ICO說白了就是創造一個自己的Token,這很簡單。
現在有很多跟「一鍵生成」差不多的小白「造幣」平臺,區區幾行程式碼,你就能生成屬於自己的加密貨幣,如OpenZeppelin等。不過要想ICO到很多錢,還是需要有核心價值。
OpenZeppelin操作指南:
https://blog.zeppelin.solutions/how-to-create-token-and-initial-coin-offering-contracts-using-truffle-openzeppelin-1b7a5dae99b6
19. 開發DApp賺錢
與當年移動應用的發展類似,可以預見未來兩年DApp會成井噴式發展。作為開發者,你現在就可以試著開發一些DApp,並試著去變現。通常,DApp上的每筆交易,開發者都可以拿到2-5%的利潤。如果你能開發出像迷戀貓那樣的爆款,利潤將會非常可觀。
通常,你可以通過以下任意一種方法來實現DApp變現:
製造爆款和發幣;
收取一定比例的交易費;
特殊功能收費;
訂閱或會員機制;
廣告;
募捐
其他成為區塊鏈開發者的必要因素
這部分屬於進階內容,對於已經擁有過硬技術的區塊鏈開發者來說,掌握以下知識可以走到更高的位置。
20. 學點經濟學
作為區塊鏈開發者,只懂技術是不夠的,要想走得更高更遠,你還需要學習一經濟學理論,因為經濟學是區塊鏈和加密貨幣的基礎。這些理論包括博弈論、巨集觀/微觀經濟學、供需關係、機會成本、拍賣理論、貨幣政策、敏捷貨幣、通貨膨脹,以及通貨緊縮等。
21. 多交流
區塊鏈開發者不應該閉門造車,應該走出去多多跟人交流,無論是交流開發技術還是觀點,都能獲得很大的益處。最好的交流方式,是多多參加行業活動、沙龍等,即使沒有線下活動,也要試著去網上找一些論壇,與其他開發者討論。比較優質的開發者論壇/社群包括:Reddit、Slack、Gitter等。
22. 軟實力的提升
軟實力的提升是個長線投資,也許要等到很長時間之後才能看出來。但比起開發的硬技術,軟實力對於開發者來說同樣重要。想要爬到更高位置的開發者需要軟硬兼顧。典型的軟實力包括:管理能力、團隊合作能力以及多工處理能力等。
23. 聽聽資深開發者的反饋
在完成自己專案的開發之後,收集和分析反饋十分重要。你可以把自己的專案上傳到GitHub,聽聽一些資深開發者的反饋。也可以上傳到Reddit。
24. 給自己留點學習的時間
很多開發者有一個誤區,就是認為如果花太多時間學習,就會放過很多大好機會。但實際上,今天的區塊鏈就像90年代的網際網路一樣,還處於剛剛起步的階段,很多優質的專案和公司都還沒出生呢。因此,現在給自己多點時間學習,徹底掌握區塊鏈的開發技巧和理解其背後的原理,可以為未來打下堅實的基礎。
最新熱文:
大力戳↑↑↑ 加入區塊鏈大本營讀者⑦號群
(群滿加微信 qk15732632926 入群)
內容轉載請聯絡微信:qk15732632926
商務合作請聯絡微信:fengyan-1101