来自:区块链大本营(微信号:blockchain_camp)
今天咱们就聊聊「如何成为区块链开发者?」这个话题
,在营长采访过的很多技术专家中,
经常都会问他们是如何成为区块链大拿的?以及是通过怎样的方式和区块磨炼自己的技术的?
日积月累下来,得到了很多优质的反馈。
因此,本篇文章将会回答并解决你以下问题:
-
我该如何成为区块链开发者?
-
成为区块链开发者需要掌握哪些知识/技能?
-
我该去哪里寻找资源来自我提升?
-
我该如何养活我自己,以及找个靠谱的工作?
值得留意的是,
这些内容并不单纯是写给小白的
,即使你已经有开发经验,
也能通过这篇文章看出区块链开发者的完整知识框架,填补自己的短板
。
文章中也会附上学习资源。
言归正传,下面就开始吧。
手把手带你成为区块链开发者:必备技能
1. 理解区块链背后的原理
在开始开发前,对区块链系统和机制有个深刻的了解是十分必要的,你需要先知道区块链到底是什么、什么叫挖矿、矿工、区块链、共识等基本知识。这里推荐一本书:
Mastering Bitcoin: Unlocking Digital Cryptocurrencies
(《走近区块链:解锁加密货币》)
2. 熟悉以太坊
如果你想发币或者玩玩ICO,那么你需要先了解一下以太坊,因为以太坊是ICO项目最常用的平台,也是作为一个区块链开发者,无法绕开的一个平台。第一步,你可以先从安装以太坊客户端开始,常用的客户端有,
Geth
和
Parity
。
3. 花点时间学习Solidity和Truffle
Solidity是以太坊推出的智能合约编程语言;Truffle是目前最常用的以太坊开发框架。作为区块链开发者,你必须对Solidity和Truffle非常熟悉。其实,Solidity上手的门槛并不高,学过JavaScript的人应该很容易理解。
而Truffle,你可以参考官方的详细操作步骤,对应步骤操作一遍应该就能掌握了。
Truffle操作步骤:
https://truffleframework.com/boxes/pet-shop
其他资源:
https://techiesamrat.com/free-blockchain-basics-beginners-podcast-course/
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,他曾分享过一系列的以太坊学习资源,包括「官方」和「非官方」两个部分。
先来看看非官方:
https://www.lynda.com/JavaScript-tutorials/Foundations-of-Programming-Fundamentals/83603-2.html
https://www.lynda.com/JavaScript-tutorials/JavaScript-Essential-Training/574716-2.html
https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Data-Structures/149042-2.html
https://www.lynda.com/Programming-Foundations-tutorials/Foundations-Programming-Discrete-Mathematics/411376-2.html
https://www.lynda.com/Git-tutorials/Git-Essential-Training/100222-2.html
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
https://www.youtube.com/watch?v=kanP89Y4hn8
https://github.com/ethereum/wiki/wiki/Solidity-Features
https://solidity.readthedocs.io/en/latest/
https://learnxinyminutes.com/docs/solidity/
https://docs.erisindustries.com/tutorials/solidity/
https://www.youtube.com/watch?v=dd-ajiMl4HY
https://www.youtube.com/watch?v=MzT0fvmZ638
https://www.youtube.com/watch?v=nPpi9BPkRbo
https://www.youtube.com/watch?v=1D7BH8krdhQ
https://www.youtube.com/watch?v=gEV8LfFs8Io
https://www.youtube.com/watch?v=XdPkzzjmirw
https://truffle.readthedocs.io/en/latest/
https://www.youtube.com/channel/UCFShdrPuhFqWlSnpGnz2Wag
https://ethereum.stackexchange.com/
https://www.youtube.com/playlist?list=PLe9AlNDGZKvBWrkf-tKgEJsu2Y_vrBgwv
https://www.youtube.com/watch?v=cPlpWmC7JKk
https://dappsforbeginners.wordpress.com/
https://blog.ethereum.org/2016/07/12/build-server-less-applications-mist/
https://www.youtube.com/watch?v=8jI1TuEaTro
https://www.youtube.com/watch?v=3-XPBtAfcqo
https://medium.com/metamask
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. 找个正儿八经的工作
不用多说,找个区块链开发相关的工作是大多数人的选择。目前,整个区块链市场都处于人才荒的状态,技术扎实的开发者想找个靠谱的工作并不难。在找工作之前,你应该先想清楚是否真的要从事区块链开发,此外,你比较中意的工作地点在哪?