最近几年,中国孩子增加了一项新负担:学编程。 这怨不得老师和家长,因为人工智能如天雷一般,正向我们滚滚而来,如果不想在未来被计算机淘汰,精通编程,就像现在的英语、语文、数学一样,是人在未来社会必备的一项技能。 作为一名在互联网行业沉浸十多年的从业者,写程序是我的一项基本技能,我今天结合自己的体会,给正在和将要学习编程的孩子家长几点建议。 编程很有趣,别把它当成多复杂的事儿很多人把编程当成是只有聪明绝顶的天才才能做的事情,而事实并不是这样。写程序不算高科技,而一般的程序,也不需要开发者拥有多高深的数学水平。程序本质上不过是一堆让计算机执行某些行为的指令。孩子学习编程可能比成年人学得更快,因为孩子对游戏更有兴趣,兴趣是驱动孩子学习新知识的第一动力。 作为家长,千万不要把你对编程的畏难情绪传递给孩子,不管你懂不懂编程,你都要告诉孩子:编程其实很简单。 低龄孩子学Scratch,大孩子学PythonScratch是麻省理工学院(MIT)专门给小孩子设计和开发的一套基于浏览器的图形化编程环境。用Scratch编程,不太需要开发者编写程序代码,只需简单拖拽就可以完成编程。Scratch深受乐高机器人编程方式影响,把程序设计的相关原理和规则,通过编程组件的简单拼接组合教给孩子。访问 https://scratch.,任何人立即就能在浏览器上开始编程。 Scratch 适合没有任何编程基础,甚至还不会在电脑上打字的孩子。我个人认为5岁左右的孩子就可以开始学习Scratch。当然,对于6-13岁左右的孩子,甚至成人,以Scratch作为编程的入门都没问题,图形化的编程界面,大大降低孩子对编程这件事的恐惧心理。 十岁以上的孩子,如果想学习“真正”的编程,Python是非常好的编程语言选择。Python是当前计算机行业非常流行的一门通用型高级编程语言,它是很多行业进行数据处理、自然语言处理、机器学习方面的利器,它也可以用来搭建网站和各种应用。Python虽然很强大,但学习起来并不复杂,因为它的语法简单、易读性强、还拥有人数众多的开发者社区,因此,Python也特别适合作为学习编程的第一语言选择。 当小孩子对Scratch的限制感到厌倦,Python是他们下一步编程学习的最佳选择之一。 让孩子用代码把手“弄脏”前一阵观摩一个给小孩子的编程课,老师先用大量计算机和程序设计的理论,把孩子们说晕。我对这样的教学方法,深深不以为然。计算机科学本身虽然是一门理论性很强,对智力要求极高的学问,但编程本身却是实践性很强的技能。提高编程能力的最佳方法,就是跳到源代码里,一行行读,一段段调试,唯有这样,才能快速进步。 Python提供了方便的命令行交互(Shell),通给命令行,孩子就可以给计算机发送各种高指令。 教孩子编程,讲讲理论很容易。孩子就算听懂了变量、循环、函数、数组等概念,坐在计算机前,他们还会束手无策。因此,和孩子肩并肩坐在一起,看他们一行行写出代码,是指导孩子编程的最好方式。 网上有大量的代码例子可以学习参考。对初学者,找一些相对简单的代码(200行代码以下),丢给孩子,让他们阅读、理解、修改,然后去执行、调试、不断试错。 开发游戏项目多数孩子对视频游戏有着天然的喜爱,因此,鼓励孩子开发游戏项目,可以保持孩子对编程这件事的热情和投入。“阿尔法狗”的发明者就是从小时候开发游戏项目,热爱起了编程。 不要指望孩子能开发出多好的游戏,用游戏激励和保持孩子对编程的热爱才是我们的初衷。杰出的游戏,绝对不是一个人能得出的,它需要一个规模不小的团队来开发和支持,所以,家长要有合理的预期,记住自己的初衷。 给孩子准备一台能编程的电脑编程需要电脑,为孩子准备什么样的电脑呢?你不必花大几千为孩子配备高端的电脑,一台用树莓派(Raspberry Pi)和一个二手显示器,不到1000块钱,就足够孩子学习编程了,这个配置的性能甚至超过了不少便宜的笔记本电脑。iPad不适合孩子学习编程,因为iPad上很难跑Python开发环境。 有些家长选择通过LEGO机器人让孩子学习编程,这个选择虽然不错,但这种学习编程方式开销不低,孩子还要花费大量时间在乐高积木的拼插上,更麻烦的是,Python又不是LEGO编程的“自然”语言,因此,对多数孩子来说,直接在电脑上进行编程,是最直接、费用最低、距离目标最近的方式。 跳过计算机科学有些家长或老师或许自己精通计算机编程,因此,他们急于把更深层的计算机科学的知识传递给孩子。面向对象编程、递归、二叉树、设计模式等或许是专业人士喜欢探讨的问题,但过早让孩子陷入到这些更为高阶的概念中,可能会彻底击毁孩子学习编程的兴趣,因为这些问题已经脱离了他们的当前的知识结构。孩子需要更高阶的数学和逻辑做支撑,才可能理解那些概念。 需要孩子避免的知识包括:
从学习编程到精通编程是一个长期的过程,家长切忌心急,没什么比保持孩子对编程的乐趣更重要。最后一句,如果真希望孩子能在编程上有更大更远的发展,让孩子学好数学,学好数学,学好数学。
|
|