我可能是一个比较随性的妈妈吧,对孩子没什么特别的要求,健康成长就好。但在引导孩子学习这方面,我觉得理清学习的目的和初心还是很重要的,只有刨除了名利和虚荣,培养起真正的兴趣,孩子才容易持之以恒地坚持学习下去。
比如给儿子选择从小学英语,是为了让他将来不必像我当年一样,需要额外花时间去啃英文技术资料(小女之前是做电子研发工作的,所以每天面对的都是一堆英文datasheet),能够自如的和外国客户交流;给儿子选钢琴,是想他在疲惫的时候能有个休闲放松、释放压力的途径。所以为了让儿子自然而然的喜欢上这些,我早早地、潜移默化的去铺垫。比如在儿子九个月大时,我就开始给他听英文儿歌,一岁就开始亲子阅读英文绘本,我也不着急他有输出,一切顺其自然就好!而钢琴的培养也是这样,从小给他听很多种类的音乐,弹钢琴给他听,给他伴奏唱歌,直到他自己说要尝试学钢琴,我也不要求他去参加考级和比赛,全凭自己喜好就好!
而在编程这件事情上,我也持谨慎的态度,因为不想让孩子过早过度的沉迷于电脑虚幻的世界,而且对健康不利(偶就是被电脑所累,整日被近视、颈椎病、肩周炎、腰椎病所困,与当年经常24小时同电脑大作战,忙于设计电子产品大有关系啊!),所以直到儿子六岁那年,他开始接触一点电子游戏时,我才问他要不要尝试一点编程。当时儿子对编程还没有什么概念,我给予他的解释他也听得似懂非懂,但他还是说想尝试一下。
可惜当时我又没有顺应潮流,选择容易入手地Scratch,想着凭借自己学习和工作中的那点编程经验,让儿子直接进入python起步,岂不省事?现在来看缺少了自然地铺垫,而将内容直接硬塞给儿子是不行的,于是在两次课程之后,我及时喊停,没有强迫他学下去。而且我也不认为编程是每个孩子必备的技能,所谓的逻辑思维能力、动手能力、协作能力等等,通过其他的途径也可以培养起来,code的学习不是孩子的必须选项,因此就没再提起。
可是后来我发现儿子居然自己找到了hopscotch等类似的游戏,而且还很热衷于去“搬运方块”,只是在“如何合理的搭建循环,使重复性动作的编程操作简便”上儿子一时摸不着门道。于是我想凭着我的三寸不烂之舌给儿子讲明白什么是循环,以及如何更好地、用更简洁地编程语句来完成循环,但是……我又失败了!
虽然我也是对编程不甚了解,但我觉得编程工作的首要任务是理清当前编程项目的输出物以及相关流程,理顺这个过程的思路对于培养人的逻辑思维是很重要的。而画流程图是理顺整个思路的重要工具(流程图的学习,大家可以移步“思维导图”板块,在此不加说明了哦)。而大多数流程都可以简单的概括成如下的过程:变量赋值--条件判断—执行操作的循环,所以初期我觉得能帮助孩子搞清楚这个基本的过程就很好!而如何说明白和演示清楚这个过程却并不像想象的那么简单。
幸运的是,我又在一个午后邂逅了花生君,让我在偶然间遇到了Thinkfun的code桌游,那份惊喜真是无以言表啊!于是在和儿子简单沟通之后,我一次性将thinkfun的这套code桌游(三个级别)收入囊中。后来证明这个选择是极其明智的,因为朋友们在看到我和儿子玩code之后,却没能再找到同款的玩具。不过我已经建议他们来和花生君多交涉一下,期待下一次团购吧!
拿到玩具之后,我和儿子就会在闲暇的时候玩起来,虽然我们根本没把它当作是在训练编程思维,就仅仅是休闲娱乐而已,但是从中得到的收获却是意想不到的,其中最大的收获就是游戏通过颜色的限定,就帮孩子搞清楚了编程的基本流程,根本不需要我再多费口舌,这也许就是我和游戏设计人员的最大差距!
举个简单的例子,图1是此款桌游第一个级别中的第8关,因为刚一开始学习,所以设计者只将指令限制在两种颜色之内(游戏的设置也是遵循由易到难,循序渐进的理念来设计的,所以大家不必担心一上来太难,孩子不易入门)。一开始机器人是位于蓝色方块中的,这就好比给当前的机器人这个变量赋予了“蓝色”这个值,按照游戏规则,玩家只能在蓝色的指令板中给出命令,经过思考、尝试,蓝色指令区给出的指令仅仅是Move forward(前进一步)(见图2指令板)。这就好比进行了一次条件判断,判断结果是“机器人当前的变量值为蓝色”,因此就去执行“蓝色指令”——即前进一步。依次类推,机器人只要在蓝色区域,就要执行蓝色指令;而当他进入红色方块时,相当于此时的变量值和判断条件发生了变化,即条件判断结果为“红色”,因此将执行“红色指令”——即Turn Right(右转)、Move Forward(前进一步),一共是两步操作(见图2指令板)。而执行完“红色指令”后,机器人又进入了蓝色方块区,根据条件判断后,他又需要执行“蓝色指令了”……依次往复(操作过程参照图3~图7),“变量赋值(机器人所在的颜色区域)——条件判断(即颜色判断)——执行指令(根据不同的颜色指令执行操作)”,这些便很好的诠释了编程的基本流程,根本不需要跟孩子解释“变量赋值、条件判断、循环操作”这些华丽的辞藻,Oh My God!
(图1,第八关挑战)
(图2 指令板)
(图3)
(图4)
(图5)
(图6)
(图7)
在上手玩这款游戏之后,儿子越来越容易理清每一个关口的操作流程,逐步建立起一个清晰的思路过程,同时也有了一些额外的思考和感慨。比如下面的第九关,终点就在起点的身后,儿子开始很不耐烦的说:“这个游戏的设计人员太死脑筋了,为什么要给那么多的限定条件,要是给个后退的命令选项,机器人直接后退一步不就完事了吗?何苦转一大圈,浪费时间浪费脑细胞啊?”为了给儿子解释清楚设计人员的良苦用心,我给儿子举了个例子。
我问儿子每天上学的路线是什么?其实从我们家出门去学校最直接的路线就是出门后直走,过马路后左拐去小学即可。但是我们每天实际上却需要多走一段路,走地下通道后,才能到达学校,我问儿子原因,儿子回答说:“因为家门口的马路在路口处没有设置人行横道,路中间有障碍,无法直接过马路”,所以啊,这些原因就是游戏设计人员设置的“限定条件”,而现实中很多时候就是有这样那样客观的“限制条件”,让你无法从最直观的路径和方法去实现你的目标,这时候就需要你“动点歪脑筋”,走点“弯路”(比如通过地下通道、过街天桥),才能最终实现你的目标。通过玩这个游戏,儿子还体会到了一个道理,那就是“当你短期无法改变客观条件时,你首先要学会去适应它,然后才能找到改变它的方法!”哈哈,玩游戏是不是玩出了新高度!!!
所以虽然我们没有刻意的去学习code,但我们却在不知不觉的游戏当中,锻炼了思维,陶冶了“情操”,是不是也一举两得了?因此儿子说“爱上code,爱上游戏!”,每天的游戏时间都是他所盼望的。现今儿子已将第一级别的40个关卡全部挑战结束,已开启第二个级别的游戏,亲爱的小伙伴们,一起来玩吧!也许游戏才是学习打开的最正确的方式!

