从不顺手到自己做:背单词软件设计笔记
本页目录
2014 年,我因为词汇量不足,想认真背一段时间的单词。单词书太大太重,于是开始试用手机应用。试了一圈之后,总觉得每个产品都有不顺手的地方,于是冒出了自己做一个的念头。
原先我分两篇写了“为什么想做”和“打算怎么做”。这次把它们合在一起,留下需求推导和方案取舍;当时的价格、平台计划与产品评价不再作为今天的选型依据。
不满意的究竟是什么
有些产品的词根提示很合我的胃口:它给陌生单词一个可以联系已知内容的入口。但这个功能是否好用,还取决于词根数据本身,而不只是有没有一个按钮。
选择题让我产生了另一种疑问:我经常用排除法做对,却不确定离开选项还能不能想起来。这并不是说选择题没有价值,而是识别答案与独立回忆并非同一种任务,不能把正确率直接当成“已经掌握”。
图片记忆也有类似取舍。形象的提示容易留下印象,但对于多义词,如果长期只呈现一种含义,练习覆盖就可能过窄。我希望内容能支持不同义项与语境,而不只是反复记住同一张图。
这些不满最后归结成三件事:交互、记忆算法和数据源。不是把所有功能都塞进去,而是把这三件事组合成自己愿意持续使用的流程。
交互:从具体动作开始想
原稿有一个很具体的使用设想:我想在运动的间隙或跑步机旁背单词。按钮太小、字体不能调、横竖屏受限,以及每一步都要精确点击,都让我觉得别扭。这个场景给出的设计约束是:短时间、单手、低精度操作。
手势看起来能替代按钮,但不一定更可靠;倒计时自动切换省了点击,却又给我带来催促感。反而是加大点击区域、减少操作步骤,显得朴素而直接。
我当时想到“易如反掌”:把屏幕转过去,再转回来,就像翻一张识记卡。配合较大的按钮,并允许切换左右手习惯,或许可以减少精确触碰的需要。
这是一个需要原型验证的设想,不能直接写成“几乎不占注意力”的结论。自然的手腕动作是否会被误判?拿起、放下手机会不会意外翻面?用户是否知道刚才的动作被识别了?这些问题决定它是否真的比点击更好用。
因此,基础流程应先做到:显示词汇,允许主动回忆,按需显示提示或答案,最后提交反馈。动作识别可以作为可关闭的辅助输入,而不是唯一操作方式。
算法:把不规律使用当作真实条件
我希望每天的新词量能够随时间调整,中途停几天之后还能继续,每个词有独立的学习记录,而不是只用全局的“第几天”安排所有内容。
原稿把固定遗忘曲线与 SuperMemo 简单对立,又认为中断一天就会破坏整个调度,这些说法都过于粗糙。更有用的问题是:算法掌握哪些信息,怎样使用实际复习时间与回答反馈,以及怎样给用户一个可执行的当天计划。
当时选择 SM-2 作为研究起点,是因为它相对容易理解和实现,并不意味着它已经证明最适合这个产品。具体公式与校订说明见 SuperMemo 与 Anki 笔记。
数据:能读出来,还要能维护
原稿觉得数据源是最简单的一部分:开放词典格式、SQLite 数据库都容易读取。但存储格式只是入口,不等于数据天然准确、可自由合并或可以重新发布。实际要先确认来源与使用范围,再处理字段与内容质量。
我希望词汇、音标、词根、例句、发音、同义和反义关系能够一起使用。迁移时把这组需求细化为以下结构,便于看出它们各自负责什么:
| 数据 | 要解决的问题 |
|---|---|
| 词条与词形 | 用稳定标识关联大小写、变形和同形词 |
| 义项与例句 | 区分一词多义,让例句对应明确含义 |
| 音标、音频与词根 | 记录出处、版本与适用范围,允许纠错 |
| 练习卡片 | 明确方向和任务,例如看词回忆意思、听音辨词 |
| 学习事件 | 保存实际时间、提示使用情况与回答反馈 |
| 调度状态 | 保存下次到期时间与算法参数,可由历史记录重新计算 |
内容数据与用户的学习状态分开,才能在更新词典时避免覆盖学习进度。也不要只保留一个最终熟悉度数字,否则之后很难比较算法或解释一次调度为何发生。
先做一个能够验证的版本
最初的冲动是“因为不顺手,所以自己做”。往下走一步,应该是先选少量质量可靠的词条,实现最基本的回忆、提示、答案和反馈流程,再观察自己能否持续使用。
按钮变大是否减少误操作,提示是否改善之后的回忆,计划是否适应中断,都是可以逐项检查的问题。至于更多平台和更多内容,应该在这个流程确实有用之后再考虑。原来的两篇文章是一份设计草案,不是已经完成的产品报告。
相关文章
- SuperMemo 与 Anki:间隔重复算法笔记2014-06-04
- 学习的悖论:用指标观察进步,而不是代替目标2026-11-06
- 【AI Talk】19 公司与产品的活人感2026-08-01
- 【AI Talk】13 置身 AI 内2026-06-06