我儿子六年级。
寒假之前我就在想一个问题:这个假期怎么安排?纯玩肯定不行,一个多月就这么荒掉了太可惜。但也不想给他报那种坐在那儿听课的班。之前也上过线上的编程课,学了两年。语法学了不少,但我感觉他后期的主动性在下降,更多是跟着课程走,自己独立思考的机会不太多。
我想找一个他愿意主动花时间、同时还真的能学到东西的事情。
起因是一次比赛
之前参加过一个Python趣味编程比赛,类似闯关的形式,写代码让角色完成任务。儿子回来跟我说,班里好多人第一次见这种东西,都有点懵。他因为有点基础还好,但也没发挥出什么水平。
这件事让我意识到一个问题:他语法是会一些,但我感觉他学到的知识点还比较零散,放到需要独立解决问题的场景里,串不太起来。
我就想,有没有什么东西能让他练一练这种"实战"?
百度搜出来的
我这个人不刷抖音也不刷快手,找东西就是百度。搜了"Python闯关"、"编程游戏"之类的关键词,翻了几个结果,看到了CodeCombat。
点进去大概看了一下——RPG风格的游戏界面,写代码操控英雄,关卡递进,有地图有装备。第一反应是:这不就是学校比赛那种模式吗?
我让儿子先试了一下免费的关卡。他坐下来开始玩,我在旁边看。
然后我就发现了一个有意思的事情:他的状态跟之前上课的时候明显不同。
父子俩一起磨代码
跟之前被动跟着老师走不同,在CodeCombat里面,没人给他讲。关卡摆在那里,目标告诉你了,怎么实现你自己想。他得自己看场景、自己分析该用什么逻辑、自己写代码、自己跑、自己看哪里出了问题。
他会卡住。经常卡住。
但有意思的是,他卡住了不会马上烦躁,而是开始反复试。改一行跑一下,再改一行再跑一下。有时候我在旁边忍不住凑过去看,看着看着就参与进去了。
我不是程序员,但基本的逻辑我能看懂。有好几次我俩对着屏幕讨论:"你看这里,是不是应该先判断敌人的距离?""这个循环是不是多跑了一步?"然后一起改,一起跑,一起等结果。
有一关我俩磨了半个小时。不是因为特别难,而是我们想用更少的代码完成同样的任务。最后终于优化到了最简写法,两个人都特别有成就感。那种感觉跟一起打通一个游戏关卡一模一样,只不过武器换成了代码。
说实话这是我没想到的。本来是给他找的学习工具,结果变成了我俩的亲子活动。
确实也有让我头疼的地方
打到后面几关,开始出现一些之前没见过的语法——某些特定的函数调用、对象引用之类的。游戏里没有直接教你这个东西是什么意思、该怎么用,你就得自己悟。
我儿子悟不出来的时候,我就去百度搜,搜完再翻译成他能听懂的话讲给他。这个过程倒也不是不行,但多了一步就会打断节奏。如果关卡里面能有一个简单的提示——不用很长,就一两句话告诉你"这里需要用到XX语法,它的作用是XX"——就会顺畅很多。
(编者注:感谢反馈。"闯关中缺少语法说明"是我们收到较多的建议,团队正在筹备 Wiki 知识页面,方便玩家随时查阅语法和用法说明。)
还有一个事,我一开始搜的时候,百度出来好几个网站,有个叫扣哒世界的,还有什么教育版、个人版,搞得我有点晕。花了一些时间才搞清楚应该用哪个。
(编者注:感谢反馈。目前平台入口已进行整合优化,新用户可直接通过 codecombat.cn 注册使用。)
另外我到做访谈的时候才知道,原来产品里面有AI助手可以提问,还有真人客服可以求助。之前我俩完全不知道,遇到问题全靠自己死磕加百度。早知道有这个功能,有些关卡不至于卡那么久。
(编者注:闯关过程中如遇困难,可随时点击游戏界面中的 AI 助手按钮获取提示,也可通过平台内的客服入口联系真人支持。)
为什么我觉得这个东西值得花时间
我不是那种追求孩子必须考证拿奖的家长。编程对我来说,重要的不是他背了多少语法,而是他能不能建立起一种思维方式——遇到问题,拆解它,试错,优化,再试。
CodeCombat让我看到了这个过程。
有一关他写了一段代码,能过,但步骤很多。我随口说了一句"你觉得能不能更短?"他想了一下,把两段重复的逻辑合并成了一个循环。那一刻他可能自己都没意识到,他做了一次代码优化——用更少的指令实现同样的目标。
这种自己动脑优化的过程,我觉得特别有价值。
关于花钱
月费确实有点贵,这个我不回避。买了三个月的,想法是先试试寒假能用到什么程度。如果他能保持现在这个状态——愿意主动坐下来打、遇到问题愿意自己想——那这个钱花得就不亏。
比在外面瞎逛瞎玩强,至少每天都在动脑子。
现在每天晚上他写完作业之后,会自己打开电脑说"爸我打两关"。
我偶尔也会凑过去看一眼,如果碰上有意思的关卡,就坐下来一起研究。
他负责写代码,我负责在旁边出主意和捣乱。
挺好的。
文中学习体验因人而异,不构成学习效果承诺。