如何学习区块链
November 11th, 2021

学习区块链技术和任何其它任何技术一样,没有捷径

我会从两个角度来阐述,

  • 一个是从我个人的经历出发,让大家了解一个普通的开发者怎么融入到区块链的技术领域中;
  • 另一个是我自己的学习方法分享

角度一:经历

首先要意识到,在学习过程中,你会产生无数次想否定区块链的想法,这很正常,先把学习这个技术的想法放下,做一些你觉得更有意义的工作,在日常工作中再不断来感受区块链的意义。

我个人12年通过Hacker News第一次听到了比特币的名字,由于网络原因,只是下载了客户端软件,无法同步网络,这是我第一次放下。

16年被朋友说服去研究以太坊,我下载了Mist 客户端(它是以太坊智能合约的开发环境和工具),我根据官网的教程写了一些代码,说实话体验非常差,要知道那时候我正在使用Rails这样优秀的开发框架。这是我第二次放下。

然而我却发现了去中心技术这样一个新大陆,没有区块链,没有币,只有“干净”的技术,这些技术包括但不局限于存储相关的IPFS、DAT,社交领域的ScuttleButt、Solid。说实话,这是我第一次感觉到技术的魅力,我几乎每晚都保持着高压的学习,因为白天有日常的工作,只能靠晚上挤出来时间,熬了数不清的夜,辗转反侧,来思考某个技术的特点和意义。

17年底老婆怀孕了,我很开心,但是由于孕吐比较严重,我只能肩负起做饭的重任(做的不好吃,到后面只能买孕妇餐)。我晚上的时间也没有了。这是第三次放下,前面说的各种去中心技术也都放下了。但是我不后悔,因为第二年我有了可爱的孩子。

说了这么多放下,**但是我真的能放下吗?**你一旦了解了去中心的技术,就很难完全的放下,它会充斥在你生活和工作的方面,每一天都在感受它。

19年,宝宝一岁了,我决定做出改变,去追求我认为当前最有意义的事情,毫无疑问就是我们说的以区块链为代表去中心技术。机缘巧合,了解到了Parity 这个区块链领域的技术先行者,获取了一个兼职的机会,到20年又变为全职,这中间遇到很多挑战,这里不再啰嗦。

你可以看到,对于热爱某项技术的人,放弃它其实是非常难的,区块链也是一样。可能有的人会好奇,为什么有那么多人热爱它?我无法完全地了解别人的想法,但从我的经历来看,区块链带给我的不只是技术边界的拓展,更多的是一种或者多种不同的思维方式,让我接触到不同的人,了解了不同地区的文化,更清楚的知道了自己的方向和责任。就和看同一本书,每个人都有自己的体会,我建议大家开始去读,去看别人的体会,自己也多总结。

角度二:方法

每个人的学习方法不同,这里分享我对区块链技术的学习方法,希望能给大家带来帮助。对我个人比较有效的学习方法,是由应用层到底层。我不会一开始就去读比特币或者以太坊的白皮书,或者《Master Bitcoin》这类的书。其实我在学习过程中都有下载,但真的读进去、看明白也是最近一两年才发生的。那对于技术人员或者有一定学习能力的非技术人员,我建议的学习路径是:

  1. 浏览不同的区块链项目的网站,产生一个基本的认识。

这么多不同的项目我应该浏览哪一个呢?从比特币、以太坊开始,然后发现不同的其它项目,和相关的查找方法,由于区块链领域良莠不齐,这里不再放过多的细节。个人建议你应该最少看10个不同的国外顶尖项目。如果还需要讨论更细节的内容,可以去添加我的公众号。

  1. 对不同的项目有了初步的认识之后,有些爱动手的人应该就要开始折腾了。折腾什么东西呢?
  • 搭建区块链应用的节点,它会让你对去中心的网络有更深入的了解,也会让你对项目背后的代码产生最基本的认识。
  • 使用钱包工具,它可以让你对去中心的身份系统、密码学产生基本的了解。
  • 使用区块浏览应用,通过它你可以查询账户或者交易的状态。
  1. 折腾了上面这些工具之后,我相信你已经了解了某个项目最基本的运行环境和相关的生态,这个时候我相信你已经加入了对应的开发者社区,他们通常活跃在各个聊天工具和论坛上。你会开始和不同的人聊天,聊各自对技术的理解,有哪些还可以完善的地方,你可以提供哪方面的技术,比如UI,前端,服务器端等等。接着,你就可以进行一些比较深入的开发,比如:
  • 学习项目提供的API文档,和区块链节点进行交互,比如创建账户、发送交易等等。
  • 编写自定义的应用,比如钱包、区块浏览应用。可能不存在这样一个需求,即写一个完善的与区块链交互的应用,但最好还是能通过动手,进而对这些工具的代码有大致的理解。
  1. 如果仅仅是钱包和区块浏览这样简单的去中心应用,其实给人们带来不了多少改变。将现实生活的问题深入理解,并转化成技术解决方案,需要非常多的领域知识,也只有这样的人才能将区块链技术带入寻常百姓家。已经有很多的区块链应用通过引入智能合约和应用链开发框架,来帮助开发者实现更加复杂的应用场景,满足各种灵活的需求。我建议的两个值得学习的相关技术为,

    • 以太坊Solidity智能合约编程
    • Substrate区块链开发框架

    这里我们不去过多地介绍两者的区别,如果感兴趣,可以订阅下面的知乎专栏了解更多的技术内容。

    Substrate区块链开发

  2. 如果你不满足于解决生活中的问题,还想要探索代码背后的奥秘,我想你已经迫不及待地想了解这个区块链应用的底层协议和实现。下载源代码,打开项目的白皮书,比特币白皮书(迄今为止应该是最精简的区块链技术教程),然后就开始和代码硬钢吧。这个时候组成一个兴趣小队,互相交流分享,会事半功倍。别忘了你还可以向官方的技术大牛请教,这些人通常都很乐于讨论技术问题。这个过程可能会花费比较多的时间,如果想深入底层技术,这个过程是跳不过去的。同时还要积极地去找bug、提issue、提PR,将学习结果进一步的展现出来。当你对协议和代码有了一定的理解后,你通常会想做这么几件事:

  • 用自己最擅长的语言重写这个区块链应用的协议。
  • 选择某一个功能模块,长期贡献代码。
  • 引入新的技术,充实原有的区块链应用,甚至开发一个新的区块链应用。这些技术包括但不局限于:新的共识算法、零知识证明、形式化验证、分片和跨链等等。
  • 更多我没有触及过的领域...

总结

以上仅是我个人的学习经历和方法,不作为标准,也不一定正确,只希望对大家能有一点帮助。

写在最后,我相信很多人都了解这个领域有很多的噪音,区块链这个词一度也被认为是只有投机者和骗子才会使用。我想说的是,技术解决不了人性的黑暗面,但是我们可以选择以什么样的角度来看待这个世界

欢迎订阅公众号:守护进程

Subscribe to whisperd
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from whisperd

Skeleton

Skeleton

Skeleton