Exercism 是一个用练习题加真人代码评审来学编程的网站。你在本地写好代码、跑通测试,再把方案提交上去,由志愿者逐行看你的写法、指出更地道的表达。它的核心动作只有三个:下载题目、写代码、接受点评。
这决定了它的定位。它不卖课,也不做刷题排行榜,更像一套带人批改的练习册。适合已经能读懂语法、想把某种语言写得更顺的人,不适合从零开始学变量和循环的人。
Exercism 是什么,和普通刷题站有什么不同
按 Exercism 官网 2026 年 11 月 1 日的数据,平台收录 85 条语言轨道、8763 道练习,累计学生 312.8 万,提交次数 7268 万,评审讨论 41.6 万条。运营方是英国注册的非营利公司,公司编号 11733062,受托人包括 Katrina Owen、Jeremy Walker 与 Erik Schierboom。
和算法题库的区别在流程。算法站给你一道题、一个在线判题器,通过就结束;Exercism 把测试文件一起交给你,你本地跑测试,通过之后还能提交给真人看。一位在 Exercism 做评审的开发者写过,学生先把题目下载到本地、用自己的编辑器做,做完再上传等待志愿者反馈,这个过程是平台的设计重心。
另一个区别是题目形态。多数练习是共享的规格描述,只说明要做什么,不绑定某门语言的实现细节。真正的验收标准写在测试文件里,你得读测试才知道边界条件、异常怎么处理、输出要不要排序。

85 条语言轨道:概念练习和练习题是两回事
进入某条语言轨道后,练习分两类。概念练习(concept exercise)配一篇讲解文档,覆盖某个语言特性,比如字符串处理、错误处理、并发原语的用法。练习题(practice exercise)只给需求和测试,不讲课,用来把已学的东西磨熟练。
轨道冷热差异很大。首页列出的在学人数里,Python 约 84.3 万、JavaScript 约 49.5 万、Java 约 28.4 万、C++ 约 20.4 万;冷门轨道可能只有几千人,维护者也不多。选择时除了看语言,还要看这条轨道最近有没有更新。
| 语言轨道 | 在学人数(官网首页,2026-11-01) | 适合谁 |
|---|---|---|
| Python | 843,432 | 初次接触该平台,想快速跑通流程 |
| JavaScript | 495,398 | 做前端,想补语言细节与测试习惯 |
| Java | 283,854 | 在校或工作中用 Java,想写得规范 |
| C++ | 204,266 | 有基础,想练现代写法与边界处理 |
每条轨道的规模不一样。以文档里举过的 Crystal 为例,133 道练习被拆成 26 个概念,配 90 位评审;换到小语种轨道,这个数字会小得多。数字只能作参考,真正要看的是一道题做完能不能拿到有信息量的反馈。
如果你缺的是路线图而不是练习题,可以配合站内的roadmap.sh 路线图用法一起用:先看路线图确定学什么,再来 Exercism 把对应语言练到能写。算法部分则更适合看Hello 算法这类有图解的教材,Exercism 不承担算法课的角色。
本地流程:装 CLI、下载题目、跑测试、提交
Exercism 以命令行为主线。官方文档给出的路径是四步,Windows、macOS、Linux 都有对应的 CLI 安装方式,装完还要绑定账号。
- 安装 CLI。官方推荐先走一遍交互式演练页面,按提示选择系统与安装包,比照着博客文章手动装更稳。
- 绑定账号。在设置页复制 API token,然后执行 exercism configure --token=<你的 token>,这一步决定后续下载的文件归属到哪个账号。
- 下载题目。执行 exercism download --exercise=<题目 slug> --track=<语言 slug>。题目页面上会直接显示这条命令,不必自己拼。
- 写代码、跑测试、提交。测试全绿后执行 exercism submit <实现文件路径>,命令会打印出这次提交的网页地址。
下载下来的目录结构是固定的。README.md 写需求,HELP.md 写怎么跑测试和怎么求助,HINTS.md 可选,其余是测试文件与待填的桩文件。读懂 HELP.md 能省掉大量摸索,各条轨道的测试命令并不统一,有的用 cargo test,有的用 go test,也有直接跑单个测试脚本的。
本地练习通常只让首条测试生效,后面的被标记为跳过。这不是 bug,而是刻意安排的节奏:先看它失败,写刚好能过的代码,再取消下一条的跳过标记。官方 TDD 文档把这套循环写成六个步骤,并强调一点,取消跳过标记的写法因轨道而异,有的改注解,有的改布尔属性,得读该轨道文档。
不想装环境时,网页编辑器也覆盖全部 85 门语言。代价是测试只能读不能改,而且报错时先显示其中一条失败,其余要点开才看得到。想快速判断一门语言合不合手,这是成本较低的试法。命令行工具本身开源在 exercism/exercism 仓库,遇到装不上的情况可以用 exercism troubleshoot 收集信息后提 issue。
真人评审:提交之后会发生什么
提交会进入评审队列,由该轨道的志愿者认领。平台现有约 1.96 万名评审、5508 名代码贡献者,正式员工只有 3 人,其余靠社区与捐款维持,所以等待时间取决于轨道热度与题目难度,没有固定承诺。
- 评审关注的是写法,不是对错。通过测试只是入场券,讨论集中在命名、抽象层次、该语言的习惯用法。
- 可以提交未完成的方案。文档明确写了,提交不完整的解答也能用来求助,或先看别人的解法。
- 评审是多轮的。一轮反馈后你可以改、再提交,往返几次直到双方都觉得可以停下。
- 不强制。想自己练完就走也成立,评审是可选环节,不是通关条件。
自动化分析是另一层。平台会先对提交做静态检查,给出可改进点,再进入人工队列。这意味着简单问题往往在自动反馈阶段就解决了,人工评审更多处理“为什么这样写更符合这门语言”的判断。
一个容易被忽略的用法是反向评审。做完几道题之后申请成为评审,看别人的解法,会逼着自己把模糊的直觉说清楚。多位长期评审提到,教别人的过程里学到的往往比当学生时更多。
适用人群、上手顺序与常见坑
适合的人群有三类:换语言的工程师,想快速摸清某门语言的习惯写法;在校学生,课程讲了语法但没人批改作业;自学者,需要外部反馈来判断自己写得到不到位。
不太适合两类情况。一是完全零基础,官方把入门内容放在单独的 Jiki 平台,Exercism 本体默认你会用命令行、会装环境。二是想靠刷题应对算法面试,这里的题目偏语言练习,不覆盖高频面试题型。
上手顺序可以这样排:
- 先在网页编辑器做两三道概念练习,确认这门语言的题目质量符合预期。
- 装 CLI,绑定 token,完整走一遍下载、测试、提交,把工具链跑顺。
- 按轨道顺序刷概念练习,把语言特性过一遍;练习题穿插着做,用来巩固。
- 挑两三道做过的题提交评审,重点看反馈里提到的语言习惯,而不是只改到测试通过。
- 需要补 Web 基础时,配合MDN Web Docs 的学习路径看概念,再回来用练习验证。
几个实际会踩的坑。测试在本地通过、提交后却失败,多半是环境版本或依赖差异,文档里有专门的排查页。CLI 升级后版本号没变,通常是 PATH 里还指着旧的可执行文件,用 which exercism 确认实际路径。小语种轨道长期缺维护者,测试跑不起来时要先看该轨道论坛有没有已知问题。
常见问题
要花钱吗?平台不收学费,运营靠捐款与社区志愿,官网写明对学习者不收费。是否长期如此取决于非营利组织的筹款情况,介意这一点可以关注其年度报告。
需要英文很好吗?题目文档与评审讨论以英文为主,界面提供简体中文翻译。读测试代码本身对英文要求不高,但看懂评审意见需要一定阅读能力。
能替代系统课程吗?不能。它提供的是练习与反馈,知识结构要靠课程、文档或教材搭。把它当成“有人批改的作业本”,和课程搭配使用效果更清楚。
最后给一个判断标准:如果你做完一道题,除了“测试过了”还能说出自己改了哪几处写法,这套流程就适合你;如果每次只是把测试跑绿就关掉页面,它的价值会大打折扣。
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




