hi 小伙伴們好湘今,營(yíng)長(zhǎng)大大來(lái)了敢朱!
說(shuō)起區(qū)塊鏈一直有個(gè)大家喜聞樂(lè)見的話題,就是「開發(fā)者」摩瞎,無(wú)論是人才招聘還是技術(shù)開發(fā)拴签,開發(fā)者都是區(qū)塊鏈大潮背后的中堅(jiān)力量。
今天咱們就聊聊「如何成為區(qū)塊鏈開發(fā)者旗们?」這個(gè)話題蚓哩,在營(yíng)長(zhǎng)采訪過(guò)的很多技術(shù)專家中,經(jīng)常都會(huì)問(wèn)他們是如何成為區(qū)塊鏈大拿的上渴?以及是通過(guò)怎樣的方式和區(qū)塊磨煉自己的技術(shù)的杖剪?日積月累下來(lái),得到了很多優(yōu)質(zhì)的反饋驰贷。
因此盛嘿,本篇文章將會(huì)回答并解決你以下問(wèn)題:
我該如何成為區(qū)塊鏈開發(fā)者?
成為區(qū)塊鏈開發(fā)者需要掌握哪些知識(shí)/技能括袒?
我該去哪里尋找資源來(lái)自我提升次兆?
我該如何養(yǎng)活我自己,以及找個(gè)靠譜的工作锹锰?
值得留意的是芥炭,這些內(nèi)容并不單純是寫給小白的,即使你已經(jīng)有開發(fā)經(jīng)驗(yàn)恃慧,也能通過(guò)這篇文章看出區(qū)塊鏈開發(fā)者的完整知識(shí)框架园蝠,填補(bǔ)自己的短板。
文章中也會(huì)附上學(xué)習(xí)資源痢士。
言歸正傳彪薛,下面就開始吧。
手把手帶你成為區(qū)塊鏈開發(fā)者:必備技能
1. 理解區(qū)塊鏈背后的原理
在開始開發(fā)前,對(duì)區(qū)塊鏈系統(tǒng)和機(jī)制有個(gè)深刻的了解是十分必要的善延,你需要先知道區(qū)塊鏈到底是什么少态、什么叫挖礦、礦工易遣、區(qū)塊鏈彼妻、共識(shí)等基本知識(shí)。這里推薦一本書:Mastering Bitcoin: Unlocking Digital Cryptocurrencies(《走近區(qū)塊鏈:解鎖加密貨幣》)
2. 熟悉以太坊
如果你想發(fā)幣或者玩玩ICO豆茫,那么你需要先了解一下以太坊侨歉,因?yàn)橐蕴皇荌CO項(xiàng)目最常用的平臺(tái),也是作為一個(gè)區(qū)塊鏈開發(fā)者揩魂,無(wú)法繞開的一個(gè)平臺(tái)幽邓。第一步,你可以先從安裝以太坊客戶端開始肤京,常用的客戶端有颊艳,Geth和Parity。
3. 花點(diǎn)時(shí)間學(xué)習(xí)Solidity和Truffle
Solidity是以太坊推出的智能合約編程語(yǔ)言忘分;Truffle是目前最常用的以太坊開發(fā)框架棋枕。作為區(qū)塊鏈開發(fā)者,你必須對(duì)Solidity和Truffle非常熟悉妒峦。其實(shí)重斑,Solidity上手的門檻并不高,學(xué)過(guò)JavaScript的人應(yīng)該很容易理解肯骇。
而Truffle窥浪,你可以參考官方的詳細(xì)操作步驟,對(duì)應(yīng)步驟操作一遍應(yīng)該就能掌握了笛丙。
Truffle操作步驟:
https://truffleframework.com/boxes/pet-shop
其他資源:
區(qū)塊鏈入門播客(Podcast):
https://techiesamrat.com/free-blockchain-basics-beginners-podcast-course/
超級(jí)有趣的區(qū)塊鏈DApp開發(fā)學(xué)習(xí)平臺(tái)Loom:
https://cryptozombies.io/
4. 從區(qū)塊鏈游戲入手
游戲開發(fā)是學(xué)習(xí)區(qū)塊鏈開發(fā)者最好的入手方向漾脂,上面的鏈接就是很好的學(xué)習(xí)資源。通過(guò)Loom你可以親手學(xué)習(xí)并開發(fā)一款自己的區(qū)塊鏈游戲(開發(fā)者一個(gè)僵尸大軍胚鸯,然后發(fā)起區(qū)塊鏈戰(zhàn)爭(zhēng))骨稿。因?yàn)檎麄€(gè)游戲都是使用Solidity開發(fā)的,因此當(dāng)完成整個(gè)游戲之后姜钳,你會(huì)對(duì)這門語(yǔ)言有非常好的掌握坦冠,就問(wèn)你棒不棒?哥桥!
此外辙浑,Loom平臺(tái)的游戲開發(fā)還會(huì)讓你認(rèn)識(shí)到,智能合約不僅僅能用在交易拟糕,也能用在游戲開發(fā)上判呕。只要你腦洞夠大倦踢,還能找到更多的玩法。
5. Solidity雖好佛玄,但不要在上面花太多時(shí)間硼一,應(yīng)該把更多時(shí)間花在其他語(yǔ)言上
如果你想開發(fā)DApp累澡,不要把時(shí)間和精力過(guò)多的放在Solidity上梦抢,因?yàn)槿缟衔乃f(shuō),Solidity只能用來(lái)開發(fā)智能合約愧哟,而這只是DApp代碼中很小的一部分奥吩。而DApp可以用任何語(yǔ)言開發(fā),例如Python蕊梧、Java霞赫、C++。
此外肥矢,因?yàn)镾olidity非常簡(jiǎn)單直接端衰,學(xué)過(guò)其他語(yǔ)言的人稍微看一下就能懂,因此甘改,其他語(yǔ)言上的功夫比Solidity重要的多旅东。
6. 了解以太坊之外的其他主鏈
雖然以太坊現(xiàn)在是最大的主鏈平臺(tái),但多接觸其他主鏈也有好處十艾,例如Hyperledger或Multichain等抵代。
7. 前端開發(fā)與密碼學(xué)
DApp由兩個(gè)部分組成——前端和后端。前端跟Web開發(fā)和移動(dòng)開發(fā)差不多忘嫉,用Java荤牍、HTML都可以。但后端開發(fā)就不一樣了庆冕,需要掌握密碼學(xué)的知識(shí)康吵,比如用戶定義中的密碼函數(shù)等。理論上說(shuō)访递,DApp的后端開發(fā)也可以用多種語(yǔ)言晦嵌,常見的例如:C#、C++力九。
8. 理解多種數(shù)據(jù)結(jié)構(gòu)
作為區(qū)塊鏈開發(fā)者耍铜,你需要對(duì)多種數(shù)據(jù)結(jié)構(gòu)有深入的理解,如Stack跌前、Queue棕兼、Linked List、Tree抵乓,以及HashMaps等伴挚。
9. 多「玩」比特幣源碼
比特幣源代碼是學(xué)習(xí)區(qū)塊鏈開發(fā)最好的渠道之一靶衍。因?yàn)楸忍貛旁创a是開源的(用C++寫成),所以你在任何時(shí)候都可以繼續(xù)為比特幣項(xiàng)目貢獻(xiàn)代碼茎芋,就算不貢獻(xiàn)代碼颅眶,自己多多研究把玩也能得到很大的提升。
當(dāng)然田弥,如果你能把以太坊源代碼吃透并且也在上面貢獻(xiàn)代碼涛酗,相信其他大多數(shù)的區(qū)塊鏈項(xiàng)目的開發(fā),都難不住你了偷厦。
比特幣源代碼地址:
https://github.com/bitcoin/bitcoin
10. 學(xué)習(xí)分布式賬本協(xié)議
分布式賬本協(xié)議可以說(shuō)是區(qū)塊鏈開發(fā)者需要掌握的最重要的知識(shí)之一商叹,如果你真的下定決心轉(zhuǎn)型,這個(gè)知識(shí)非學(xué)不可只泼。如果你不知道從何入手剖笙,建議先看看區(qū)塊鏈公司對(duì)技術(shù)人員的要求是什么,然后再?zèng)Q定從哪開始學(xué)起请唱。
海外招聘資源匯總:
https://crypto.jobs/learn
11. 開發(fā)一個(gè)自己的DApp
在掌握了上面的所有知識(shí)之后弥咪,開始試著開發(fā)一個(gè)DApp。這個(gè)DApp的目的有兩個(gè):
反應(yīng)你對(duì)上面知識(shí)的理解有多深十绑;
通過(guò)實(shí)踐來(lái)進(jìn)一步學(xué)習(xí)
一般來(lái)說(shuō)聚至,第一個(gè)DApp可以嘗試下分布式投票系統(tǒng),以太坊官方有開發(fā)這種DApp的詳細(xì)步驟孽惰。
參考地址:
https://www.ethereum.org/dao
學(xué)習(xí)資源哪家好晚岭?
在了解了需要學(xué)習(xí)的技能之后,你可能會(huì)問(wèn)勋功,我在哪里才能學(xué)習(xí)這些技能坦报?
別著急,接下來(lái)營(yíng)長(zhǎng)就把上面所提到的知識(shí)點(diǎn)和所有相關(guān)的學(xué)習(xí)資源打包給你狂鞋。
12. Lynda片择、GitHub、油管上最好的以太坊學(xué)習(xí)資源
Xanesghost是Reddit上區(qū)塊鏈話題下的大V骚揍,他曾分享過(guò)一系列的以太坊學(xué)習(xí)資源字管,包括「官方」和「非官方」兩個(gè)部分。
先來(lái)看看非官方:
以太坊編程基礎(chǔ)(Lynda):
https://www.lynda.com/JavaScript-tutorials/Foundations-of-Programming-Fundamentals/83603-2.html
JavaScript精華訓(xùn)練(Lynda):
https://www.lynda.com/JavaScript-tutorials/JavaScript-Essential-Training/574716-2.html
數(shù)據(jù)結(jié)構(gòu)入門(Lynda):
https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Data-Structures/149042-2.html
離散數(shù)學(xué)基礎(chǔ)(Lynda):
https://www.lynda.com/Programming-Foundations-tutorials/Foundations-Programming-Discrete-Mathematics/411376-2.html
Git精華訓(xùn)練(Lynda):
https://www.lynda.com/Git-tutorials/Git-Essential-Training/100222-2.html
重構(gòu)代碼(Lynda):
https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Refactoring-Code/122457-2.html
由淺入深密碼學(xué):
https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg/videos
博弈學(xué)信不,從入門到精通:
https://www.youtube.com/playlist?list=PL6EF60E1027E1A10B
加密技術(shù)線上全教程:
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教學(xué):
https://learnxinyminutes.com/docs/solidity/
Andreas Olofsson Solidity教學(xué):
https://docs.erisindustries.com/tutorials/solidity/
Ethereum, Gas, Fuel & Fees:
https://www.youtube.com/watch?v=dd-ajiMl4HY
以太坊Mist簡(jiǎn)介:
https://www.youtube.com/watch?v=MzT0fvmZ638
寫給以太坊開發(fā)者的DApp設(shè)計(jì)原則:
https://www.youtube.com/watch?v=nPpi9BPkRbo
區(qū)塊鏈代碼的模塊性嘲叔、可擴(kuò)展性、和安全性:
https://www.youtube.com/watch?v=1D7BH8krdhQ
合約復(fù)雜度的管理:
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教學(xué):
https://www.youtube.com/channel/UCFShdrPuhFqWlSnpGnz2Wag
StackExchange:
https://ethereum.stackexchange.com/
以太坊DApp開發(fā)資源列表:
https://www.youtube.com/playlist?list=PLe9AlNDGZKvBWrkf-tKgEJsu2Y_vrBgwv
用JavaScript開發(fā)DApp:
https://www.youtube.com/watch?v=cPlpWmC7JKk
給技術(shù)小白的DApp開發(fā)教程:
https://dappsforbeginners.wordpress.com/
如何用Mist打造一個(gè)無(wú)需服務(wù)器的應(yīng)用:
https://blog.ethereum.org/2016/07/12/build-server-less-applications-mist/
Solidity智能合約實(shí)戰(zhàn)1:
https://www.youtube.com/watch?v=8jI1TuEaTro
Solidity智能合約實(shí)戰(zhàn)2:
https://www.youtube.com/watch?v=3-XPBtAfcqo
以太坊DApp開發(fā)——Truffle抽活、MetaMask:
https://medium.com/metamask
Web3開發(fā)規(guī)劃:
https://www.youtube.com/watch?v=XnQSTLDt1cc
智能合約開發(fā)最佳實(shí)踐:
https://github.com/ConsenSys/smart-contract-best-practices
以太坊智能合約安全手冊(cè):
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
這個(gè)課程把什么是區(qū)塊鏈下硕,什么是加密貨幣講的十分透徹丁逝。
接著汁胆,可以看一些更深入的課程,比如Coursera關(guān)于比特幣和加密貨幣技術(shù)的課程:
https://www.coursera.org/learn/cryptocurrency
當(dāng)然霜幼,國(guó)內(nèi)的在線教育平臺(tái)嫩码,也能找到很多不錯(cuò)的課程。
學(xué)會(huì)技術(shù)怎樣賺錢罪既?
在學(xué)習(xí)了一定的區(qū)塊鏈開發(fā)技術(shù)之后铸题,你可能會(huì)想我該如何用這些技術(shù)賺錢呢?除了找份區(qū)塊鏈開發(fā)的工作之外萝衩,還有哪些靠譜的賺錢方法回挽?
這個(gè)部分將一一解答没咙。
14. 找個(gè)正兒八經(jīng)的工作
不用多說(shuō)猩谊,找個(gè)區(qū)塊鏈開發(fā)相關(guān)的工作是大多數(shù)人的選擇。目前祭刚,整個(gè)區(qū)塊鏈?zhǔn)袌?chǎng)都處于人才荒的狀態(tài)牌捷,技術(shù)扎實(shí)的開發(fā)者想找個(gè)靠譜的工作并不難。在找工作之前涡驮,你應(yīng)該先想清楚是否真的要從事區(qū)塊鏈開發(fā)暗甥,此外,你比較中意的工作地點(diǎn)在哪捉捅?
通常很多類型的公司都會(huì)招聘區(qū)塊鏈的相關(guān)開發(fā)者撤防,包括:初創(chuàng)公司、科技公司棒口、銀行寄月、私有企業(yè),甚至是政府和專業(yè)服務(wù)機(jī)構(gòu)等无牵。
可參考以下網(wǎng)站:
https://crypto.jobs/
15. 區(qū)塊鏈招聘網(wǎng)站
隨著區(qū)塊鏈行業(yè)的火熱漾肮,招聘網(wǎng)站也越來(lái)越多,除了上面的網(wǎng)站之外還有一個(gè)不錯(cuò)的招聘網(wǎng)站:
http://blockchainjobz.com/
16. 試著拿些認(rèn)證
經(jīng)驗(yàn)是找到好工作的基礎(chǔ)茎毁,一般來(lái)說(shuō)克懊,如果你有個(gè)三五年的Web開發(fā)經(jīng)驗(yàn),去拿一些認(rèn)證相對(duì)來(lái)說(shuō)比較容易七蜘。最簡(jiǎn)單的拿認(rèn)證的方法是為一些初期的開源項(xiàng)目貢獻(xiàn)代碼谭溉,當(dāng)然如果能拿到一些知名項(xiàng)目的認(rèn)證則更好,例如Hyperledger Platform橡卤,不過(guò)這個(gè)項(xiàng)目需要你的C++和Java技術(shù)過(guò)硬扮念。
17. 為開源項(xiàng)目貢獻(xiàn)代碼,并拿到報(bào)酬
上面說(shuō)了為一些開源項(xiàng)目貢獻(xiàn)代碼可以拿到認(rèn)證蒜魄,實(shí)際上有些開源項(xiàng)目也會(huì)給貢獻(xiàn)者金錢的獎(jiǎng)勵(lì)扔亥。例如Gitcoin场躯。開發(fā)者可以再GitHub上解決發(fā)布者的問(wèn)題,就可以拿到相應(yīng)的以太幣作為獎(jiǎng)勵(lì)旅挤。步驟如下:
在GitHub上找到懸賞任務(wù)踢关,無(wú)論是Bug、安全還是任何其他任務(wù)粘茄;
聲明任務(wù)签舞;
解決任務(wù)的問(wèn)題;
提交任務(wù)成果 & 獲得獎(jiǎng)勵(lì)柒瓣。
Gitcoin地址:
https://gitcoin.co/
18. 通過(guò)ICO賺錢
這年頭儒搭,要是沒(méi)試過(guò)ICO都不好意思跟幣圈的人打招呼。其實(shí)ICO說(shuō)白了就是創(chuàng)造一個(gè)自己的Token芙贫,這很簡(jiǎn)單搂鲫。
現(xiàn)在有很多跟「一鍵生成」差不多的小白「造幣」平臺(tái),區(qū)區(qū)幾行代碼磺平,你就能生成屬于自己的加密貨幣魂仍,如OpenZeppelin等。不過(guò)要想ICO到很多錢拣挪,還是需要有核心價(jià)值擦酌。
OpenZeppelin操作指南:
https://blog.zeppelin.solutions/how-to-create-token-and-initial-coin-offering-contracts-using-truffle-openzeppelin-1b7a5dae99b6
19. 開發(fā)DApp賺錢
與當(dāng)年移動(dòng)應(yīng)用的發(fā)展類似,可以預(yù)見未來(lái)兩年DApp會(huì)成井噴式發(fā)展菠劝。作為開發(fā)者赊舶,你現(xiàn)在就可以試著開發(fā)一些DApp,并試著去變現(xiàn)赶诊。通常笼平,DApp上的每筆交易,開發(fā)者都可以拿到2-5%的利潤(rùn)甫何。如果你能開發(fā)出像迷戀貓那樣的爆款出吹,利潤(rùn)將會(huì)非常可觀辙喂。
通常捶牢,你可以通過(guò)以下任意一種方法來(lái)實(shí)現(xiàn)DApp變現(xiàn):
制造爆款和發(fā)幣;
收取一定比例的交易費(fèi)巍耗;
特殊功能收費(fèi)秋麸;
訂閱或會(huì)員機(jī)制;
廣告炬太;
募捐
其他成為區(qū)塊鏈開發(fā)者的必要因素
這部分屬于進(jìn)階內(nèi)容灸蟆,對(duì)于已經(jīng)擁有過(guò)硬技術(shù)的區(qū)塊鏈開發(fā)者來(lái)說(shuō),掌握以下知識(shí)可以走到更高的位置亲族。
20. 學(xué)點(diǎn)經(jīng)濟(jì)學(xué)
作為區(qū)塊鏈開發(fā)者炒考,只懂技術(shù)是不夠的可缚,要想走得更高更遠(yuǎn),你還需要學(xué)習(xí)一經(jīng)濟(jì)學(xué)理論斋枢,因?yàn)榻?jīng)濟(jì)學(xué)是區(qū)塊鏈和加密貨幣的基礎(chǔ)帘靡。這些理論包括博弈論、宏觀/微觀經(jīng)濟(jì)學(xué)瓤帚、供需關(guān)系描姚、機(jī)會(huì)成本、拍賣理論戈次、貨幣政策轩勘、敏捷貨幣、通貨膨脹怯邪,以及通貨緊縮等绊寻。
21. 多交流
區(qū)塊鏈開發(fā)者不應(yīng)該閉門造車,應(yīng)該走出去多多跟人交流擎颖,無(wú)論是交流開發(fā)技術(shù)還是觀點(diǎn)榛斯,都能獲得很大的益處。最好的交流方式搂捧,是多多參加行業(yè)活動(dòng)、沙龍等懂缕,即使沒(méi)有線下活動(dòng)允跑,也要試著去網(wǎng)上找一些論壇,與其他開發(fā)者討論搪柑。比較優(yōu)質(zhì)的開發(fā)者論壇/社區(qū)包括:Reddit聋丝、Slack、Gitter等工碾。
22. 軟實(shí)力的提升
軟實(shí)力的提升是個(gè)長(zhǎng)線投資弱睦,也許要等到很長(zhǎng)時(shí)間之后才能看出來(lái)。但比起開發(fā)的硬技術(shù)渊额,軟實(shí)力對(duì)于開發(fā)者來(lái)說(shuō)同樣重要况木。想要爬到更高位置的開發(fā)者需要軟硬兼顧。典型的軟實(shí)力包括:管理能力旬迹、團(tuán)隊(duì)合作能力以及多任務(wù)處理能力等火惊。
23. 聽聽資深開發(fā)者的反饋
在完成自己項(xiàng)目的開發(fā)之后,收集和分析反饋十分重要奔垦。你可以把自己的項(xiàng)目上傳到GitHub屹耐,聽聽一些資深開發(fā)者的反饋。也可以上傳到Reddit椿猎。
24. 給自己留點(diǎn)學(xué)習(xí)的時(shí)間
很多開發(fā)者有一個(gè)誤區(qū)惶岭,就是認(rèn)為如果花太多時(shí)間學(xué)習(xí)寿弱,就會(huì)放過(guò)很多大好機(jī)會(huì)。但實(shí)際上按灶,今天的區(qū)塊鏈就像90年代的互聯(lián)網(wǎng)一樣脖捻,還處于剛剛起步的階段,很多優(yōu)質(zhì)的項(xiàng)目和公司都還沒(méi)出生呢兆衅。因此地沮,現(xiàn)在給自己多點(diǎn)時(shí)間學(xué)習(xí),徹底掌握區(qū)塊鏈的開發(fā)技巧和理解其背后的原理羡亩,可以為未來(lái)打下堅(jiān)實(shí)的基礎(chǔ)摩疑。
歡迎關(guān)注微信公眾號(hào)“區(qū)塊鏈大本營(yíng)”~
區(qū)塊鏈開發(fā)者的基地。
從這里出發(fā)畏铆,讓區(qū)塊鏈回歸技術(shù)與應(yīng)用的本質(zhì)雷袋!