上周去邻区一间编程教室听课,推门进去,空调开得太足,冷得我打了个哆嗦。抬头一看,半屋子小学生埋着脑袋盯着平板,指尖对着图形化模块拖来拖去,老师站在讲台上念步骤:先拖“当绿旗点击”,再拖“重复执行十次”,错位置的举手上来改。
一个穿蓝衣服的小男孩错了一个模块的顺序,站在座位边上红着脸抠衣角,老师催了三遍,他还是没改对。下课我翻了翻他的课本,整页整页抄满了模块组合的代码注释,连顺序都标好了。
被搞反的工具和目标
现在太多做编程教育的,都把关系搞反了。
大家默认,写代码是目标,学会了就能拿奖,就能升学,将来就能进大厂拿高薪。招生广告铺天盖地,几岁不学就输在起跑线,说得家长慌慌张张掏钱包。

我见过太多学了一两年的孩子,能对着模板拼出一个看起来花里胡哨的小游戏,换个要求就卡壳。之前有个孩子来我这里试听,我让他做一个让小猫走正方形的路径,他一口反问我:“你没说第几步放左转模块,我怎么知道放哪里?”
说实话,听得我心里发凉。我们花了时间花了钱,最后就教出一个会按顺序拼模块的录音机?
编程从一开始就是工具啊。是帮你把脑子里想解决问题的思路,翻译成计算机能听懂的语言的工具。真正要学的是思路,不是代码顺序。可现在大部分课堂,把工具当成了最终目标,把练思维的课上成了背流程的课,太亏了。
别把编程做成另一个奥数
不过话说回来,这种做法眼熟得很。不就是几十年前奥数的路子吗?
本来奥数是给少数喜欢数学的孩子玩的,最后做成了全民刷题,所有人都为了获奖升学熬,不喜欢的也硬熬。现在编程教育又在走一模一样的老路。
常见的情况,培训机构把图形化编程拆成一百节课,每节课学一个固定模块,做一个固定项目,孩子跟着拖就完了,一节课几十块,赚得盆满钵满,孩子什么也没学到。更别说那些冲着竞赛去的,一天刷十几个算法题,背模板,跟刷数学题没区别,本质还是应试。

我之前遇到一个家长,说孩子拿了某个竞赛的银奖,可连自己家的电费统计表格都不会用编程做个自动计算,因为老师没教过这个题型。你说,学这个到底是为了啥?
当然不是说竞赛不好,喜欢编程的孩子去冲竞赛没问题。但大部分普罗大众的孩子,犯不着跟着凑这个热闹,把编程教育变成又一个内卷的战场,没必要。
普通人学编程,到底学什么

很多人问,既然不是所有人都当程序员,那为什么要学编程?
我觉得对普通孩子来说,有三个东西是真有用,干什么行业都能用得上。
第一个就是拆解问题的能力。你想做一个提醒自己带雨伞的小工具,不能上来就写代码,得拆:怎么拿到今天的天气预报?下雨了怎么给你发提醒?要不要给用户自己改提醒时间的选项?把一个大的、模糊的需求,拆成一个一个能挨个解决的小问题,这种能力,你将来当老师改教案,当老板管项目,甚至装修房子安排工序,都能用。
第二个就是接纳错误的心态。写代码哪有一次就对的?我写了十几年代码,还天天出bug呢。改bug的过程,就是练你遇到问题不慌,一点点排查,一点点试,总能改好。现在多少孩子遇到一点挫折就退坡,编程就是最好的练习,错了又不会扣分,改了就行。
第三个就是,学会用工具省力气。我有个学生,去年六年级,每天要抄错题,嫌麻烦,自己写了个小脚本,把拍照转成文字的错题自动分类整理成文档,省了每天一个小时的抄题时间。你看,这就是编程给普通人的好处,不是让你去当大厂工程师,是让你会用工具解决自己的麻烦,帮自己偷懒。
哪有那么多惊天动地的大作用,也不是什么洪水猛兽不能碰。编程教育就是一个给孩子练脑子的普通课程而已。
要是你家孩子正在学编程,下次下课别问「今天学了什么新代码」,试试问一句:「今天你解决了什么好玩的问题?」
作者|教育
排版|教育
审核|见微