难题
最近和一些朋友闲聊,发现都对 Web3 很感兴趣,都想加入进来。但又找不到切入点。
这篇文章主要是和大家聊聊如何成为一名 Web3 开发者。
前景
至于 Web3 开发者的职业前景,我就不多赘述了。可以看我之前的一些文章。
这里可以简单看下目前 Web3 开发者的招聘市场和薪资情况。截图均来自我的朋友圈及我所接触的一些社区和平台。
可以看到,Web3 的要求并没有那么高,通常只需要 2 年以上的工作经验就可以拿到 Web2 中 5 年以上经验才拥有的待遇。
为什么会这样?
Web3 目前仍然是蓝海,刚起步不久,开发者少,人才难招。
就像 00 年前后,你即使只会用 html、css 和 js 简单画一个页面也仍然是难得的人才。
而反观 Java、前端这些已经非常成熟的领域,人才泛滥,市场竞争激烈。你需要付出非常多的时间和精力才能在一众人群中脱颖而出。拿最成熟的 Java 招聘市场举例,这个领域有数不清的十几年架构经验的老程序员,他们具有先发优势,作为后起之秀的你很难在技术和经验上卷得过他们。
但在如今的 Web3 开发者里面,竞争没有这么激烈。你现在加入进来,三年以后你就是大佬,五年以后你就是专家。
Web3 适合什么人?
适合零基础小白,也适合具有前端、后端、数据库等经验的开发者。可以说,Web3 适合所有人。
为什么这么说?我先分析一下 Web3 的技术架构。
本质上 Web3 和 Web2 的架构没有太大区别,但是引入了一些概念。
传统 Web2 架构是前端、后端、数据库。
通常 Web3 架构是前端、后端、智能合约、区块链、去中心化存储。
Web2 的前端是和 API 交互,Web3 的前端不仅仅是和 API 交互,还要和 ABI 交互、和合约、区块链交互。
Web2 的后端是操作 DB,Web3 的前端是操作合约、区块链和去中心化存储。
Web2 的接口风格是 RESTFul,Web3 是 JSON-RPC。
总而言之,Web3 不是一种新技术,而是将一堆技术进行框选,组合,形成的技术体系,在技术上,它并没有完全脱离 Web2。原来在 Web2 中的各种技术及经验,一样可以沿用到 Web3 的开发中。
学习 Web3 技术有哪些难点?
四个字:不成体系。
说到底,Web3 毕竟是一个新事物,虽然它是建立在一堆旧事物上的。
新事物在诞生之初都会伴随着非常多的变化。
在这个过程中产生的一系列内容都只有很短的时效性。而且网络上的大部分内容只适合作为了解信息的一种渠道,很难成体系。
体系是很重要的,在任何一种知识或者技术中都是非常重要的。所有高手都有自己的体系。
Web3 的中文资料很少,而且很多都很片面,而目前中国对待 Web3 这类技术的政策保持着冷眼旁观的态度,这导致无论是权威机构还是网络上的中文资料都很稀缺,而成体系的 Web3 资料更是少之又少。
所以一个 Web3 成体系的学习资源对很多人是很有价值的。而我也在想办法整理一套这样的知识体系,帮助到更多需要的人。让 Web3 成为一种普惠的技术,不要再和下一个技术机遇擦肩而过。
知识体系与学习路径
目前我还在设计这套 Web3 的体系,不过在这之前我可以给大家推荐一下我目前设计的半成品。由于我设计的知识体系是对标全栈开发者,所以会涵盖 Web3 技术相关的方方面面。
话不多说,下面是学习路径。
1. 基本概念
无论你是做前端、后端、智能合约还是全栈,都需要了解 Web3 中的基本概念。
其中包括:Web3 原理、加密货币、区块链、钱包、交易所、区块链浏览器、智能合约、NFT、DApp、DAO、比特币底层原理及核心技术、以太坊底层原理及核心技术。
当然不是所有内容都需要了解,有一些是根据你的具体情况选学的。
但是有一些是你必须懂并且要操作的。
比如如何注册一个钱包,MetaMask、rainbow、coinbase 这些主流钱包的基本使用。
然后你要知道怎么样获取货币,交易所你要会用,区块链浏览器你要会看。
你要懂什么是智能合约,以及智能合约基本的功能。
2. 前端基础知识
因为 DApp 也要有前端页面,所以你必须懂前端基础知识。这部分内容并不多。
一款编辑器:VSCode。
三门语言:HTML、CSS、JavaScript。
一门非必选语言:TypeScript。
3. 前端框架
只学习前端基础知识确实能够开发一个 DApp 的前端,但要想 hold 住一个稍有规模的项目还是比较吃力的。这时需要学习一门框架。
目前大多数 Web3 项目都会采用 Nextjs 框架,并使用 vercel 部署。
而 Nextjs 框架又基于 React 库。
所以这里你需要学习 React 和 Nextjs。
当然你也可以学习 Angular、jQuery 这些库或者框架,但使用率没那么高,机会会少很多。
4. 后端基础知识
任何一门编程语言都可以充当 Web3 的后端,可以学习 Nodejs、Go、Java。
这里推荐 Nodejs,因为是全栈,使用 Nodejs 的话可以前后端都只使用一门语言就可以了。
5. 后端框架
Nextjs 可以写一些 API,使用 Nextjs 作为后端框架完全可以。
当然也可以选择其他语言的框架,比如 Nodejs 的 express、koa;Java 的 Spring;Go 的 gin、Iris 等。
6. 智能合约
相对前面的内容,智能合约是一个全新的概念。
你需要掌握 Remix 编辑器的使用,Solidity 语言的使用。还要学会一些工具,比如 Hardhat、Waffle、Ganache 和 Truffle,它们可以帮我们更好的完成智能合约编译、测试和部署工作。你还需要学习 OpenZeppelin,它是一个很棒的 Solidity 库。
然后还需要学习各种协议标准以及它们的区别,比如 ERC20、ERC721 和 ERC1155 等。这是必不可少的基础。同时你还需要知道代理合约。
同时你还需要了解一些 NaaS,比如 Alchemy、Infura、Tenderly 等。这些 NaaS 都提供了很多功能让你更好地完成你的 DApp 开发。
7. 智能合约交互
智能合约交互需要学习 Web3.js、Ethers.js 和 Wagmi 这三个主流的库。如果你使用 TypeScript,还需要学会使用 typechain 这个库。
Ethers.js 是我认为目前最好的智能合约交互库。
如果你使用 nextjs 或 React 进行开发,那么 Wagmi 是更好的选择。
8. 基础设施
这部分内容比较杂,包括公链、域名系统、EVM、跨链桥、去中心化存储、IPFS、预言机等。
但很多都是存在于概念上的,在技术上可能很少会接触到。
但是像 IPFS 和预言机这种技术还是会用得到的。如果使用 IPFS 还要使用 Pinata 这类 Pin 服务。
总结来说,基础设施除了一些原理性知识和概念外,主要是去中心化存储这项技术,它取代了传统数据库,用来存储体积大难以上链的数据。
9. 应用生态
这部分就是 Web3 真正发挥价值的地方了。
你不能仅仅知道 Web3 的技术,还需要知道一些业务。
包括了 DEX、稳定币、借贷平台、流动性质押、预测市场、NFT、DeFi、GameFi 等。
当然作为开发者的话,这部分并非必学,以了解为主,如果你完全不了解,很难进行业务的开发。如果作为产品或者运营,就需要非常精通这些生态。
以上就是我总结的知识体系,目前仍在不断丰富和完善中。
我希望将我的经验分享给更多人,帮助一些人,成就一些人,改变一下这个行业,推动一下世界的进步。
我正在参加掘金的年度人气创作者投票,如果方便希望可以帮我投票,非常感谢。
网页和 App 都可以分别投很多票哦。
可以点击我的头像后面的按钮进入投票,也可以点击下面的链接。你的投票对我非常重要!
我们是一群立志改变世界的人。而 Web3 是未来世界一大变数,我们想帮助更多人了解 Web3,如果你对 Web3 感兴趣,可以添加我的微信:LZQ20130415,邀你入群,一起沉淀、一起成长、一起拥抱未来。