
最早看到Scratch的人大多先被它那张五颜六色的积木界面吸引然后把它归类为“小孩子学编程的玩具”。再往下了解一圈又会听到“麻省理工媒体实验室”这样的名头但很少有人能说清楚到底是谁、在什么时间、因为什么原因做出了这款在少儿编程教育领域几乎成为代名词的工具。Scratch的发明者是Mitch Resnick米切尔·雷斯尼克他是麻省理工学院媒体实验室“终身幼儿园”研究小组的创始人和负责人2007年带着团队正式发布Scratch 1.0。这个信息并不冷门可大家真正想弄明白的通常是另外三件事为什么是他他当初想做的是什么事以及搞清楚这些之后对我们现在给孩子选编程工具、安排学习路线有什么实际帮助。这篇文章就围绕这三件事展开不写什么宏大叙事只讲清楚来龙去脉再把我这些年接触Scratch项目、给老师做培训时积累的经验揉进去。1. 发明者的身份与背景1.1 别被“MIT团队”这几个字带偏网上很多资料会把Scratch的发明者写成“MIT团队”听起来像是一群研究人员在实验室里碰撞出来的产品。这个说法不能算错但会让人忽略一个关键事实Scratch从理念到架构有一位非常明确的核心灵魂人物就是Mitch Resnick。他本科在布朗大学读物理后来跑到麻省理工拿到计算机科学硕士和博士学位。早年还做过一段时间记者给《商业周刊》写科技类报道。这段职业经历让他比很多纯技术出身的人更在意一件事用户能不能听懂、能不能用起来。后来他进入媒体实验室师从Seymour Papert也就是Logo语言的发明者。Papert的教育理念对Resnick影响极深Shirley是我坚持我在做事的地图。可以说如果没有Papert当初提出的“让儿童通过编程来思考”这个思路Scratch今天大概率不是我们现在看到的样子。Resnick自己的研究方向一直围绕“如何用新技术支持创造性学习”。这句话听起来很宏大落到实际就是两个问题孩子怎样能像在幼儿园里搭积木、画画、过家家那样学习计算机能不能成为幼儿园那类材料的延伸这两个问题最终变成了Scratch的设计起点。1.2 一个博士为什么整天琢磨“幼儿园”“终身幼儿园”这个名字不是随便起的。Resnick认为幼儿园里那套“想象、创造、玩耍、分享、反思”的循环其实是最理想的学习方式不只适用于儿童适用于所有年龄段。问题是大多数人一进入正式教育阶段就被迫切换到“听课、记笔记、考试”模式创造和玩耍被切割掉了。Scratch的核心设计意图就是把人重新放回幼儿园式的学习循环里。孩子写一个Scratch项目先要想象一个效果然后尝试用积木拼出来过程中会反复调试做完了发给同学、发到社区收到反馈后再改。这个流程跟搭积木、过家家的内在规律完全一致。所以Scratch一直强调自己是“low floor, high ceiling, wide walls”——门槛很低上限很高墙壁很宽。低门槛是指不认识英文、没学过语法也能上手高上限是指它能做出各种小游戏、动画、物理模拟甚至复杂的交互装置宽墙壁则是指它允许孩子用完全不同的路径去表达不限定你必须按某一种编程范式走。理解了这一层再看Scratch里那些看似简单的设定就明白每一项都是在执行“幼儿园式学习”的理念。1.3 从Logo到Scratch跨越三十年的思想接力Seymour Papert在1960年代开发Logo语言时已经提出“孩子不应该被编程而应该编程计算机”的观点。Logo用“海龟绘图”的方式让孩子们通过移动屏幕上的小海龟来学习几何和逻辑。这在当时非常超前但Logo的上手难度依然不低因为它本质还是命令式文本语言。在很长一段时间里Papert自己都困惑于一个问题为什么Logo没有改变全世界的教育Resnick后来给出的判断是技术工具和时代土壤还不匹配。图形界面、鼠标操作、多媒体表现这些东西成熟之后才有机会把Logo的理念重新包装成普通人能直接拿起来用的工具。Resnick2003年前后在媒体实验室组建团队开始认真做Scratch核心成员包括Katie Salen、John Maloney、Natalie Rusk、Brian Silverman等人。他们吸收了Logo对“孩子主导学习”的坚持但换了一套全新的交互表达。所以回到“谁是发明者”这个问题上单纯报一个名字是不够的准确说法是Mitch Resnick与他在麻省理工媒体实验室的团队共同发明了Scratch。他是那个把理念、资源和团队拧到一起的人。2. 发明过程中的几个关键设计决策2.1 为什么非要用积木式拼接而不是直接写代码Resnick团队在做原型阶段试过好几种方案最终选了“积木拼接”这个形态不是拍脑袋而是基于多年观察。小朋友很喜欢用鼠标拖东西但要求他们记住语法、括号、缩进注意力马上就会从“我要做的事”转移到“我怎么让程序听我的话”。Scratch的积木被设计成只能按正确形式咬合条件判断是六边形参数是椭圆形事件积木是帽形命令积木是块状。这个设计的精妙之处在于它把语法检查前置了。孩子在拖动积木的那一刻很多错误就已经被物理上杜绝了。比如事件积木只能放在最上面条件块只能包住特定指令块不匹配的形状根本搭不到一起。对成人来说可能觉得无所谓对一个刚刚接触编程、对报错信息毫无概念的小学生来说这个设计直接消除了大半挫败感。我在实际使用中体会很深的一点是Scratch的积木分类方式也是精心设计过的。“运动”“外观”“声音”“控制”“侦测”“变量”这些分类几乎对应了孩子做动画、做小游戏时最自然的几个思考维度。想让人物动起来找“运动”想让人物说话找“外观”。这种分类方式比“输入输出”“流程控制”这种计算机科班术语友好得多。2.2 Scratch 在线社区发明出来之前先减半Scratch另一个独特设计是自带在线社区这在同类教育工具里很少见。Resnick在早期设计阶段反复强调学习需要在分享中发生所以Scratch官网从一开始就把“查看别人的项目”“改编别人的项目”做成核心功能而不是顺便加个作品展示区。这也是Scratch社区里“Remix”文化特别强的原因——一个作品可以被无数人改来改去每次改动都记录来源。这个设计对我这种做教学的人影响很大。以前我带学生上编程课孩子们做完一个项目交差就结束了没有互相看的习惯。后来把Scratch社区的分享机制搬进课堂让孩子两两结对、互相改对方的作品课堂交流明显活了起来。其实编程教育最难的部分不是孩子学不会语法而是他们缺少“做出东西给人看”的动力Scratch社区正是给这个动力提供了阵地。2.3 Scratch 桌面版和其他平台的取舍很多人会问Scratch不是网页版就能跑吗为什么还要单独出一个桌面版这里有一套逻辑。网页版优势是打开就能用、容易分享但对网络环境有要求而且浏览器的某些功能限制会拦住高级玩法。自从Scratch3.0转向HTML5技术之后它对WebGL和一些浏览器特性依赖加深老旧设备经常出现卡顿。Scratch Desktop for Windows的意义在于把完整的Scratch环境打包成桌面应用不受网络波动影响也能实现更高的性能和更稳定的体验。尤其是学校机房那种可能不允许装太多网络插件的环境桌面版要省心得多。我自己就遇到过网页版在教室的公共电脑上经常加载不出来换成桌面版之后一堂课顺顺畅畅地上完。还有一个容易忽视的原因Scratch桌面版用的是Electron外壳这意味着它在Windows、macOS上体验一致。无论哪个平台孩子回家之后装个桌面版操作流程和学校完全一样不需要重新学一遍界面。3. 理解Scratch的能力边界与真实价值3.1 Scratch 亮度、变量与条件判断三个常见热搜背后的教学逻辑Scratch相关的热搜词里“变量”“条件判断”常年出现这其实反映出学习者在思考编程核心概念时的真实困惑。很多老师教这两个知识点时会直接把计算机课本里的定义搬过来讲“变量是存储数据的容器条件判断是根据表达式的真假决定执行路径。”听起来严谨但对一个十一二岁的孩子来说完全无法转化成操作动机。Scratch的优势在于把这两个抽象概念具象化。变量积木可以直接显示在舞台上孩子们能看到数字在变化可以从“测分数”“计步数”这种场景中去理解它。条件判断积木则是彩色六边形搭配“如果...那么...”的自然表达方式孩子不用去背布尔表达式的概念直接就能搭出一个“碰到边缘就反弹”的规则。这种从具体操作中习得逻辑思维的方式才是Scratch真正的教育价值所在。再比如“亮度”这个热搜词。很多孩子做舞台光影效果时会用到“亮度”积木这段操作看似只是改一个视觉参数其实已经在接触“对象属性可调”“变量影响外观”两个编程概念。一个孩子如果想做月圆月缺的动画就会自然搞明白如何用变量去控制亮度变化。这就是Scratch的宽墙壁——同样一个概念它可以从美术、游戏、动画等多个入口进入。3.2 Scratch 能做出的经典项目植物大战僵尸、中秋节主题为什么到处流传Scratch社区里流传最广的教程项目植物大战僵尸绝对排得上号。从热搜词就能看出来大量用户在寻找“Scratch植物大战僵尸代码”和源码。这个现象背后有一个很实际的逻辑孩子天然喜欢模仿熟悉的游戏而植物大战僵尸这种“放置、发射、敌方推进”的游戏逻辑恰好能把克隆、广播、随机数、变量判断这些核心编程知识串起来。做一个简化版需要分三步走先控制植物选择再用克隆克隆僵尸最后做碰撞判定和胜负条件。每一个环节都涉及具体编程概念但因为目标好玩孩子在实际项目中就把知识点吸收了。中秋节主题的Scratch源码在每年九十月也会迎来一波搜索高峰。这个现象在学校里特别明显——很多老师会布置“中秋节主题Scratch作品”任务。我见过不少孩子把这当成负担但如果引导得当他们反而会主动想做。比如月亮从圆变缺的动画涉及亮度、造型切换和时间变量设计做月饼小游戏涉及鼠标跟随、落点判定结合“嫦娥”“玉兔”这些角色把叙事和交互结合在一起。这种传统节日主题其实是Scratch教育里的黄金场景因为它天然给了孩子一个“内容驱动编程”的起点。3.3 Scratch 考纲和等级考试商业化之后的冷思考另一个热搜词“Scratch考纲”背后是国内这几年兴起的青少年编程等级考试和竞赛体系。Scratch从兴趣玩具延伸到考核工具本身是生态壮大后的必然结果但这里我想泼点冷水。等级考试的确能给孩子一个阶段性的正反馈也方便家长直观看到学习效果但很多机构的教学会特意针对考试去做结果孩子能够熟练做出一堆静态作品一遇到开放性问题就懵了。给孩子做Scratch考纲内容时我建议把它当作“检验知识点的镜子”而不是“学习编程的唯一目标”。考前突击题型没问题但刷完题之后一定要让孩子再回到自由创作状态做自己想做的项目。考试检验的是知识点是否记住而编程的核心能力是迁移和创造后者只有通过自主项目才能锻炼出来。考级可以成为一个节点但不能成为终点。4. 常见问题与排错经验4.1 打不开项目文件或者界面卡顿怎么办使用Scratch桌面版时最常见的问题是打开别人传过来的.sb3文件后某些角色或音效莫名丢失。这里要说一个坑Scratch官网的兼容性滤镜非常严格从网页版导出的项目依赖网络资源比如某些在线图像链接的部分离线打开时很可能变成空白。解决思路很简单把项目打包前把所有素材都重组进项目内不要依赖外部URL。导入图片、声音时要通过本地文件导入不要从网页拷贝一个链接挂上去。另外如果孩子在家里做好一个项目带到学校机房打开尽量用相同大版本号的Scratch。3.0的.sb3文件拿到2.0的离线版里是打不开的这个版本兼容问题经常被忽略。还有一类情况电脑配置明明不差但Scratch运行时风扇狂转、画面迟滞。这个多半是项目中用了大量克隆对象或者高分辨率背景图。Scratch引擎处理克隆对象时计算压力不小如果同时存在几百个克隆对象再叠加持续侦测卡顿几乎是必然的。解决办法是限制克隆体的数量或者用“限制在某个X坐标范围内消失”这类优化逻辑。这个优化思路本身就是一次很好的编程练习。4.2 变量和条件判断为什么孩子总是学不会如果孩子在一两个月学习之后碰到变量和条件判断还是满头问号先别急着断定“不是这块料”。回顾一下教学过程通常问题出在“概念先于经验”。很多教学一上来就讲定义孩子没有经历过一个“非要用变量不可”的场景自然记不牢。我自己的实践方式是先给孩子一个完成但有小需求的项目比如“小猫走到舞台边缘时要掉头”让孩子先尝试固定移动再引导他思考“怎么知道已经碰到边缘”他自然会用上侦测和条件判断。这时候把“如果...那么”积木拿出来讲两句规则不用多。这种教学顺序是让概念从需求中生长出来而不是反过来。条件判断还有一个孩子特别容易踩的坑条件条件的顺序问题。多条件并行时Scratch的代码是自上而下执行的一旦前面条件被满足后面的就不会再运行。很多孩子写完代码发现“为什么明明没吃到金币也显示加分‘’就是因为把‘碰到金币’和‘碰到敌人’的条件顺序写反了。要带孩子排的是一种执行顺序理解而不只是语法理解。4.3 项目源码复用与原创能力的平衡很多Scratch学习者会在社区、网盘里找“植物大战僵尸源码”“中秋主题源码”拿回来改一改就宣布完成。这个做法本身没有错Remix是Scratch社区文化的重要一部分。但如果一直停留在“找别人源码改改参数”的状态编程能力很难真正进步。我的建议是定一个“三层过滤”规则。第一层拿到源码先看整体流程它有哪些角色、主要用什么机制先用Scratch的“单步执行”功能走一遍写一段角色和流程梳理。第二层改一个核心机制比如把“随机出现僵尸”改成“按关卡配置表出现”这需要理解变量列表和条件逻辑。第三层尝试从零开始做一个简化版本只保留核心机制其余全部自己拼积木。能独立完成第三层这个项目的价值才真正内化成能力。源码可以抄但“抄完之后把它们变成自己的”这个过程不能省。5. 从发明者视角延伸怎么给孩子选路线5.1 Scratch、Scratch Jr和Python什么时候切换“Scratch Jr desktop”“编程scratch”这两个热搜词背后是两类很典型的学习者低龄儿童和小学生。Scratch Jr是Resnick团队面向5到7岁儿童做的简化版界面更少、积木类型更少、没有变量和克隆核心目标是让孩子理解“顺序和事件”。如果孩子已经具备基本阅读能力、能理解加减和大小比较直接用Scratch也是可以的。我见过很多家长让一年级的孩子直接学Scratch结果孩子连角色造型切换和坐标位置都搞不清学得很痛苦。这不是孩子能力差而是工具和孩子当前认知阶段不匹配。建议是有幼儿园中大班基础的孩子可以先用Scratch Jr到二年级之后逐步切入Scratch。有两个明显的信号说明该切到完整版Scratch了一是孩子在Scratch Jr里开始反复询问“能不能让分数再增加一个条件”二是对“变量”这种概念产生了自然的好奇。至于从Scratch转到Python的时机没有统一答案。我的经验是孩子能在Scratch中独立完成包含克隆、变量、列表交互综合运用的项目后再转文本型语言比较顺畅。很多孩子小学四五年级转入Python会遇到的问题是“不知道怎么写”其实他们知道算法怎么做只是语法不熟。这种时候文本语言的切换只差一个熟练度问题不需要重新学逻辑。5.2 家长和老师能做什么不要做什么接触过大量真实家庭案例后我越来越觉得Scratch教育中最关键的变量不是工具而是家长和老师的介入方式。一个孩子能否在Scratch里深入下去往往取决于周围成年人能不能忍住不去“纠正”。这里有一条很实用的原则优先问孩子“你想做什么”其次问“你做的东西怎么运作”最后才是“这个该怎么改”。孩子想做植物大战僵尸老师可以引导他拆解成“植物选择、僵尸生成、胜负判定”三个环节但不要直接把答案给出来。家长在孩子卡住时最容易犯的错是替代孩子去点击鼠标。你替他解决了问题也就替他拿走了思考机会。还有一点Scratch项目展示环节特别重要。别只让作品“完成”了就能带着孩子做一次项目展示讲讲里面哪一个功能是自己最满意的哪一行积木曾经卡住过自己。这个过程会培养元认知能力让孩子回头看自己做过的代码而不只是闷头往前拼。Resnick那套“想象、创造、玩耍、分享、反思”的循环最后一步“反思”在现实教学里最容易被砍掉但恰恰是它决定了孩子的学习深度。5.3 用“发明者的思路”来看待任何编程工具回到最初的问题知道Scratch发明者是谁到底有什么用我觉得最大价值不是背下“Mitch Resnick”这个名字而是理解他那一套设计思路。所有伟大的教育工具核心都不是功能堆得越多越好而是能不能让学习者“低门槛进入、高水平发展、自由地表达”。我近年在看很多新编程工具、AI学习平台时会下意识用这套标准去衡量它是否给孩子留出了自由创造的空间它是否能把抽象概念变成可操作的具体体验它是否允许孩子出错并从错误中学习这三个问题比工具本身是不是热门、是不是“官方推荐”重要得多。Scratch能流行十几年不是因为MIT的牌子而是因为它真的做到了让数以千万计的孩子在写代码的过程中体会到创造的乐趣和价值。你看完这个发明者的故事之后不管接下来是带孩子配一台机器装Scratch桌面版还是陪他一起查一份中秋项目的源码多做的那一点点关注和引导就已经是这笔传承接力中你作为教育者可以发挥的角色了。