1. 入圈之前

出来学习的第一步是出来。在区块链的世界里面,链上的数据都是资产,所以骗子多,入圈的第一步当然是要保护好自己。建议在正式入圈前,先完整的阅读这个文档,这是安全大牛余弦出品,必属精品。看完这个文档之后,对于常见的概念以及对 Metamask 使用就需要很熟悉了。

这一点很重要,如果你不了解里面的基本概念和一些坑,可能入圈的第一天资产就被骗光了,安全意识非常重要,尽早培养安全意识。

2. 正式入圈

区块链分为公链和联盟链,如果联盟链不是在工作中会用到,就不推荐话时间去学习了。如果能够将公链学透,联盟链将不再是障碍,所以这里主要推荐的就是公链的资料。

刚开始学习区块链,当然首推比特币和以太坊。着两条链经受的考验最多,承载的资产也是最多的。可以看一下阮一峰老师的这篇文章,对区块链的基本概念有所理解。

然后就可以看一下比特币和以太坊的白皮书,如果英文版看起来困难,也可以先看中文版。这个地一次看肯定很困难,会有很多的新名词。但是没关系,第一次看就是留个印象。

在看完了之后,推荐看北大肖臻老师的课程,在 B 站上。这个课程真非常好,内容深入浅出,有基本的计算机基础的人就可以听懂。

在完成这些课程的学习之后,你对区块链的认识肯定就超过了大多数人,但是作为一个开发者,重要是能动手做事情。

3. 应用开发

在进入到应用之前,需要对区块链里面的基本应用类型有了解,去中心化应用(DAPP)是什么,还有需要对 Defi、GameFi、NFT 这些热门的应用类型有了解。这里推荐这个视频进行学习,里面对于这些常见类型应用的介绍非常全面,而且通俗易懂,虽然是英文,但是配上字幕,看起来应该不困难。

同时,这些类型的应用在以太坊上都有相应的标准,这些标准叫做 ERC,对以太坊上常用的 ERC 标准也需要有所了解。

学习在区块链上开发之前,需要学习一门语言,在以太坊上,这门语言就是 solidity,可以根据这个文档来学习,里面都是一个个实际的例子,语法不复杂,一个礼拜的时间就可以过完。

因为 solidity 的代码涉及的都是资产,一个小 bug 就有可能导致大量的资产损失,所以代码的测试就非常重要了。hardhat 就是这样的一个框架,可以帮助我们写出更高质量的代码,而且 hardhat 可以帮助我们在本地构建更加复杂的测试环境,还可以直接用来部署合约。建议和 splodity 配套学习。

合约开发完成之后,可以直接使用 hardhat 进行部署,但更常用的一个工具是 remix。这是一个网页版本的 IDE,可以用来部署和访问合约。

合约部署上线之后,还需要与合约进行交互,如果你是一个开发者,当然可以通过代码去访问合约,对于普通用户来说,这样做就很困难了。所以一般用户使用合约的时候还有一个前端的页面,然后通过 Metamask 之类的钱包来与合约进行交互。开发这样的一个网页就需要用到 web3js。用这个库来连接钱包、网页和合约。

面向用户的网页+链上的合约就可以称之为是一个 DAPP 了,这些网页可以找一台服务器进行部署,但是大多数人会将网页部署到 IPFS 上,这是一个去中心化的文件系统,也需要有所了解。

如果能把上面的这些内容掌握,你应该就有能力开发一个 DAPP。

4. 深入学习

在学习了应用开发之后,就需要深入的学习底层链了。如果不深入的研究底层链,就相当于错过了区块链技术中最有趣的部分。

比特币原理学习,比特币的技术审计迭代很慢,但也是目前最有价值的区块链网络,这个小众的网站(BTC Study)资源很棒,可以用来深入学习比特币。

以太坊的技术发展的速度很快,在当前的 9 月份,以太坊就发生了一次大的升级。对于以太坊来说,官网就是很好的学习资料,里面总是会更新以太坊当前的最新进展,没事多上去逛逛,总能遇到新的惊喜。

如果对以太坊的升级和扩容方案很感兴趣,可以跟踪这个视频,讲的很不错,有细节,有深度。另外如果想跟踪以太坊技术的进展,V 神的博客 是一定要关注的。里面有很多 V 神关于技术的思考,值得深入研究。

除了上面的那些资料之外,还有一种很值得的学习方式就是去看源码,毕竟理论的知识最终是要落实成源码的,如果觉的理论的内容已经很枯燥了,可以开始看源码,当前以太坊执行层和共识层的比较流行的实现是 geth 和 prysm,可以从这两个库开始。

如果觉得以太坊和 BTC 掌握的差不多了,就可以去看看其他的公链了,这样对比起来的学校效果说不定更好。

最后,虽然区块链的技术很多,但是毕竟都是基于分布式技术来实现的,如果想更进一步,就可以去研究分布式技术了,这也是很大的领域,一起探索吧。

5. 总结

区块链技术出现的时间补过 10 多年的时间,很多技术都在快速不断的发展中,所以不要盲目的去追求新的技术,目前比特币和以太坊是两条经受了大量考验的链,从这两条链开始学习是比较合适的,

等这两条链吃透了之后,就可以开始关注其他的项目了。等到了那个时候,也可以很轻松的分辨那些项目有价值,哪些项目是在瞎扯淡。

上面涉及到的连接也都整理在下面了,如果有什么问题,欢迎随时联系我交流。

参考链接

[1]https://darkhandbook.io/index.html

[2]https://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html

[3]https://bitcoin.org/bitcoin.pdf

[4]https://ethereum.org/en/whitepaper/

[5]https://www.bilibili.com/video/BV1Vt411X7JF

[6]https://www.youtube.com/c/Finematics

[7]https://solidity-by-example.org/

[8]https://hardhat.org/

[9]https://remix-project.org/

[10]https://github.com/web3/web3.js

[11]https://eips.ethereum.org/erc

[12]https://www.btcstudy.org/

[13]https://ethereum.org/en/

[14]https://www.youtube.com/c/biquanlibai

[15]https://geth.ethereum.org/

[16]https://github.com/prysmaticlabs/prysm

该怎么学习区块链技术?相关推荐

  1. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

  2. 如何系统学习区块链技术-干货来袭

    区块链术涉及面很广,很多开发人员看了一些资料后,感觉似懂非懂. 如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用. 苦口婆心写在前面: 从事 ...

  3. 要凉?46%开发者表示短期内不考虑学习区块链技术,拿什么拯救你我的区块链人才荒...

    程序员应该选择什么技术领域才能获得最高的回报? 本文详细解读了 2018 年最热门的五大领域,对行业现状.薪资概况及具体的技能要求给出了深入的分析,希望给担心"入错行"的你提供些指 ...

  4. 区块链是什么,如何学习区块链技术?快速上手

    一.区块链是什么? 二.从技术角度学习区块链技术? 一.区块链是什么?区块链有很多的定义,大家的说法都不一样,业界都还没有统一.每个人心中都有自己的哈姆雷特.所以此处就不做定义了.也可以参考其他回答. ...

  5. 如何学习区块链技术?

    2018年春节最火热的概念应该就是区块链了,从百度的莱茨狗和网易星球刷屏朋友圈,到3点钟区块链无眠群的大火,大佬们纷纷进军区块链,不了解区块链好像错过一个时代. 这里把学习区块链过程中的一些资料进行索 ...

  6. 如何使用区块链币收款地址找合约地址?_区块链技术学习指引

    本文原文链接 本文为博客文章索引,小白必看.有新文章时会更新本文,建议大家加入收藏夹中,如果你觉得本站不错,欢迎你转发给朋友. 引言 给迷失在如何学习区块链技术的同学一个指引,区块链技术是随比特币诞生 ...

  7. 区块链技术实战学习路线图

    请大家前往深入浅出区块链主站, 获取最新内容. 本章的文章越来越多,本文是一个索引帖,方便找到自己感兴趣的文章,你也可以使用左侧的分类.标签及搜索功能. 有新文章时会更新本文,建议大家加入收藏夹中,如 ...

  8. 区块链学习培训如何学?怎样能高效且快速掌握区块链技术呢?

    全球对于区块链人才的需求量从2015年开始出现增长,并且在2016-2017年经历了大规模爆发.行业发展引起人才需求变化,对人才的供需两侧及相关多方都会造成更多不确定性.多方数据显示,目前区块链人才市 ...

  9. 区块链技术学习总结专栏前言

    谨以此专栏记录我在区块链行业的技术学习之旅 我大学读的是经济学专业,然而在大四接触到编程之后,就一发不可收,对这种极大促进生产力的工具有着深深的崇敬,为此我开始自学编程,我看过很多人分享过他们自学编程 ...

最新文章

  1. [转]安卓开发startservice 和bindservice详解
  2. Leetcode 136 Single Number 仅出现一次的数字
  3. tablewidget字体显示不全_ios 容器内容显示原理及调整
  4. Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能
  5. 在 iOS 或者 Mac OS X 中将 NSDictionary 映射为本地对象的方法
  6. 教师计算机提升学到的知识,计算机教学质量提升措施浅谈.doc
  7. 测试连接oracle数据库耗时
  8. C++之函数模板探究
  9. Cent OS 重置root密码
  10. readonly 关键字与 const 关键字不同
  11. 如何学习数据库?数据库零基础入门指导
  12. 【常用传感器】DS18B20温度传感器原理详解及例程代码
  13. css中单选按钮怎么写,CSS 单选按钮
  14. 关于在ElasticSearch中使用now函数进行时间范围过滤查询的问题
  15. Web前端满屋花案例框架
  16. android编译生成apk文件怎么打开,android studio生成apk在哪?
  17. HeaFirst设计模式-单件模式[单例模式](Singleton Pattern)
  18. 20190831每日一句 超越你的舒适区,突破自我,继续前进!
  19. 《Spark用户评论监控实时报警系统》
  20. 网站登录入口大全|搜索引擎登录入口

热门文章

  1. 解析 Linux 中的 VFS 文件系统机制(1)
  2. 【二】2D测量 Metrology——get_metrology_object_measures()算子
  3. android Studio JDK环境变量配置
  4. 鼎信诺oracle_鼎信诺,oracle数据库还原操作详解.ppt
  5. stata做计量入门常用代码一览!
  6. 遇到线上问题该怎么办?
  7. 基于vue element 封装上传组件
  8. 做IT的考什么证书含金量高?对带项目和招标有作用的?
  9. win10 宽带拨号720联网错误
  10. oracle故障分析报告,Oracle 数据库异常宕机错误分析:ORA-01092