没有做过少儿编程的事情,只是平时的一些感觉。
我在初中的时候学过BASIC,回过头来看它是一种足够简单的语言,但是足够有趣。当时只是在学习机和文曲星上面写一些简单的小程序,输出文字之类。
小朋友学编程,需要环境和语言足够简单,能做出来的东西也要足够有趣,有看得见摸得着的结果。这样形成最好的反馈循环,提升学习兴趣。
跟C,C++等主流语言相比,Python完全有潜力做到这一点,但是需要依赖包装和整合。初学编程,暴露的东西要尽可能少,灵活性也要尽可能少,抽象的概念也要少,比如一定不能去强调什么是值什么是引用,什么是类什么是闭包。强调这个是因为跟BASIC不一样的是,Python又太强大了,包罗万象无所不能,不像BASIC一样真的很basic。所以我感觉初期学习,教材必须强加局限,隐藏细节。比如放在一个极其简单的IDE里,封装好输入输出,做好语法上的引导。最后,学Python更要不得的是一上来就瞄着AI之流的主题,在我看来非常急功近利,本末倒置。
顺便提一句Scratch。可视化编程固然有优点,但是编程需要训练的本来就是抽象思维的能力。学数字可以用画满苹果和橘子的书,但是哪怕是到了四则运算这些概念以后,数学也不得不脱离直观图像,更注重抽象概念在脑海里的内化吸收。这一点上Python的适用性其实是更广的。个人感觉,Scratch可以作为感性入门的方法,但是一旦到严肃学习的阶段,还是回到一行一行的代码比较好。毕竟编程最让人兴奋的应该是我们用代码来控制界面的行为,而不是让一个花里胡哨的界面控制我们的行为。