0. 编程学前班

用适龄的图形化编程、Python、Minecraft与3D创作建立因果、分解、调试和作品表达,而不是把成人语言语法提前灌给儿童。 覆盖14个可见节点与13条官方连接,并用路线、投入和作品证据复核。

为什么学习路线必须由作品闭环

用适龄的图形化编程、Python、Minecraft与3D创作建立因果、分解、调试和作品表达,而不是把成人语言语法提前灌给儿童。 本页依据Milo Yip官方《游戏程序员的学习之路》中文版图谱重构,覆盖14个可见节点与13条方向连接。课程不复制原图排版和封面,而把图谱的能力节点、书籍节点、推荐实线与可选虚线改编成可交互路线和验收门禁。

图谱不是“读完即毕业”的课程表。作者明确指出,书籍只代表游戏程序员可能或应该掌握的知识与技能,实践、课程、产业和学术资料同样重要。只按年龄选书却不观察阅读能力、手部操作、挫折恢复和自主创作,会让路线从风险控制工具退化为收藏清单;每次只开启一条主线,用作品证明前置已满足,再进入下一节点。

材料身份、版本与许可

权威材料是Milo Yip创建的开源图谱《A Study Path for Game Programmer / 游戏程序员的学习之路》。中文版由tkchu整理,图面日期为2017年8月7日;当前官方master最后一次中文版图书更新提交为2019年1月2日,提交963fbeadd6f598adbd68406d975da5fb869a251c。它是单页DOT/SVG/PDF知识图谱,不是传统ISBN图书,并采用CC BY-SA 4.0许可。

图谱包含0到11共12个知识域、54个能力里程碑、215个书籍推荐,即281个可见节点;节点之间有290条方向连接,其中45条实线是推荐路线,245条虚线是可选路线。年份与版次必须按图谱历史语境读取;当前学习者要重新核对新版、工具链和岗位需求,但不能借“更新”之名删掉原图节点或改变实线/虚线语义。

五个贯穿全图的术语

、、、、。

在制主线控制并行;推荐路线保留作者给出的优先关系;可选路线允许专项差异;能力作品把阅读转成行为;学习证据则防止数月后只记得“看过”却无法复现结论。

四个可复算路线指标

节点覆盖必须以作品通过而不是打开书页计数:

Cpath=Nnodes with accepted artifactNcommitted nodesC_{path}=\frac{N_{nodes\ with\ accepted\ artifact}}{N_{committed\ nodes}}

并行负荷随着在制路线和上下文切换增长:

Lparallel=Nactive routes+λNweekly switchesL_{parallel}=N_{active\ routes}+\lambda N_{weekly\ switches}

证据置信度综合复现、边界覆盖与交接成功:

Kevidence=Rreproduce×Cboundary×HhandoffK_{evidence}=R_{reproduce}\times C_{boundary}\times H_{handoff}

历史路线的版本漂移按失效节点和失效连接记录:

Dversion=Nstale nodes+Nbroken edgesNaudited nodes+Naudited edgesD_{version}=\frac{N_{stale\ nodes}+N_{broken\ edges}}{N_{audited\ nodes}+N_{audited\ edges}}

这些指标只用于暴露路线风险。难书不该因耗时长被判低分,作品多也不等于能力深;报告必须附节点定义、目标岗位、版本、复核者和失败样本。

从5岁开始

可见节点 1/13。 这是作者图谱中的能力里程碑。进入前要列出前置概念和最小作品,退出时必须能解释、实现、测量并复盘,而不是只完成阅读。

围绕“从5岁开始”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

从8岁开始

可见节点 2/13。 这是作者图谱中的能力里程碑。进入前要列出前置概念和最小作品,退出时必须能解释、实现、测量并复盘,而不是只完成阅读。

围绕“从8岁开始”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

中级孩童游戏编程

可见节点 3/13。 这是作者图谱中的能力里程碑。进入前要列出前置概念和最小作品,退出时必须能解释、实现、测量并复盘,而不是只完成阅读。

围绕“中级孩童游戏编程”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

动手玩转ScratchJr编程 (2016)

可见节点 4/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“动手玩转ScratchJr编程 (2016)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Coding Games in Scratch (2015)

可见节点 5/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Coding Games in Scratch (2015)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Scratch超人漫游记 (2017)

可见节点 6/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Scratch超人漫游记 (2017)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

动手玩转Scratch2.0编程 (2015)

可见节点 7/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“动手玩转Scratch2.0编程 (2015)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Help Your Kids with Computer Coding (2015)

可见节点 8/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Help Your Kids with Computer Coding (2015)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Invent Your Own Computer Games with Python 4th Ed (2016)

可见节点 9/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Invent Your Own Computer Games with Python 4th Ed (2016)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Making Games with Python & Pygame (2012)

可见节点 10/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Making Games with Python & Pygame (2012)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

Learn to Program with Minecraft (2015)

可见节点 11/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“Learn to Program with Minecraft (2015)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

零基础学Minecraft编程 (2015)

可见节点 12/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“零基础学Minecraft编程 (2015)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

3D Game Programming for Kids (2013)

可见节点 13/13。 这是作者图谱中的书籍节点;括号年份和链接反映2017/2019图谱坐标,不代表2026年的最新版或唯一选择。先定义它要补足的能力,再核对当前版次、可获得性与替代材料。

围绕“3D Game Programming for Kids (2013)”建立阅读—实现—验证三联单:阅读只提取问题和模型;实现生成代码、数据或可运行场景;验证包含边界、反例、性能或用户行为。三者缺一时,节点仍处于“接触”而不是“掌握”。

图谱的完整方向连接

实线表示作者给出的推荐路线,虚线表示可选路线;方向是前置到后继,不等于“读完左侧每本书才能打开右侧”。本页保留全部13条连接:

  • 可选路线:从5岁开始 → 动手玩转ScratchJr编程 (2016)
  • 可选路线:动手玩转ScratchJr编程 (2016) → 从8岁开始
  • 推荐路线:从8岁开始 → Coding Games in Scratch (2015)
  • 推荐路线:Coding Games in Scratch (2015) → Help Your Kids with Computer Coding (2015)
  • 推荐路线:Help Your Kids with Computer Coding (2015) → 中级孩童游戏编程
  • 可选路线:从8岁开始 → Scratch超人漫游记 (2017)
  • 可选路线:Scratch超人漫游记 (2017) → 动手玩转Scratch2.0编程 (2015)
  • 可选路线:动手玩转Scratch2.0编程 (2015) → 中级孩童游戏编程
  • 可选路线:中级孩童游戏编程 → Invent Your Own Computer Games with Python 4th Ed (2016)
  • 可选路线:Invent Your Own Computer Games with Python 4th Ed (2016) → Making Games with Python & Pygame (2012)
  • 可选路线:中级孩童游戏编程 → Learn to Program with Minecraft (2015)
  • 可选路线:Learn to Program with Minecraft (2015) → 零基础学Minecraft编程 (2015)
  • 可选路线:中级孩童游戏编程 → 3D Game Programming for Kids (2013)

连接的验收单位是能力转移。例如从计算机基础进入游戏编程,不要求复述整本系统书,而要求能用存储层次解释一次帧尖峰、用进程线程模型定位一次阻塞,并把结论应用到真实项目。若后继作品反复暴露前置缺口,就沿连接返回补课,而不是继续扩大书单。

把路线转成季度执行合同

年龄入口、项目阶梯、监护与创作证据应由目标、前置、输入材料、每周投入、作品、验收者和退出条件组成。季度只承诺一条在制主线,其他节点保留为候选;每两周产出一个可运行或可复核增量,每月检查一次版本漂移,每季度根据作品结果重排下一段路线。

合同必须允许不读或换书。若某本历史推荐难以获得,可用覆盖同一能力的新材料替代,但要保留原节点、说明替代映射并跑同一作品门禁。这样既忠实复刻官方图谱,又不会把2017版次误当成2026年的采购清单。

{
  "domain": "gmp17-00-programming-preschool",
  "phase": "基础主干",
  "activeRouteLimit": 1,
  "weeklyHours": 8,
  "artifact": "年龄入口、项目阶梯、监护与创作证据",
  "acceptWhen": "作品可运行、边界已测试、他人能复现",
  "deferWhen": "前置缺失、版本未核对或没有近期作品"
}

用证据区分“看过、做过、掌握”

“看过”只能证明接触材料;“做过”意味着完成至少一个实现;“掌握”还要求能迁移到新问题、解释取舍、处理反例并完成交接。路线面板应分别记录这三种状态,不用一个百分比掩盖差异。复核者随机改变输入规模、平台或约束,学习者若只能复现教程默认场景,节点就退回“做过”。

一个最小路线评估器应返回分项和缺口:

type Evidence = {
  runs: boolean;
  boundaryCases: number;
  reproducedByPeer: boolean;
  versionPinned: boolean;
};
 
export function evaluateNode(evidence: Evidence) {
  return {
    executable: evidence.runs,
    boundaryCoverage: Math.min(1, evidence.boundaryCases / 4),
    handoff: evidence.reproducedByPeer,
    traceable: evidence.versionPinned,
  };
}

不要把分项立即压成总分。运行失败与版本未固定是不同问题,边界不足和交接失败也需要不同补救;缺口明确后,下一项任务才可以控制在一到两周内完成。

先预测再运行

在调整实验前先预测:每周投入从4小时增到12小时、并行路线从1条增到4条、验证时间占比从20%增到60%时,四周后的“已读节点”和“通过作品节点”会怎样变化?固定一个目标岗位和同一作品,连续记录四周;若阅读数上升但作品通过率下降,就减少并行和输入材料,而不是继续加时。

Feature: 0. 编程学前班
  Scenario: a learner exits one graph node with transferable evidence
    Given a pinned source version and one active route
    When the learner completes the declared artifact and boundary tests
    Then a peer reproduces the result without tutorial-only knowledge
    And the route decision records continue, branch, defer, or return

三类高频误区

本章回顾

“0. 编程学前班”通过年龄入口、项目阶梯、监护与创作证据把阅读路线变成能力路线。忠实使用图谱需要同时保留节点、方向和实线/虚线语义;有效执行则需要单一在制主线、作品门禁、版本核对、边界实验和交接证据。二者结合,才能既不偷掉官方结构,也不被历史书单锁死。

讨论

评论区加载中…