在这一知识图谱中,Linux操作系统是基础中的基础,因为大多数的区块链系统是可以跑在Linux操作系统上的,包括CentOS和Ubuntu等。因此,开发者至少需要掌握一些基本的Linux操作指令,比如ls查看目录、ps或top查看进程、find查找文件、netstat查看网络等。如果学会写shell脚本,那更如虎添翼。这一过程大概需要一星期左右。
接着,就到了网络层,因为区块链是分布式系统,节点之间是通过网络相连接的,所以你还需要了解一些网络概念。但网络概念不需要有多精通,你只需要知道什么是TCP/IP、公网/内网/本地地址的区别、端口如何配置、节点与节点,以及SDK与节点之间是否会被防火墙和网络策略挡住等即可。一般来说,Linux书籍都会介绍这部分内容。
如果是基于云、Docker或K8S等容器环境构建,则需要了解使用的服务商或容器的功能、性能、配置方式,包括对资源的分配:CPU、内存、带宽、存储等。这方面可以参考云服务商的技术文档,相信很快就可以上手。
到了编程语言的阶段,由于区块链并没有限定编程语言,因此开发者可以根据自己的学习路径选择不同的语言。C、C 、Java、Python、Golang、Solidity都是可以的。
但只熟悉语言还不够,还需要对语言的周边工具有所掌握。以Java为例,你还需要掌握Eclipse、IntelliJ IDEA等集成IDE,熟悉Gradle为主的工程管理软件,熟悉Spring、Springboot等java的基础开发组件,熟悉在IDE或命令行下对资源路径如ApplicationContext等路径的定义。好在这些内容都可以在Java相关的社区和网站上找到学习资源。在熟练使用Java的情况下,采用Java SDK接入到区块链,跑起一个Demo Sample,将是非常轻松写意的事情。
最后是GitHub,这个就不用多说了。不仅是区块链开发者,对任何程序员来说,在GitHub里冲浪,应该都是必备的技能了。
基础知识栈
掌握了区块链的基础知识以后,你还需要对区块链平台的基本结构有所了解。张开翔为区块链入门开发者绘制了一个实用型技能树,他认为,区块链领域的基础知识栈从底层到上层依次由以下几个部分构成:
做个学习型的开发者
想要熟练掌握一门开发技术,需要长期的学习,在这方面,一个开发者是否有读文档的耐心、搜索资料的能力、代码阅读能力,至关重要。因为区块链开发平台的开发文档都卷轶浩繁,以FISCO BCOS为例,其开发文档足足有20万字以上(文档还有中英文两个版本),全部看完,相当于要读完一本《白鹿原》,或者《基督山伯爵》。这还不算其公众号中大量的技术解析和科普类的文章。
一个典型的技术实操类文档如下(FISCO BCOS智能合约开发文档):
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/smart_contract.html#
如果能够通读且深入理解,无疑会对未来的开发工作有不小的帮助。
怎么样,以上的内容是不是给了一些启发,让你找到了一些学习的方向呢?相信你留意到了,这份学习路径,是来自于微众银行多年区块链实践的沉淀。作为国内较早布局区块链业务的企业之一、《区块链产业人才岗位能力要求》标准(由工信部人才交流中心组织编制)的编写者之一,微众银行在帮助开发者学习和成长方面做了许多的尝试,无论是打磨开发者学习资源,还是举办线下技术特训营、区块链大赛,开设高校课程等,都帮助了一大批想要学习区块链的人迈出了第一步。
区块链探索之路漫漫,咱们往下接着看。
第二步,找到「组织」,得有人与你并肩战斗
要成为一名合格的区块链开发者,光学习还不够,还得学会自己动手开发。正如技术圈的一句老话:Talk is cheap,show me your code(能敲代码尽量别吵吵)。与一群志同道合的人一起切磋,一起上手,会让你的成长之路事半功倍。
多参加行业活动能帮助你在技术上快速成长,同时认识一群跟你一样对区块链技术感兴趣的人。主要的线下活动诸如面对面交流的Meetup、侧重实操的开发特训营、区块链比赛、培训等,不同的开发者社区和第三方组织机构,甚至是官方机构,都会定期举办这些活动。
那么,你该如何选择适合你的活动呢?
首先,在参加活动前要明确自己的核心目的。了解行业前沿技术研究成果和应用方向,参加一场线下沙龙/Meetup是一个快速掌握趋势的途径;急需上手跑起来,开发特训营可以让你在短短两小时内顺利完成搭链;一身技能在手,各类型比赛则正好是小试牛刀的舞台。对于区块链初学者,营长更推荐你参加实操性强的开发特训营。
与一般沙龙一个在台上讲一个在台下听的模式不同,开发特训营要求开发者自带电脑参会,按照每场设定好的主题,去一一实现。主题也非常多样,从最简单的Hello World到智能合约开发、开发框架上手、游戏开发、Dapp开发等,一些安全社区还会教你现场双花一条链、找出某条链的漏洞、进行一次粉尘攻击,相当刺激。
两周前,营长就在深圳联合微众银行及FISCO BCOS开源社区,举办了一次这样的「区块链开发特训营」。在FISCO BCOS高级架构师莫楠为参会者剖析完FISCO BCOS的核心原理之后,两位FISCO BCOS的核心开发者就带领大家现场撸起了代码。很多开发者在现场,仅用了2个小时就完成了搭链和Dapp开发。
「区块链开发特训营」现场
由于主题设定往往比较基础,所以这类活动更适合那些基础薄弱甚至是「零基础」的同学。如果你已经具备了一定的开发知识,希望能更进一步,那么黑客马拉松和开发者大赛也许是更好的选择。
根据维基百科,黑客马拉松是指:很多人,在一段特定的时间内,相聚在一起,以他们想要的方式,去做他们想做的事情——整个编程的过程几乎没有任何限制或方向。黑客马拉松具有时间短、高强度、高想象力、高默契度、高爆发力等特点,因此近年来在国内外都大受欢迎。在今年,微众银行以FISCO BCOS为赛题举办了北京站、深圳站两场黑客马拉松,134支队伍的500多名开发者在极速36小时内“怒肝”代码,打造出一个又一个基于区块链技术的创新解决方案。