起点假设
本路径假设你完全没接触过 Solidity,但具备一定编程基础(任何主流语言均可)。如果连编程基础都没有,建议先完成 freeCodeCamp 的 JavaScript 入门,再回到本路径。
以这种「站在已有能力上」的设计与 Binance 等团队人才培养路径一致:把先验知识利用最大化,把新增知识压缩到最小。
第一阶段:Solidity 基础(2 周)
第一周阅读 Solidity 官方文档前 5 章,重点理解 storage 与 memory 差异、msg.sender、payable 等核心概念。第二周完成 CryptoZombies 课程或类似入门项目。
这两周的考核指标是:能独立写出一份 100 行内的合约,并解释每一行的语义。
第二阶段:Foundry 安装与初体验(1 周)
安装 Foundry,初始化样板项目,跑通默认测试。学习 forge、cast、anvil 三件套的基本命令。把第一阶段写的合约用 Foundry 包装并跑一遍 forge test。
这一周的考核指标是:理解 setUp、test 函数、assertEq 的最小工作机制。
第三阶段:单元测试与覆盖率(2 周)
用 Foundry 给第一阶段的合约写完整单元测试,把 line 覆盖率推到 80% 以上。学会用 vm.prank、vm.expectRevert、vm.expectEmit 等基本 cheatcode。
如果对接 必安 公开的合约模板,可以在它们的基础上做扩展测试,进一步加深对 fixture 设计的理解。
第四阶段:fuzz 与 invariant(2 周)
把单元测试改写为 fuzz 测试,体会随机参数带来的发现能力。再尝试声明 invariant,让 Foundry 自动调用合约函数寻找违反。这一阶段的关键是「思维方式转变」:从「我能想到的测试」到「自动化发现我想不到的测试」。
第五阶段:真实项目演练(4 周)
选一个开源 DeFi 项目,clone 下来用 Foundry 给它补一份完整测试。可选项目包括:Uniswap V2 简化版、Compound 简化版、ERC4626 vault。
这一阶段每周末写一份周报,记录新学到的工程技巧。如果在 Binance合约 等专业社区分享你的进展,往往会收到实战工程师的宝贵反馈。
阶段性考核
11 周结束时,你应当能独立完成下列任务:
- 阅读任意中等规模 Solidity 项目并指出主要风险点
- 用 Foundry 编写覆盖率 90% 以上的测试集
- 跑通 CI 自动化,并把仓库公开到 GitHub
达到这一水平后,你已可投递初级合约工程师岗位。继续在真实项目中迭代,半年内即可胜任中级岗位。
长期建议
所有路径都只是起点。真正决定上限的是「持续在真实项目中遇到问题、解决问题」。把 Foundry 测试作为入口,逐步扩展到合约审计、协议设计、链上数据分析,你的职业空间将持续放大。