资讯内容
我和孩子爸爸都是程序员,我们家对“少儿编程”是这么看这么做的
最近几年,儿童编程在国内也越来越热。世界即将走向人工智能的时代,小朋友的学习,自然也要与时俱进。不过这个问题对我们大多数人来说,还是挺新鲜和陌生的,比如:要不要学?什么时候开始学?怎么学?要不要报培训班,等等 ...
作为一个在家庭教育上崇尚“精简”的普娃妈(主要是懒),我对外面五花八门的儿童培训其实了解的不多。尽管这样,我也感受到了最近两年“少儿编程”好像挺有热度的。因为我和队友都是程序员出身,经常被其他家长朋友询问相关问题:你们教孩子编程了吗?或者发来链接,让我们帮判断下,某某课程好不好?
看看我们周围的同行朋友们,反倒没怎么表现出来对教孩子编程上心,好像还是更热衷于艺术培养,送孩子学钢琴、绘画、舞蹈的比较多。大概这就是“熟悉的地方没有风景”,又或者是一种“缺啥补啥”的心态吧。我儿子一个同学的妈妈,从事文艺工作,擅长书画,从来也不见她操心教孩子画画,倒是从幼儿园起就送孩子去学奥数了……
编程,要学吗?
在这个问题上,我们家的看法是,有机会让孩子接触下编程,挺好的!不过,也不是非要学不可。
因为自己学过,我认为编程确实可以训练一种特定的思维方式。我家队友在专业上比我走的更远,体会也更深。他总结说,这就是一整套结构化的思维方式。编程过程中,重复出现的、可以用同样步骤解决的部分,就可以抽象提取出来,进行模块化,以便复用。再复杂的软件系统,最终也是由大大小小的模块组成的。编程最核心的思维方式,就是明确问题、分析问题、把问题拆分、直到成为一个个简单明确的子问题,再逐一解决。他觉得自己因为多年从事编程,思维模式得到了很好的训练,对他后来工作范围延申到其他领域,都有很大的帮助。
他说的我是同意的,不过结构化思维这么底层的能力,肯定不是只能通过编程这一种特定的方式训练,否则“成功人士”还不都得是程序员了。
我还有其他考虑,一个是时间安排的问题,我们儿子才上小一,睡眠要先保证吧,户外运动要保证吧,再做做学校的功课,时间也就不多了。而且孩子有自己的爱好,喜欢画画,喜欢玩乐高,他自由玩耍的时间要给他留足的。
再一个是视力问题,考虑到学编程意味着一定要对着屏幕,孩子目前做学校布置的作业、学英语,已经有不少屏幕时间了,保护视力也是我的一个顾虑。所以我的态度是学不学两可。
编程,怎么学?
队友的动力比我强。除了为孩子,也有他个人对少儿编程教育这个新兴领域的好奇,很想看看我们同行们在这块做的如何。队友和大部分程序员一个样,具有工程师特有的好奇心和研究精神,之前家里装修一次,他就把家装行业研究了个底儿掉……亲儿子要学编程了,他更是投入进去做了一番深入调研。
他花时间找出各种儿童学编程的语言、平台、APP、课程,都做了一番了解,然后挑了以下这些他觉得还不错的APP,带着孩子玩。
他挑选的标准是这样的:
首先,明确目的,是让孩子体会编程思维,那么具体的编程语言就不重要,甚至越淡化越好,不要让孩子陷入语法细节里。
按这个要求,指令模块化、用拖拽方式交互的scratch就是最好的,确实也有大量少儿编程产品是基于scratch的。
其次,要考虑到孩子的接受能力,保护孩子的学习兴趣,学习产品要做的足够有趣,学习过程的设计要能频繁给孩子正反馈,也就是所谓的“游戏化学习”。这一点上,市面上国内外的APP也基本都满足了。下图是小象编程的界面:
其他被选出来的APP也都和这个类似,通过拖拉拽一些简单指令,指挥界面上的卡通小人完成一些任务,推箱子啊,过障碍啊,弯弯绕绕最终到达指定地点啊,基本都是这个套路。形式上都还是比较游戏化、交互也挺简单的。
第三个挑选标准,是做的够不够“深”。也就是教学内容够不够丰满、系统化,可以带孩子逐步掌握编程中那些重要的概念,走比较远。遗憾的是满足这第三个条件的几乎没有。
也许是因为少儿编程这个领域发展时间还不够长,这些APP,感觉都做的比较“粗浅”。经常只有简单的几关,引入一点基本指令,再加上初步的循环、条件分支、函数调用,最多还引入一点伪递归的概念,就完了。只能简单玩玩,大概体会一下编程是怎么回事,没办法学得深入下去。
只有一个国外的APP,我们觉得真的是特别好,叫Human Resource Machine (人力资源机器,也叫程序员升职记),不过并不是面向孩子的。其实人家自己的定位是一款解谜游戏,但评论里都在说这是“非常好的编程启蒙游戏”、“适合程序员学习”。我和队友玩过之后都觉得,它比那些专为学编程而设计的学习APP做的反而更成功,更能让玩家领会编程思想的精髓。我自己都很喜欢玩,要不是实在没空,很可能会沉迷。
这个游戏,完美符合了队友期望的那三个标准:
第一,有趣味性,可以实现学习游戏化。游戏设定是,老板给你交代一个任务,你要通过给手下小职员们下达简单指令,指挥他们完成你的任务(也就是编程)。随着一关一关完成任务,你就在这栋办公楼里层层晋升。
第二,引导足够清晰,学习梯度合理。新指令是逐步引入的,玩家可以通过体验和使用,充分掌握每一种指令的作用,编程零基础的人也可以在实践中快速领会。
第三,同时在这个APP里又有足够的深度和拓展。一开始,通过你的指令,小职员们完成的任务是简单的加减法,接着是乘除法,再到排序等比较高级复杂的算法,其实这也是在直观地展示计算机的运行原理,是真正非常底层和基础的编程。
并且,玩到后面,不仅是完成任务就好,你还要同时考虑你的实现方法运行速度快慢、存储器占用多少的问题,很多时候这两者是不可兼得的,你需要权衡。效率和开销的平衡,程序员都知道,这才是真正的算法设计思想啊,这游戏实在是妙了。
不过,这个游戏里是的指令操作是展示了点伪代码语言的,看起来一大堆符号,小孩子可能要稍微适应下。我儿子只玩了简单的几关,等他再大点,我一定会重新推荐他好好玩一玩。
除了APP,我们也尝试了一期线上编程课。线上课程是一个朋友大力推荐给我们的,她儿子十岁,特别着迷这个课,玩的不亦乐乎,在完成编程作业的过程中获得了极大的乐趣和成就感。
而我们家上课的感受是,如果没有队友坐在旁边,全程帮助,孩子自己是跟不上的。老师教的,他并不能完全理解,完成课程任务的过程也很费劲。就听队友不停地在指挥,比线上老师讲课说的话还多,而且时不时地嗓门就高上去了,“懂了吗”“听明白了吗”?!
据队友说,这课程没有体现出来面向儿童的认知水平,和教成人编程的做法差不多,概念灌输太快,实操引导不够。可能每个孩子的学习方式有差别,朋友的孩子正好适合这个课;又或者是人家大几岁的缘故吧,总之,我暂时还不想怀疑自己孩子的智商……
最终的结果是,队友找了一圈也没找到特别满意的教学资源。孩子玩了几个APP,上了几节线上课程,掌握了一点点思路,但他也没表现出强烈的兴趣(和他对乐高的态度太不一样了)。于是仅仅一两个月,学编程这事在我家就暂时搁置了。
也许等他到小学高年级,我们会再给他试试。再过几年,孩子的思维能力和接受能力会更强些,而且可能少儿编程领域也有更好的课程被开发出来了吧。
最后,给大家的一点小建议:
1. 编程思维有益,但也谈不上不可或缺。而且,要看每个孩子的年龄、接受度和孩子的兴趣。大家可以保持平常心,就把编程看做目前孩子课外培训中众多选择中的一种,根据自家具体情况决定。
2. 适合学编程的年龄,没有一定之规,每个孩子的认知发展水平有差异。但年龄太小学很多东西都是事倍功半,没太大必要。根据我家的尝试,以及小花生社区一些教师花友的分享,应该小学中高年级开始会比较合适。
3. 按我们这种在家的学法,家长是需要手把手指导的。编程要从零入门,靠孩子自己应该搞不定。如果家长自己没有基础,可以考虑借助外力,比如外面的课程。
4. 注意控制孩子的屏幕时间,健康第一,视力要紧!