本人作为零基础的小白,一路摸爬滚打学完 Solidity,为了让后面学习的小伙伴不重蹈覆辙,这篇笔记就帮零基础的小白避坑,尽可能让大家有效学习,而不陷入寻找&学习教程的坑里。
有一点写在前面:永远不要怀疑自己,自我 PUA,如果静下心来学,还是理解不了,那么说不定根本不是自己的问题,而是教程真的不适合你,赶紧醒醒,出去玩一玩,别钻牛角尖了,回来换个教程吧。
那么我们切入正题。
所有一切的开始,先去注册一个 Github(https://github.com/) 的账号,这个一定会用到。
作为纯新手,我建议可以先看 Patrick Collins 的 32 小时的视频
⭐️ 敲重点,一定要跟着一起做,如果条件允许的话可以用两台机子,一台 pad 放课程视频,电脑打开 remix 的页面跟着动手操作:
Patrick Collins 的原视频是英文版的,不定期会有更新,Youtube 视频🔗:https://youtu.be/umepbfKp5rI?si=Peeswp8r858mtAaO
Patrick Collins 是 Chainlink 预言机的开发者大使,B 站上有 Chainlink 预言机的中文账号,有带字幕的中文翻译:https://www.bilibili.com/video/BV1Ca411n7ta?p=1&vd_source=1170981814c77619b2589fe5be8d3bbe
这个有字幕翻译版的可能版本比较老了,我是对比 Youtube 上的视频看的,但大部分内容还是差不多的,如果英语不好的小伙伴直接看 B 站翻译版的就行;
32 小时的视频前面有一段时间是在讲区块链的基础知识和实现原理,如果你已经熟悉了,那么完全可以跳过;如果此前从未接触过 web3/区块链的相关知识,那这些一定要啃完;
整个32小时的视频,其实看前八个小时左右的用 remix 实现的就足够了,在安装 foundry(一个Solidity智能合约开发工具链) 之前的部分,后面到了 foundry 部分我个人认为可以省略;
如果你看完了这八个小时左右的视频,那么恭喜你,可以说你已经学完了 Solidity,可以开始看项目代码了。
如果你觉得单看视频还是理解比较片面,那么以下资料也可以根据自己的情况配套食用,效果更佳:
Solidity 的官方文档,里面有一些 Solidity 的基础语法、合约案例,最新 Solidity 文档🔗:https://docs.soliditylang.org/zh/latest/#
另一位 Youtuber - @smartcontractprogrammer 关于 Solidity 0.8 版本的讲解,也有一些案例(英文)
「这个的讲解和 Patrick Collins 的不太一样,可以辅助着来」
如果没办法接受@smartcontractprogrammer 关于 Solidity 0.8 版本的英文讲解,那么 WTF Academy 的中文版的文字资料可以带着看看,WTF 的教材讲解方式和@smartcontractprogrammer 很类似,WTF 的教程在最后会有几道题的测验,看 WTF 这个教程的时候要注意:
纯零基础的小白千万不要一开始就学这个教程!千万不要一开始学这个教程!千万不要一开始学这个教程!重要的事情说三遍。
经过本人的亲自体验,这个教程更适合:起码有代码基础或经验、懂区块链基础知识的“小白” ,而非真正意义上的“小白”,不友好具体体现在:
因为是中文版,有些术语是翻译来的,不好理解,容易给小白造成第一印象的误导;
WTF 在每小节最后有一些测试题,可以根据个人兴趣去做,但千万别钻牛角尖:
WTF 测试题提交后不会给你正确答案,且返回页面显示的也是最高分,所以如果你想要拿到100分,需要不断的自己测,非常耗时,好听点叫做带有很强的中式学习思维,难听点就是八股考试(ciao,又回到了被应试教育支配的恐惧);
这个教程容易让小白自我 PUA(可以理解站在课程设置人员角度是为了让你全面探索,但很多内容实际操作里不会应用到), 本人曾面对某章节的题目和答案苦苦皱眉,深陷试不出答案的自我怀疑中,后拉了几个做安全审计的开发老师一起给我做题,开发们普通反应:快逃,赶紧换个教程;
获得答案的成本较高:前期主要是 Discord,讨论氛围一般(毕竟很多华人还是用不太惯DC),只有答对所有题目通关后才能被拉入 QQ 群,获得答案的成本较高,尤其体现在等待别人解答的时间上,另外问的问题也可能无人解答,要是卡在一个地方不知道何时才能解决;
优先:Patrick Collins 教程的前8小时(安装foundry前的内容)
配套:Solidity 文档 + @smartcontractprogrammer 关于 Solidity 0.8 版本的英文讲解 + WTF 的图文资料
资料推荐优先度:英文>中文