先说结论,儿童编程完全没有必要,特别是小学阶段的儿童编程,有那个时间不如去运动更适合小孩。
1.初中以下的儿童所拥有的数学知识和逻辑思维没法支撑其编程所需要的基础。对于低龄儿童学习编程,本来课堂学习时间就不少,回家还有家庭作业,和看手机时间,再学习编程时间长了对眼睛不好。因年龄小,逻辑思维跟不上,会有很多东西学不会,最多把少儿编程当作动画片或其它电子产品的替代品。
2.少儿编程与传统的编程语言还有这很大的区别,Scratch等少儿编程是积木式编程,不用打字,通过拖动积木的方式编写代码,极大的简化了编程的门槛。但Scratch只是一个单纯的学习软件,没有相应的配套软件,所以不能用于生产环境。说实话,Scratch更像一款游戏,只不过和编程有点关系而已。Python、C、C++、JAVA、C#等传统的编程语言是需要用字母的方式编写代码的,但是学习人员有一定要求(比如数学和逻辑,你很难指望一个不懂排序,剂量单位,与或这些基础知识的人能理解编程),最简单一个事实,你在现实里让一个只有初中文化的成年去学c或c++编程,有几个能顺利学好的?
3.所谓的图形化编程,根本不是真正的编程,既没法在以后的学习和工作中继续使用,也没有成体系的比赛和认证,对于孩子的成长(比如加分或特别技能)毫无用处,国内外哪个学校会把“能使用Scratch编程”作为入学加分项?虽然少儿编程有相关考级,但在升学过程中没什么作用。现阶段对升学唯一认可的比赛是信息学奥赛,可以保送大学名校。而学习传统编程语言除了最基础的语法,还有更高级的语法,这些高级语法更加抽像,理解起来相对较难。传统编程语言是开发软件,生产软件,有相应的配套软件来完成一个应用系统的开发,比如:服务器、数据库及非常多的中间件,只有学习传统编程语言,才会对以后的考试和工作有用。
4.小学阶段的思维训练,有很多可以代替所谓的图形化编程,根本没必要给小孩增加负担,小学阶段提高小孩的逻辑思维和学习能力的方法很多,很多比单纯的图形化编程更好。
5.如果想把儿童编程作为一个启蒙教育,小学阶段可以尝试给小孩玩玩树莓派或arduino,就当玩具玩,还可以提高动手能力,但是这个对家长或学校要求高一点,毕竟这个是真正的编程,但是能引起孩子的兴趣,比如当他用树莓派控制一辆玩具车或arduino控制家里的灯的时候,总比只在电脑上写个hello world好得多。如果孩子非常感兴趣,初中以后可以尝试Python、C++等传统的编程语言,前提是孩子非常感兴趣。如果孩子不是非常感兴趣,不建议学习传统的编程语言,因为从个人学习和工作来看,做程序员除了学习能力以外,还和性格有很大关系,好动的小孩或话多或外向型的小孩并不太合适当程序员。另外需要着重说明一下的是:C++是信息学奥赛指定的唯一编程语言。
6.在程序员眼里,少儿编程太简单了,语法也少得可怜,高级点的语法根本就没有。程序员眼中的“简单”是相对于工作用到的知识而言,程序员说的“没用”也是以是否可以达到一个程序员的基本要求而言的。在这个评价体系下,少儿编程确实没用。
图形化少儿编程与传统编程有一定的关联,但少儿编程相关的知识与传统编程相比,差距非常大的,从深度和广度来说,与实际应用中的编程不是一个东西。孩子的未来是无限的。孩子还小,有更大的世界,更广阔的空间,有更多的时间去学习、去思考、去选择、去热爱生活、程序员只是万千行业中的一个职业。