最近因为工作关系,接触了一些做编程培训的机构,有挂着微软牌子的,有挂着大疆牌子的。总体来说,都比较差,课程体系差,教学水平也不高。正好今年我儿子自己学swift playgrounds学的还不错,我觉得还是可以聊一点我的经验。

可能我教编程不行,但是判断一个课程行不行还是有点发言权的。

先说大的分类,目前面对儿童(小学初中)阶段的编程,主要分两大类:一是scratch这种图形化积木工具,一是python,c++这种代码。

首先,scratch这种其实不能算真正的编程, 它的功能非常有局限,能够实现的逻辑结构很简单。与其说它是一个编程工具,不如说是一个适合小朋友的创作工具。稍微复杂点的逻辑结构,用scratch表现出来,几乎没有任何可读性和可调试性。可能对于三年级之前的孩子,作为培养兴趣的工具还是可以的。它的学习深度不足,课程内容让我来教的话,半年足够了,剩下来的就是重复不同的游戏换皮而已。并且,学习scratch对正式学习代码编程没有可见的好处——对于中国孩子来说,学习代码编程最大的门槛不是逻辑思维什么的,而是英文,前期90%的时间都花在和拼写错误做斗争上了。scratch显然在这点上毫无帮助。

市面上还有一堆国产的图形化编程软件,每家都有自己的课,但是有一家算一家,都是scratch换皮。技术背景强点的,换皮做的好一点,功能加的多一点。例如下面这个mind+。它其实是在scratch基础上增加很多的硬件编程的接口,适合初阶学习嵌入式,无人机什么的。

其实在国外有很多更适合作为编程入门的工具,我用过的有结合硬件编程的微软makecode平台,下面的截图是makecode的microbit编程工具界面,可以在积木、js和python之间切换

它的一个特别好的地方是,即便选择了python或者js,也不需要自己输入所有的代码,具体的命令语句是可以和积木一样拖拽的,只要填上正确的参数就行了。很大程度上缓解了英文代码输入的问题。

另一个我比较喜欢的是google出的blockly平台,功能更加强大,也更偏向算法编程这块。同样有积木和代码两种形式。前几年非常火的安卓手机编程工具app inventor就是基于blockly的。https://developers.google.com/blockly

作为一个开源的平台,blockly非常适合拿来做二次开发,在官网上有非常非常详细的资源可以使用。

最后,是我个人觉得特别适合家庭使用的swift playgrounds,详细介绍在苹果官网有,以游戏闯关的形式帮助孩子从0开始掌握基本的swift语法和一些常见的算法逻辑,数据结构。

虽然它只能运行在mac或者ipad上,但是对硬件要求不高,我家里的2018年的ipad air和2012年macbook pro乞丐版(换了固态硬盘)都能够流畅运行。

总体来说,学编程的主要门槛不在编程,在语言和数学。孩子有兴趣有能力就可以学,尤其建议自学。