Uploaded avatar of iHiD

轨道解剖项目

@iHiD
7年多前

去年九月,我们悄悄地启动了 Exercism 的轨道解剖项目。从那以后,我们把这件事告诉了越来越多的人,现在我们认为,是时候公开介绍这项工作了:我们正在正式改进 Exercism 上的轨道和练习。

要理解轨道解剖项目的目的和必要性,就得回顾 Exercism 的起点。Exercism 最初由一系列语言轨道组成,每条轨道都有一组内容彼此重叠的练习。当时并没有什么顺序或结构可言,任何人都可以挑选自己觉得有意思的练习,解出来,上传代码,然后盼着有人看到并留下评论。我们 2018 年重新发布时,核心工作就是让 Exercism 重新围绕一套更有条理的方式来组织轨道本身以及伴随它们的学习过程。我们决定把语言轨道改造成由必做的“核心练习”构成的固定主线,完成核心练习后解锁可选的“拓展练习”。我们请维护者安排核心主线的结构,让难度逐步上升,并设计出与所练习技巧相关的解锁顺序。不同的维护者采取了不同的做法,效果参差不齐。有些人确实抽不出时间,这种情况下,我们只好随便挑了 10 道练习,组成最初的核心。

很快就显而易见:轨道的设计对这条轨道能否成功有着巨大的影响。上线后的头几个月里,我们得出了一系列重要的观察结论:

  • 如果一条语言轨道以一道过难的练习开篇,会让人受挫,导致参与人数迅速流失。
  • 指导一道练习有多难,与这道练习的复杂度直接相关,而与练习的难度无关。
  • 只有一种典型解法的练习(例如“acronym”),或者学习目标明确的练习,指导起来比那些解法多样的练习(例如“bob”)快得多。
  • 概念的引入顺序很重要:在前几道练习里覆盖关键惯用法,能让之后的练习对学习者和导师都更轻松。

基于这些认识,我们意识到,Exercism 上指导工作能否成功,很大程度上取决于轨道“课程体系”的质量,也就是在合适的练习里明确覆盖正确的话题,并且按合适的顺序排列。我们决定开发一套正式的框架,用作维护者的指南,并打造一条可以作为其他轨道黄金标准的轨道。

就在这一切发生的同时,我们的一位导师 Maud de Vries 已经在定期发帖,提出改进 Ruby 轨道的建议。她做专业教练已有 20 年,她的想法与我们当时得到的认识惊人地一致。Maud 在幕后默默地逐一分析每一道 Ruby 练习,梳理出练习之间如何相互关联、它们包含哪些概念,以及如何更好地安排它们,从而形成一套对学习者结构清晰、对导师也有趣好玩的轨道结构。当她向我们展示部分成果时,我们认定她正是开发轨道框架的合适人选,也认定她可以接手 Ruby 轨道,把它打造成我们的样板。从那以后,Maud 一直在 Exercism 兼职,重新设计 Ruby 轨道,并开发一套分阶段的框架,供维护者照着走一遍,就能快速复制她的经验,应用到其他语言上。从十月开始,Erik Schierboom 利用业余时间充当 Maud 的“小白鼠”,一边测试、一边用这套框架改进 C# 轨道,这反过来又对框架本身的发展产生了巨大影响。

现在,我们即将进入下一个阶段:带领下一批维护者走完这套框架,并对它进行更严格的测试和打磨。等这一轮完成后,我们希望发布框架的第一个版本,让更广泛的社区对它进行更多审视。我们非常期待那一天的到来,也期待展示所有在幕后进行的工作。我们觉得,这是 Exercism 向前迈出的一大步,会显著改善学习体验和导师的体验。

最后,我要向 Maud 表示由衷的感谢,她不知疲倦地带头推进这个项目;也感谢 Erik,他牺牲了大量业余时间来帮忙。

2019年02月03日 · 觉得有用吗?