小学生应该不应该学习编程
最近不少家长问到我这个问题,小孩子5,6年级了,是否应该学习编程? 之所以觉得自己完全有资格回答这个问题,我简单说一下我自己的背景。我是1985年的样子开始学习编程的,那年10岁。而且工作后一直从事软件研发工作,现在都还在写程序(编程)。而且近几年在从事成人的软件编程教育工作,作为TW的独立咨询顾问,深究过如何当好一个教练。当然,还有个小事情,我初中拿过奥数竞赛一等奖,如果没有记错的话,是成都市的第七名,而且当时没有参加过任何奥数班的培训。
说这些不是想作为油腻的中年男吹吹牛,而是想说明,我讲的,比微信圈你能看到的关于儿童编程的宣传文章要靠谱得多。也许这篇文章你看后可能会反感,但是,我确实是诚心想帮帮大家冷静地思考一下这个问题。
1:小学生学习编程有个坏处,学习编程后,数学成绩是会下降的,特别是针对奥数题。家长对这个问题要有清晰的认识。编程的大部分工作是用简单的算法解决复杂的问题,而这个算法有非常简单和固定的模式。编程需要的是清晰的逻辑能力和构造力(注意不是创造力)。而奥数是在训练一种构建数学模型的能力(这个点上有争议,以后我会花时间专门解决解释奥数的事情)。举个最简单的例子,我们计算从1加到100? 你会怎么算? 家长们会想到等差数列的公式,如果是编程,基本就是100次循环相加;其实还有更有意思的方法来解决这道题(如果此文阅读量上千,我会来解答这个问题)。当然,我也有亲身体会,学习编程3年后,我的数学解题能力是下降的,因为一遇到题目,我脑子想的是编程如何解决,想的是循环,是枚举。但是,这些算法你用笔是不可能在短时间完成计算的。我花了一年时间来解决这个问题,忘记编程的算法。你可以认为我笨,不过看看本文第一段,你的孩子又有多大机会比我聪明呢?
2:既然是培养创造力,编程并不是最好的方式。写作文,写剧本,玩乐高,绘画,都是培养创造力更好的方式。
3:计算机的体系结构在快速进步,神经元算法的芯片已经安装在iphoneX上。这是区别于现在绝大多数小朋友编程课程能够学到的冯诺依曼体系的编程方式。所以,现在学的,10年后也许根本没用。目前这套体系的本质思想是用逻辑运算来解决所有数学模型的问题,这其实是非常狭窄的一个解决问题的思路。
4:对软件程序员这个职业的预期。未来,软件肯定会渗透人们的方方面面。但是程序员(专门指编代码的)。。。。。。