这是一个在网络上很火热的话题。
对于这个问题,我想提问者想知道的是少儿编程的价值和必要性。
换一种表述可能会更清楚:
少儿编程到底有没有价值?
我家的孩子到底有没有必要去学习少儿编程?
如果我要让孩子去学习少儿编程,应该如何分辨好坏?
这个问题其实不是什么新问题了,知乎上有大把类似的问题。
这类问题让我想起了“小马过河”的故事,换句话说:不根据实际情景分析,不管回答“是”还是“不是”,都是耍流氓。
回到这个问题中,作为互联网教育行业的从业者,我希望根据我所了解的信息,提供一些参考和思考,至于最终的答案,需要你根据自己的情况作出判断。
我会从以下几个方面帮助你分析这个问题:
一、学习少儿编程的目的
在讨论“要不要学习少儿编程”的问题前,首先要考虑的问题是:你希望孩子学习少儿编程的目的是什么?或者说:你希望孩子从编程学习中得到什么?
据我的观察,目前常见的学习目的有下面四大类:
其他孩子都在学,我家的孩子也要学;
我家的孩子对计算机编程、数学等学科非常感兴趣,我希望顺应他的兴趣发展;
我希望孩子通过学习编程培养逻辑和计算等能力,帮助到日常的学习;
我希望孩子能够走上信息学奥赛的道路,给以后升学积攒资本。
1、对于第1类目的:跟风
我不推荐家长盲目让孩子参与编程学习,甚至不推荐参与任何兴趣班的学习。因为这样的跟风式学习并不能让孩子真正学习到有用的知识。
昨天学画画,今天学钢琴,明天学编程,什么热门学什么,这只会让孩子对各个领域都失去兴趣。我也不建议这样的家长继续往下阅读,这个时候你应该做的是和孩子好好沟通,了解他的兴趣和特点,为他选择一个真正适合他的学习方向并持之以恒。
2、对于第2类孩子:只是喜欢游戏
家长应该了解的是:孩子是真的喜欢编程,还是喜欢编程带来的“虚荣假象”?
许多学生说自己“喜欢编程”,其实只是喜欢玩电脑,或是将编程和电子游戏联系在一起。
不可否认,制作和游戏相关的内容确实能够吸引孩子尝试编程,但制作游戏并不是编程的全部。真正有用的编程必然涉及到复杂的分析和计算,如果学生只是把编程和“我可以玩电脑”联系在一起,势必会偏离主线。如果你的孩子并不是这样,而是真的喜欢编程,那么恭喜你,你可以放心大胆地让他去学习,他会做出许多超出你想象的成果。
至于如何学习,我会在文章后续的内容讲到。
3、第3类目的:试一试的心态
第3类目的是大多数家长最普遍的想法:反正学学也没坏处,而且在目前这个时代,编程确实是一种必要的能力,也能够培养孩子的逻辑和计算能力,况且,万一拿奖了,更是锦上添花。
对于这一类家长,我觉得可以让孩子尝试,但事先要和孩子沟通,也要让孩子明确学习的内容和目标。我们见过许多家长,自己觉得好,就直接给孩子报班,结果孩子在课堂上消极怠工,家长浪费了钱,学生浪费了时间,老师浪费了热情。
如果孩子对编程不抵触,就可以让她尝试,也可以在学习的过程中给他一些鼓励和支持。
4、第4类目的:竞赛
第4类学生的门槛是最高的,如果学生要踏入奥赛的道路,一方面,学生必须达到一定的素质,另一方面,要做好长期抗战的准备。这一类学生学习编程,最重要的是找到一个靠谱的老师。在这条路上,自学不是不可以,但机会非常非常小。
二、选择什么编程语言学习
我已经决定让孩子学习编程了,应该挑选什么语言呢?
这个问题,往往是家长在准备让孩子开始学习时,首先提出的问题。家长通常会认为语言有优劣之分,学习某些语言会“更好”,甚至有的家长会希望孩子学习一种“永远不会被淘汰”的语言。
我们必须首先明白的是,编程语言的更新速度非常快,一些语言可能2-3年就被淘汰了。但幸运的是,大部分语言的区别只在语法、格式和一些特定的功能上,通用的逻辑是变化很少的,例如条件语句、循环执行等。
因此,对于学习编程语言来说,我建议从两个方便去考虑:是否被广泛使用和是否适合学习目标。
一门语言被广泛使用,可以保证你在学习的时候不会缺少资料和资源,也意味着你在学习中遇到的问题会很快得到解决,你的学习成果能够有更广泛的应用。基本上你能在生活中听说的Java,Python和C语言等,都是被广泛应用的语言,这时你就需要考虑什么语言最适合你了。
在编程语言和学生的适配性上,我们可以从两个维度来评判:
1、对操作水平的要求:学生操作计算机和软件的熟悉程度;
2、学习内容的难度:难度的下限和上限。
以少儿编程中最常见的三种语言为例,从图中可以看出:Scratch对于学生操作水平的要求最低,但其难度的上限有限,适合第2类学生,特别是低龄的学生;
Python是难度覆盖面最广的语言,第2类和第3类学生的需求都能够满足,但对操作有一定的要求。
C++是信奥使用的语言,入门更难,更适合第4类学生。
记住一句话:没有最好的语言,只有最适合的语言!挑选一个最适合你的,坚持学下去,就会有收获。当你学习完一门语言后,再去转向其他语言的学习,你会发现你的学习成本已经大大降低,很快就能掌握一门新的语言。