{"content":{"title":"一个Web3开发的入门历程","body":"# 说在前面\r\n这篇文章主要写自己在web3行业的历程，包括自己如何入行，自己的技术栈以及自己的学习感悟。也会介绍我整个学习过程中对我帮助非常大的技术资源和开发者，这些文章和人对我确实有质的提升。希望这篇文章能够给新入行的web3开发者带来一点沉浸式体验和一些有用的经验，同样希望能够和同行形成一种共鸣。\r\n\r\n# 关于我\r\n这篇文章开始之前我先介绍一下我自己，因为新人的疑问我都有过，可以先说我，然后从我的角度来给大家带来一些感悟吧。在很多新人咨询类的群里听到的最多的几个疑问是：1.没基础能不能学？2.从哪里入门？有没有什么资料可以参考？3.区块链行情怎么样？现在工资水平如何？4.灰色或者违法吗？针对这几个代表性的问题我一个个回答一下：\r\n\r\n1.我毕业于非常普通的本科学校，大学专业是师范英语，没有大厂经验，目前是前端开发+合约开发，3年多一点点的开发经验，在做开发之前是英语老师，转行是自学，当时自学的是python，然后又学的前端，刚自学那段时间最怕的是环境问题，硬是啃到现在的，编程思维和经验是啃出来的，最初基础很差。就我这履历，web3新人群比我强的一大堆，所以没基础能不能学这件事，从我的角度就可以看出来了，肯定能学，只是自己要考量一下是不是要去学，是不是值得你去学，如果你存在自我怀疑和纠结，那答案就是放心去学，冲就行了！\r\n\r\n2.技术如何入门我接下来会细说，暂且不表。\r\n\r\n3.对于现在的web3的行业发展行情，我听过很多分享感悟，我个人体会就是所说的98年互联网，很多基础设施确实不完善，比如solidity这个语言，语言简单，用起来很奇怪，开始给我一种累累的的感觉，自身带有一堆缺陷，版本一堆，属于是不停的优化和完善状态了。针对于工资，虽然很多人说web3开发不在乎工资，这个多多少少有点夸大，可能我比较菜，没有到这一步，所以还是对工资有要求的。我的感悟是，确实不要那么卷，工资比上有点不足，但是比中和比下那还是非常足的，除此之外，会有可能有一些的“意外之财”。\r\n\r\n4.作为一个开发会不会有风险被请去喝茶？我目前没有，我也不参与违法犯罪的业务与事情，我也建议大家不要去参与，踏踏实实研究技术。这个我不好说，我只能说，目前的环境有可能你今天还是合法的，明天可能...比如教育行业，我只能点到这了。\r\n\r\n# 如何入门\r\n开始讲正题了。在如何入门的这个话题上，我看过[郭宇大佬](https:\/\/guoyu.mirror.xyz\/f2yLu59TJ4u07FQ13UmiN4-cLELv3g-qQirY7YF_Qyw)的采访，他说想搞好web3要学好web2。我对于这句话有非常强的共鸣。我搞了很多dapp，现在回头在打React和Ts的基础。说一下我目前的**主技术栈**：前端框架上我用的是React+[Vite](https:\/\/cn.vitejs.dev\/)和[Next.js](https:\/\/www.nextjs.cn\/docs\/getting-started)，语言是Ts为主，合约语言是solidity，测试框架是[Hardhat](https:\/\/hardhat.org\/)，Python和Golang也会偶尔研究，但没做过大业务，其他的语言只是会看一看，但不会去实际操作，比如Rust。可以看出，我绝大部分可能还是用web2技术栈来搞web3，所以打好web2基础是非常重要的。\r\n## 踩过的坑\r\n我其实19年初就已经进入区块链行业了，不知道同行有没有听过MOAC公链。那个时候从老师刚转行，for循环都写不明白，听区块链更是云里雾里。入行早，用现在的角度看，那个时候随便研究一点东西，空投都能实现财富自由，但是我没赚到钱！！！当时也没什么Dapp供你学习，公司整天逮着溯源业务去做，恨不得什么东西都溯源，根本没有看到区块链行业的发展，一个像样的Dapp都没做过，更别说Defi方向了，现在想想如果那个时候有人带着我们搞核心业务，可能我已经是行业大牛了。后来又搞过联盟链，也基本上没有什么提升，我整个前2年其实在web3的圈子外发展，真正深入web3是在去年年初，真正的在搞我认为的web3的技术。就算是深入web3这段时间我也有过很多歪路，比如我求急，给自己定了一个计划：一天看3-5个项目，每天坚持逛twitter，参加各种space，参加各种discord，啃各种白皮书，一个月后我极度的累，信息多不说，还没法深入，都是概念层晃荡，技术还是没有提升，合约还看不明白。我决定转方向，一步一个脚印的研究技术。\r\n## 技术栈的确定\r\n我**前端**开始的技术栈是Vue+Js，之所以转React+Ts是因为绝大多数Dapp项目都是这个技术栈，Dapp是没有后端的，很多逻辑是前端完成的，有些自己琢磨不明白，这个时候开源Dapp的作用就来了，看源码然后直接copy是提高技术的有效方式，Vue也能搞，但是看React项目然后转换成Vue有点头疼，可能对我来说很头疼，既然会看了会copy会转Vue了，为啥不直接React，而且对于web3，React有很多库直接用，这一点，Vue没法比。推荐一个我朋友搞的[Vue版本Uniswap](https:\/\/github.com\/Sexy-J\/JieSwap),他搞这个的时候被恶心坏了，后来我们一起决定转的技术栈，现在技术栈基本和我一致。\r\n**合约**技术栈我目前还是坚持在搞EVM的项目，非EVM方向的我还没有开始研究，比如rust move等等，我想等EVM方方面面熟悉了我再去实践，主要是害怕自己变成热锅上的蚂蚁，无法静下心来。目前也没有实践链底层方向，还扎在Dapp层。\r\n## 学习前的准备\r\n1.你要学会科学上网，这是必备的技能，我下面分享的一些链接有很多需要科学上网才能打开。2.你要有会Google的能力，搜索能力将是你后面最重要的能力，中文无法搜索到你要的结果，要学会英文搜索。3. 要会使用github，各种大神的demo是我们学习的珍贵资料，一定要看要啃。4. [Metamask钱包](https:\/\/metamask.io\/)与Google浏览器要下载要学会用。5. 非必需，起一个自己喜欢的英文名作为各种社交号的昵称。\r\n## 学习路线 + 各种安利\r\n\r\n1.我看的一个启蒙视频，也是我强烈推荐技术开发必看的一个视频：[北京大学肖臻老师《区块链技术与应用》公开课](https:\/\/www.bilibili.com\/video\/BV1Vt411X7JF?spm_id_from=333.337.search-card.all.click&vd_source=18908b447695a21e7cea62bec22e53f1)，隔段时间我就会来复习一遍，我最初看的时候视频评论没多少，现在来看，有一种桃李满天下的感觉，老师的课程是无须质疑的，结尾他个人的感悟也是必看的，这个视频我推荐入门前看一遍，然后入门后一段时间再看，整个感悟完全不一样，说是启蒙必看一点也不夸张。\r\n\r\n2.看完了视频对于整个区块链技术有了基本的概念，这个时候我个人推荐先看合约，毕竟他是Dapp的核心,感受一下这个语言，学习solidity入门我推荐[WTFSolidity](https:\/\/github.com\/AmazingAng\/WTFSolidity)，[崔眠大师](https:\/\/www.youtube.com\/watch?v=XlJwBTIps_I&list=PLV16oVzL15MS-Zw8a3eEOADwbHhm8GrMp)，[理想区块链](https:\/\/www.youtube.com\/watch?v=VvnkBCTjt94&list=PLfdytmZZ4Yl3hTfeROY-ptgbdcXg9Pybl&index=70)，基本上这三个足够你入门了，配合你平常Google，入门是没什么问题的。\r\n\r\n3.这个时候假设你前端已经会了的，如果不会，建议还是学好我上面说的React+Ts技术栈。然后可以写一个简单demo来感受web3调用合约和web2调用api的不同（备注：在这一步之前，你要知道几个库，[web3-react](https:\/\/github.com\/Uniswap\/web3-react),[ethers](https:\/\/github.com\/ethers-io\/ethers.js)，[wagmi](https:\/\/wagmi.sh\/)（与web3-react相似，都是react与钱包和合约交互的库，封装了很多方便使用的hooks，这里我都有封装，开箱即用的那种，现阶段我推荐wagmi，相对于web3-react要配置方便，封装简单。附上两个模板的仓库地址：[Nextjs+web3-react](https:\/\/github.com\/Verin1005\/Nextjs-Web3react-Template)，[Nextjs+wagmi](https:\/\/github.com\/Verin1005\/Nextjs-Wagmi-Template)，好用的话希望给个star。）），Demo我推荐可以试试投票Dapp，众筹Dapp或者只是简单读数字写入数字功能都可以，完成整个Dapp的流程就是胜利！附上我自己的批量转账工具（前端和合约均开源）：[批量转账地址](https:\/\/github.com\/Verin1005\/MultiTransfer)，大概长这样：\r\n\r\n![image.png](https:\/\/p6-juejin.byteimg.com\/tos-cn-i-k3u1fbpfcp\/8b55b63e5deb4780883a6e2e21a4ad95~tplv-k3u1fbpfcp-watermark.image?)\r\n\r\n4.完成了基础入门版的Dapp，可以看看一些成熟大项目了，[Uniswap](https:\/\/app.uniswap.org\/#\/swap) ，[Pancakeswap](https:\/\/pancakeswap.finance\/)，[Sushiswap](https:\/\/app.sushi.com\/swap)是我推荐必看的，尤其前端代码，他们有很多utils可以直接使用，合约不用说了，[Uniswap的合约](https:\/\/github.com\/Uniswap\/v2-core)是经典，属于是必看的。对于其他的项目可以酌情看看，这三个我推荐前端要必须看的，我看的比较多的是[Suswap的前端代码](https:\/\/github.com\/sushiswap\/sushiswap-interface)，很多逻辑都是copy它的，熟悉了它的，做很多Dapp就会有很清晰的思路。\r\n\r\n5.看完了成熟大项目不要硬啃，看不懂是正常的，可以缓一缓。这个时候的状态是合约逻辑熟悉了很多，推荐做一些中等难度（没有明确分级定义，我个人理解的就是不是非常难的项目）的合约项目，比如质押挖矿，土狗ERC20（纯属了解概念作为技术学习），ido等等，推荐看看Sushi的[masterchef合约](https:\/\/github.com\/sushiswap\/sushiswap\/blob\/2ab74eb6e437e896e015a26f242d090a1d15430d\/scripts\/farms\/src\/lib\/chefs\/masterChefV2\/index.ts)，然后写一个质押挖矿项目（非必需，有其他感兴趣的都可以自己去尝试），这个项目搞完，会的各种技能就多了很多，接下来就是进阶和深入了。到了深入阶段，那基本上不需要小白科普了，我就不多说了，以后等我很强了，可以写一写深入的！\r\n\r\n6.以上是我自己的路线，技术栈我没有深入说，[我Github](https:\/\/github.com\/Verin1005)上有我说的技术栈的案例，大家可以自行去取用，这里有[郭宇的总结](https:\/\/guoyu.mirror.xyz\/RD-xkpoxasAU7x5MIJmiCX4gll3Cs0pAd5iM258S1Ek)：\r\n\r\n![image.png](https:\/\/p9-juejin.byteimg.com\/tos-cn-i-k3u1fbpfcp\/876544a040d746cbbca36f76691d9cbf~tplv-k3u1fbpfcp-watermark.image?)\r\n这里面提到的技术栈我绝大部分都实践过，建议大家都去自己实践一下。\r\n\r\n# 学习感悟分享\r\n1.我现在的学习状态是上班前1小时看行业信息，下班前半小时准备好回家要学习的东西（备注，目前我上班的公司在做web2的东西，我白天并没有时间去搞web3）。下班后学到11点半到12点半之间不等，可能大家觉得很卷，但是我是乐在其中的，我确实会很快乐，所以能坚持下来。我每天会坚持写web3代码，之前想过仿[Mycointool的工具](https:\/\/www.mycointool.com\/)，但是太多了，我只仿了批量转账，以后再仿其他的看看，目前在做一个缝合怪项目，以后完成了分享出来，其实就是给自己定目标，每天知道自己写什么代码。\r\n\r\n2.学习伙伴要交起来，比如我上面说的写Vue版本的swap那个人，我俩经常讨论web3技术，几乎每天都聊，这对我的进步是极大的，我微信也有很多同行，基本上属于是有问必答，毫无保留的分享，对于新人，大胆的问web3老人，基本上大家的分享精神都是很好的，没有什么顾虑，但是前提是自己也要进步，毕竟老人也希望新人带来有价值的信息。\r\n\r\n3.加群！加群！加群！一堆人一起讨论一起学习的氛围是非常重要的！！！推荐两个群，[WTF](https:\/\/github.com\/AmazingAng\/WTFSolidity)，这个我是从群里70多人看到现在的，一开始全是小白，几个月过去了，现在讨论已经是深入的东西了。[script.money](https:\/\/script.money\/),从脚哥的群我学到了非常多的东西，里面的老哥真的是能力又强又无保留的分享和解答。备注；这两个群加入需要条件，可以自行做任务加入。这里不得不吹一下web3的技术群，比如现在已经半夜了，脚哥的群还在解答！！！！\r\n\r\n![image.png](https:\/\/p9-juejin.byteimg.com\/tos-cn-i-k3u1fbpfcp\/79dfaa0eb3db4d83b518995be15ab414~tplv-k3u1fbpfcp-watermark.image?)\r\n\r\n而且持续几个月每天都会讨论很多技术，技术永远说不完的感觉，相对于web2技术群三天之后就是讨论国家大事，社会热点，各种吃瓜事件来说确实是一个纯粹的技术群，我加入的其他web3技术群，大都能够持续讨论技术。\r\n\r\n4.要学会给自己制造学习氛围和学习环境。我有爱学习的同事，我很多事情都向他学习。我把自己的油管，b站，推特，微博全部关注web3相关的up主了，其余的一概不关注，让自己每天沉浸到这样一个氛围中。\r\n\r\n5.最好持续提高自己的英语技能，这个玩意儿用来吃饭可能不行，但是用来辅助你的主技能，那可就很行了。\r\n\r\n# 最后总结\r\n我是决定后半生all in web3了，哪怕是最终可能web3不行了我也要一路走到底，因为我确实在web2行业无法获得快乐，获得不了成就感，我的的确确在web3获得了不少的成就感以及一点点“意外之财”。这里大家可以保持谨慎，不一定要all in，每个人的感受不一样。我已经开始给我的大美女老婆安利我们这个行业了，期待回家能够有人一起探讨。最后，希望这篇文章对于想入行web3的开发者有一些感悟，帮助你们减少走一些弯路，愿大家以后在web3的路上一起进步一起赚钱！最后备注：我不强，只适合入门分享，更多更强的人需要大家自我寻找，到时候链接记得分享给我呀！"},"author":{"user":"https:\/\/learnblockchain.cn\/people\/4922","address":null},"history":null,"timestamp":1662016852,"version":1}