概念练习的目标是教给学员在某一门语言中工作所需的关键技能。它们既涵盖如何用该语言完成常见任务(比如如何操作字符串),也涵盖如何处理更贴近该语言的内容(比如单子、面向对象、高阶函数)。
概念练习具有以下特点:
练习的解锁取决于所教和所学的概念。 每个概念练习必须教授一个或多个概念。 它也可能对概念有前置要求,也就是说,只有当教授这些前置概念的概念练习完成后,它才会解锁。
随着学习路径的推进,概念练习本身不应该变得越来越难。 一位熟练的 X 语言开发者应该能在每个练习上花不超过 5-10 分钟,完成该学习路径上的所有概念练习。 由于每个练习的重点都是让学员第一次使用某个概念,而熟练的开发者已经在 X 语言中理解了这个概念,所以练习对他们来说应该相当简单。 对于不熟悉 X 语言的开发者来说,后面的练习可能会感觉更难,但这只是因为后面的练习所教的概念本身就更复杂(例如,大多数人都会同意,第一次学习递归,比把循环从一门语言迁移到另一门语言更复杂)。
概念练习不提供导师指导。 当学员提交的解答在概念练习中通过测试时,我们会查找是否有 Analyzer 或 Representer 可以提供反馈。 如果都没有,该解答就会通过。 这就把教学的重担转移到了练习本身,练习必须为所教的概念提供一条清晰的学习途径。