上周在青少年活动中心听编程公开课,后排角落蹲着个穿蓝卫衣的小男孩,膝盖上摊着拼了一半的智能小车,头埋得很低,手指抠着车轮的橡胶圈。
我凑过去看,他本来拼出了一辆会自动绕开障碍物的小车,挺有意思的。但老师要求所有人都要做成例题里的巡线车,要符合考试的步骤标准,他改了两次都不对,索性蹲在这不肯上台。
说实话,那一瞬间我有点心疼。
我们把编程教成了默写题
常见的编程课堂上,你见过这样的场景吗?老师把模块拖好,孩子照着一模一样的顺序再拖一遍,代码块位置错一个都不行。考级刷题背知识点,问循环语句的三个参数是什么,填空要和标准答案一字不差。
孩子学了半年,能考过三级,却改不了小车的一个灵敏度参数。
更有意思的是,很多家长夸孩子聪明,会说“我家娃背代码块特别快”。什么时候编程变成背东西的科目了?

说白了,这种教法,本质就是把编程变成了另一种语文默写。只要记忆力好就能拿高分,和解决问题半毛钱关系都没有。孩子本来对“让东西动起来”“做个自己的小游戏”充满好奇,折腾个两三个月,好奇心磨没了,只记得要按老师说的做,错一点都不行。
编程教的到底是改错,不是做对
去年冬天认识一个初中生,放学总泡在我朋友的工作室改代码。他想做一个抽卡模拟器,自己抽着玩。一开始十连必出金,整个概率全乱了,他改了一下午,又变成全是最低级的蓝卡。我朋友说要给他提示,他摇摇头说自己再找找。
那天快天黑的时候,他突然拍桌子喊,找到了!原来是概率公式里的一个参数写反了。他蹦起来给我们每个人演示,那眼睛亮的,我到现在都记得。
编程从来不是默写正确步骤,而是在错了无数次之后,找到属于自己的解法。

你随便拉一个真正写代码的人问,他一天的工作是什么?八个小时有七个半小时在找bug改bug,剩下半小时写新代码。试错,拆分问题,一点点调整,本来就是编程的常态。可我们的编程教育,非要孩子第一次就做对,一步都不能错。把最核心的东西扔了,捡了个没用的框架走。
说白了,孩子学编程,学的不就是遇到烂摊子,怎么一步步把它捋顺吗?这点能力,哪怕以后不干互联网,做文案整理数据,甚至规划一次旅行,都能用得上。
普通人学编程,要不要挤竞赛独木桥

大部分孩子学编程,根本不需要奔着竞赛去。
我见过太多家长,刚给孩子报完启蒙班,就开始打听哪有竞赛集训,就想着走升学路线。不是说竞赛不好,是这条路本来就只适合极少数真的痴迷编程,能熬得住日夜刷题的孩子。大多数孩子,本来就是抱着玩玩的心态,想做点自己喜欢的东西,非要赶去挤独木桥,最后兴趣没了,钱也花了,什么都落不下。
之前有个喜欢做手工的小女孩,学了半年基础Python,自己写了个小脚本,能自动把她存的上百张手账素材按颜色分类,原来她手动分要分一下午,现在点一下运行十秒就好。她高兴得不得了,说编程太有用了。你看,这就是编程教育最好的结果啊。她不当程序员,也不打竞赛,但她学会了用工具解决自己的麻烦,这就够了。
不过话说回来,现在太多机构爱贩卖焦虑,说不学编程就会落后,其实哪有那么夸张。编程就是个工具,就像小时候学写字,学画画,不是所有人都要当作家当画家,会用它表达自己解决问题,就已经是很好的收获了。
那个蹲在墙角的小男孩,后来我拉着他问,你是不是就喜欢你那辆躲障碍的小车?他点点头。我说那你别管老师,我们一起调参数,哪里不对改哪里好不好?他一下子就笑了,眼睛亮得和那个改抽卡模拟器的初中生一模一样。
今晚回家,不妨问问你家学编程的孩子,最近改了什么有意思的bug?
作者|教育
排版|教育
审核|阿辰