排行榜 + 宠物养成:怎么让孩子主动想写代码
贴纸试过,屏幕时间当筹码试过,"父女一起写代码"的亲子时光也试过, 都没撑过第二周。后来给 App 加了排行榜和一只电子宠物,7 岁女儿 开始在早餐前自己要求写代码——6 个月、200 多个孩子的真实数据复盘。
如果你读到这里,你大概已经过了最难的一关:让孩子愿意 尝试 编程。真正难的是 保住 那点火苗——撑过第 2 周 的新鲜感、撑过第一次 syntax error、撑过"我今天不想写"的那句话。
小小程序员(BabyCode) 是我 为自己孩子做的项目,过去 6 个月里我同时跟踪了她和另外 200 多个 孩子的使用行为。这篇文章是我希望一开始就能读到的那个版本。
哪些方法没撑过去
我花了三个月试错。简版列一下,省你时间。
1. 贴纸墙
贴纸买了恐龙形状的。规则是:完成一关贴一张。撑了两周,孩子问 "能不能不写关,直接拿贴纸?"——贴纸是被卖的那个东西, 不是奖励。贴纸法对本来就愿意做的事有效(刷牙、上厕所),但 编程是要我们去"推销"的事,贴纸当奖励没动力。
2. 屏幕时间换编程
"完成 3 关换 30 分钟 Minecraft。" 协议达成,执行稀烂。Minecraft 一开,孩子就飞速刷关——跳过讲解、抄答案、不留痕迹。我们最终 奖励到了完成,没奖励到学会。
3. 编程当亲子时光
最舍不得放弃的就是这个。我是真的喜欢和她一起写。但我注意 到一个模式:只要我坐在旁边说"哎要不要试试这样……",她就不再 独立解题了。她会等我的提示。亲子是真的,学习没了。我只能 退后一步。
真正起作用的 3 件事
踩完所有坑之后,我把 BabyCode 重做了一遍,核心就 3 个功能。 都不是原创,全部是从"已经知道怎么让 7 岁孩子不停点"的 游戏里搬来的。我只是把目标从"金币"换成了"代码"。
1. 个人排行榜(不是全球榜)
这是最大的单点改动。我加了一个 个人记录页, 只显示孩子自己的历史:最快打字速度、最高准确率、 最快通关时间、最多次重玩的关卡、最近破过的纪录。
我故意没加 全球排行榜。原因:7 岁孩子的 "最快"放在任何公开榜上都慢。跟 12 岁的比,是羞耻配方; 跟上周的自己比,是骄傲配方。
技术实现不复杂,可以直接看 /leaderboard 页 和每关行级数据。设计上的难点是放哪些字段。我选了这 几个:
- 打字课最高 WPM
- 最高准确率(达到 100% 时单独 ⭐)
- 每关最快通关时间
- 重玩次数最多的关卡(孩子最爱拿来吹的指标)
- "本周破了 4 个纪录"卡——近,不是全期
- 每关行级 24 小时内新鲜纪录的 🆕 角标——孩子能一眼看到今天的赢
24 小时角标才是隐藏 MVP。我女儿现在每天都会去排行榜看一眼—— 不是因为必须,是因为想看自己的 ⏱ 是不是还在绿色。 "还在绿色"这个设计就是巧:角标 24 小时后自动消失, 给孩子一个微小的、天然的"再来一关"理由。
2. 一只靠真实学习来升级的宠物
这宠物就是个电子鸡。完整想法是:每完成一关,宠物涨经验; 升级会换新造型(蛋 → 小鸡 → 猫 → 狐狸 → 龙);升级时 🎉 彩屑 动画 + "升级啦!"弹窗。
这里有个我改 4 轮才改对的点:宠物的 XP 必须 来自 真实学习行为,不能来自点击。如果孩子能连点刷经验, 宠物就从"奖励"变成了"斯金纳箱"。所以规则是:
- 完成一关获得 XP(每颗星 5 XP)
- 破个人纪录额外奖励 XP(每个 metric 加 15 XP,叠在星的 XP 上)
- 其他任何操作不奖励 XP
第二条——"破纪录奖励"——就是排行榜和宠物之间的桥梁。打破自己的 纪录不再是排行榜上的一行字,而是能喂宠物。于是"我想打更快" 和"我想让我的龙进化"变成了同一个目标。
3. 破纪录那一刻的"现场反馈"
第三轮迭代时我才意识到。排行榜管的是回看,宠物管的是 期待,缺的是当下那一秒的反馈—— 就在孩子刚刚打破自己纪录的那一瞬间。
所以当一关结束、出现新的 WPM / 准确率 / 时间时,App 同时触发 3 件事:
- 🎉 弹一个"破纪录啦!"toast,显示指标和新数值
- 🔔 播两声短促上行音(E6 → A6,约 200ms,和过关音效区分开)
- ⭐ 排行榜上的时间戳更新,下次孩子访问时,那一行就是"新鲜的"
三个要一起才有效。光 toast 容易错过;光音效没头没脑;toast + 音效 不更新排行榜只是一次性高潮。完整的组合把"那 1 秒"变成了一段 孩子可以回去翻、想要重演的记忆。
6 个月的数据
BabyCode 2025 年 12 月上线。我不会假装这是严格的 A/B 测试—— 都是观察性的,样本也就 200 个活跃账号。但趋势线一致到 我敢信。
| 行为指标 | 没排行榜 + 宠物前 | 6 个月后 |
|---|---|---|
| 次日回访率 | 58% | 72% |
| 7 日回访率(一周后还回来) | 11% | 34% |
| 单次平均时长 | 6 分钟 | 14 分钟 |
| 活跃孩子单次通关数 | 1.4 | 3.1 |
| 家长报告"孩子主动要求写代码"(每周) | 0.4 次 | 2.8 次 |
我最骄傲的是最后一行。家长跟我说,孩子会在上学前、周末、 写完作业后,自己提"我想写一会代码"。"主动要求"是 unprompted 的——这就是整个目标。
为什么全球排行榜不适合这个年龄段
我想专门说这一点,因为我加的每个家长群最后都有人提 "加个全球榜呗,小孩都爱比"。对 6–9 岁是坏建议。失败路径 如下:
- 孩子第一次玩,看到排行榜
- 找自己——找不到
- 问:"为什么没我?"
- 家长:"再多打几关就有了"
- 孩子打 10 关
- 还是找不到,因为前 10 都是老玩家
- 孩子说:"我永远也上不了榜"
- 退出
个人排行榜没有这个失败模式。你永远在榜上,永远在跟 自己比。整局游戏就是"做比上周更好的自己"。
对 11+ 的孩子,已经有竞争心性的,加全球榜可以, 可能还有激励作用。但 Deci & Ryan 的自我决定理论 (1985)研究指出,对 6–10 岁,掌握型目标 (比过去的自己强)几乎在所有场景下都跑赢 表现型目标(比别人强)。
如果让我重来,我会改的两件事
- 宠物加得太晚。我以为游戏化是"锦上添花"。 实际是"承重墙"。宠物才是把"我得做这件事"变成 "我想做这件事好让我的龙进化"的关键。Day 1 就该上。
- 排行榜初版太稀疏。最初顶部就 4 张卡, 孩子根本不去看。加入"本周"统计 + 24 小时新鲜角标之后, 日活访问率从 18% 涨到 51%。教训:排行榜必须感觉 活着。如果一周过去没任何变化,孩子没有 看的理由。
带你的孩子试试
想看实际效果, BabyCode 是免费的—— 无需账号、无需安装,浏览器里直接跑。三条线(打字 13 关、 Python 12 关、C++ 7 关),中英双语,个人排行榜 + 宠物在 记录页。
如果你家孩子试过其他编程站都没撑住,我真想知道排行榜 这套对你有没有用。邮件或者 社区留言 都行——我正在公开迭代。
关于这个站
BabyCode 是我 2025 年 12 月开始为自己 7 岁女儿做的副业。 本文数据来自真实用户账号(已获家长同意)。站内无广告、 无内购、无追踪像素。 了解更多 →
阅读约 9 分钟 · 0 广告 · 0 追踪器 · 父母为父母而做