后续练习


实现完第一个概念练习后,接下来的几个练习应该在此基础上展开。

我们希望有 3 到 5 个练习,它们除了basics概念之外没有其他前置要求。

不错的选择是你这门语言的核心原始类型或数据类型。 例如布尔值、基本数字类型、字符串和原子。

值得去看看其他学习路径的概念练习,了解有没有适合你的学习路径的。

注意,引入一个概念并不意味着你必须把它完整详尽地讲清楚。 你总可以推迟复杂内容。 这门语言可能有十几种不同的数字类型,分别适用于不同场景。 练习可以只提一下还有其他类型,同时只介绍最常用的整数类型和最常用的浮点数类型。

有些核心数据类型太复杂,无法直接引入。 例如,字符串可能是字符数组。 这种情况下,你需要推迟引入字符串,并为字符设计一个概念练习,再为数组设计另一个。 然后你可以添加一个关于字符串的练习,并让它以这两个练习作为前置练习。

有时在处理一个练习时,你会发现它比你预想的更复杂。 这完全没问题。 把需要作为前置概念教授的概念记下来。 然后假设这样的练习已经存在,并带着这种简化继续完成你正在做的练习。 之后再回头为这个前置概念创建一个新练习。 记得在添加前置练习之前,把这个练习标记为wip。

此时还可能发生的另一件事是,你发现有循环依赖。 你需要引入两个概念,但每个概念都依赖另一个。 这种情况下,你或许可以使用一个占位实现。 然后你可以说明那个被依赖的概念确实存在,但让他们放心,他们暂时不需要理解它。 另一种选择是给出最低限度的介绍,足以让学生越过这道障碍,同时让他们放心,这个概念之后会更深入地讲解。

已放弃的练习

如果你因为某个练习不适合你的学习路径而选择不实现它(例如,为高层级学习路径准备的低层级练习),请将它标记为 foregone。 为此,请把该练习的 slug 添加到你的学习路径的 config.json 文件中的exercises.foregone数组里。

除了明确表明你不实现某个练习的选择之外,任何工具(例如 configlet)也会忽略已放弃的练习。

更多信息请见 文档。