Exercism(exercism.org)是一个免费的编程练习与导师辅导(mentoring)平台:按编程语言组织成 track,学习者通过解答一道道带测试套件的小型练习来提升熟练度,提交后先由平台的自动化分析给出快速反馈,遇到瓶颈还可以免费申请真人导师逐题点评。官网自述其覆盖 83 门编程语言、8,618 道练习(截至 2026-09-03),平台 100% 免费、无广告,由英国注册的非营利组织运营,代码全部开源。与 freeCodeCamp 等课程体系平台不同,Exercism 不提供课程和证书,核心价值在于"做题—自动反馈—人工导师反馈"的练习闭环,收录于此供需要专项语言练习的读者参考。

站点速览

  • 网址:https://exercism.org/
  • 类型:编程练习与导师辅导平台
  • 费用:100% 免费,无广告,靠捐赠运营;无任何付费档位
  • 注册要求:练习必须注册账号,支持 GitHub 授权或邮箱注册;浏览首页与文档无需注册
  • 界面语言:仅英文
  • 内容规模:83 个语言 track、8,618 道练习(截至 2026-09-03);官方 Impact 页显示累计约 299 万学生、近 7,000 万次练习提交、41 万余次导师辅导讨论

站点背景

Exercism 由软件开发者 Katrina Owen 创建。她在 Jumpstart Labs 教编程时,为解决自己学生做练习得不到反馈的问题写了这个工具,2013 年将其公开上线;上线 12 个月内自然增长到 6,000 多名用户提交代码或反馈,并有数百名志愿者参与建设语言与工具(Wikipedia 条目及其引用的 Wired 报道;Exercism CLI 仓库创建于 2013 年 8 月,可佐证这一时间线)。2016 年 Jeremy Walker 加入任联合创始人,现任 CEO(官方 FAQ)。2018 年 7 月网站改版,正式以导师辅导模式为中心;2021 年的 v3 改版加入浏览器内编辑器,改变了早期只能用命令行解题的形态。

在组织形态上,Exercism 自述为"在英国注册的非营利组织"。英国公司注册处(Companies House)记录显示,EXERCISM 于 2018 年 12 月注册为无股本担保有限公司(公司编号 11733062),这是英国非营利机构的常见法律形态;它并不是注册慈善机构。运营资金来自社区捐赠(信用卡、PayPal、GitHub Sponsors)、企业配捐与基金会,官方称只有约 1% 的用户会捐款,而整个平台的累计建设成本不足 50 万美元。团队规模很小:官方团队页列出两位联合创始人和两名全职员工,外围是约一百名 maintainer 与核心贡献者,以及遍布 231 个国家和地区的 6,000 多名贡献者。

语言 Track 与练习机制

练习按语言 track 组织,从 8th 到 Zig 共 83 门语言,热门 track 的学生数相当可观——Python 约 79 万、JavaScript 约 49 万、Java 约 27 万(首页数据,截至 2026-09-03)。加入 track 后有两种进度模式(官方 FAQ):默认的 Learning Mode 按概念顺序用教学练习逐步解锁后续题目;切到 Practice Mode 则可解锁全部练习自由选题。

每道题给出桩代码和一套完整测试,学习者写出能通过全部测试的实现,形式上接近测试驱动开发。题目被官方定位为"小、看似琐碎、实则细节见真章"(FAQ),例如根据过敏评分计算过敏原列表、判断棋盘上两个皇后是否互相攻击等。

解题有两种方式(官方文档):

  • 浏览器内编辑器:无需安装任何环境,83 门语言全部支持在网页里写代码、跑测试,适合新 track 起步或快速试用一门语言;
  • 命令行 CLI:Exercism 自述"本质上是 CLI 优先的工具"。用 exercism download 把题目(含 README、测试与桩文件)拉到本地,在自己的编辑器里解题、本地跑测试,再 exercism submit 提交,适合想要完整调试与个性化环境的练习者。

提交不完整解答也是允许的,这样可以先查看他人的社区解法,或直接向导师求助(CLI 文档)。

自动化分析与导师辅导

提交之后平台会做两层反馈。第一层是自动化分析:系统对解答运行静态分析,快速指出可改进点。第二层是真人导师:练习卡住时可以发起 mentoring 请求,导师会在网页对话中与你逐轮讨论代码(入门文档)。导师全部是志愿者,辅导不收费;成为导师同样向所有用户开放,平台以 reputation 作为激励(mentoring 页面)。

导师辅导是 Exercism 区别于多数刷题站的核心机制,规模也不小:Impact 页显示累计已有 41 万余次辅导讨论、8.5 万多名学生给导师写下感谢评价(截至 2026-09-03)。但要对其响应速度有现实预期:官方 FAQ 坦言,等待时间受导师数量和时节影响可能偏长,队列看起来一段时间不动并不罕见。不同 track 的导师多寡不一,热门语言通常更快。

开源与社区

Exercism 的全部代码托管在 GitHub exercism 组织(287 个仓库,团队页数据):

  • 网站本体 exercism/website 采用 AGPL-3.0,但 README 明确声明这是"内部仓库"——源码公开,却不接受 Pull Request,也不支持本地运行,复用需自行评估;
  • 命令行 exercism/cli(Go)采用 MIT,2013 年创建至今仍在活跃维护;
  • 各语言 track 与跨 track 的练习题目规范(problem-specifications)同样以 MIT 开放,练习内容可以被自由 reuse。

社区参与的主要入口是做语言 track 的 maintainer、贡献练习,以及注册成为导师;新语言 track 由社区成员牵头创建(FAQ)。

适用场景

  • 已有一定基础,想通过成体系的小练习把某门语言写"地道",尤其是借助导师反馈纠正思维惯性的学习者。
  • 想零安装快速试一门新语言(浏览器编辑器),或在本地真实工具链中做练习(CLI)的开发者。
  • 希望以辅导他人来反哺自身学习、积累开源社区声誉的进阶开发者。

局限

  • 必须注册:不做题可以浏览,但练习、提交与导师功能都需要账号。
  • 导师响应时间不稳定:导师是志愿者,等待时长随 track 热门程度和时节波动,官方 FAQ 对此有明确说明;急需即时反馈时不应依赖 mentoring。
  • 题目偏小型练习:平台刻意聚焦小题训练而非项目实战,不提供课程体系、项目作业或证书;需要完整课程路径的初学者更适合 freeCodeCamp 一类平台。
  • 界面仅英文:练习题目与导师交流也以英文为主。
  • 核心代码仓库不接受外部 PR:网站仓库源码公开但定位为内部仓库,想贡献代码只能走 track、练习与工具链。

同类参考

  • freeCodeCamp(本站已收录):同为免费、捐赠驱动的非营利学习平台,但路线截然不同——freeCodeCamp 提供按项目推进的完整课程体系并可获得免费认证证书(每证约 300 小时,官方 About),适合从零系统入门;Exercism 则聚焦单语言的小题练习与人工导师反馈,适合有基础者打磨具体语言。
  • Codewars:同为练习型平台,以 kata(段位升级)模式组织算法与语言小题,可作对照参考。

参考资料