聊聊让孩子学编程的那些事儿

[复制链接]
楼主: 静心可爱
发表于 2019-1-27 11:36 | 显示全部楼层 |阅读模式
学编程现在似乎挺热门的,特别是大家最近被WWDC的最小开发者刷了屏。还记得我小时候,正是**提出“计算机要从娃娃抓起”的时候,老师说大家都应该学会计算机,否则就是新时代的文盲——说实话,这个说法现在应验了,因为不会用计算机真的没办法工作。那么不会编程会不会就是下一个新时代的文盲呢?这我不好说,我只能说编程的意义并不仅限于编程本身,而且作为一个热爱编程的,也在靠写代码混口饭吃的爸爸,我觉得让孩子学学编程挺有意思的。

我现在是一个在家带两个娃的准全职爸爸,在此之前从事软件开发、技术和管理咨询方面的工作,也翻译出版了不少计算机技术方面的书籍。我自己小时候很早就接触了编程,大概是6岁的时候,我表哥家里有一台“中华学习机”,那是一台国产的Apple II兼容计算机。当时其他一些号称“学习机”的玩意儿(比如小霸王),其实都是插红白机卡带的,就是披着计算机外壳的游戏机。中华学习机才是正经的计算机,它可以编写和运行BASIC程序,有趣的是,它的数据只能用声音信号存储在磁带上,每次保存程序就按录音机的录音键,读取程序就按录音机的播放键,那个仪式感特别神圣。

那时候我在学习机上写了很多小程序,比如跟计算机猜拳的程序、比大小的程序、算日期的程序等等。上小学之后,表哥家里有了一台486的PC机,于是可以用更强大的QBASIC编写更复杂的程序。上初中之后,自己家里也买了电脑,就开始用Visual Basic写Windows软件,还参加过NOI(国家信息学奥赛)。这些经历在我的同龄人当中都算是比较稀有的,但也正因为如此,遇到问题我也找不到什么人去请教,上高中之后忙于学业,没有能深入钻研数据结构和算法,算是个不小的遗憾吧。

关于教孩子学编程的话题,我在其他地方也做过一些分享,在这里我整理几个常见的问题,用问答的形式写一写自己的体会。

1. 编程能培养孩子的哪些能力?

编程是一件很有趣的事情,我觉得主要能培养这些能力:

1) 构思能力。编程是一种“先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。我见过很多父母给孩子买“迷宫书”,其实走迷宫也包含这个要素,有的孩子会先在脑子里走一遍,然后一次性下笔把路线画出来,这就是一种构思和模拟能力的体现。

2) 逻辑能力。编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在逻辑思维中有个词叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。举个例子,交通信号灯有红、黄、绿三种状态,如果你在写程序的时候只考虑了红灯和绿灯的情况,没考虑黄灯的情况,那就不“完备”了。此外,条件还会涉及到“与”、“或”、“非”等逻辑操作,比如说,“当信号灯为红色或黄色时”和“当信号灯不是绿色时”这两个描述应该是等价的,这对于孩子来说都是非常好的逻辑训练。

3) 模式识别能力。在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1+5)×4相当于(1+5)+(1+5)+(1+5)+(1+5),其中每一个(1+5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。

4) 分解问题的能力。一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。举个例子,比如要造一辆汽车,我们先要把汽车分解成很多小的部件,比如发动机、变速器等,这些部件还可以继续分解成更小的部件,我们需要先造好每一个小部件,再把他们组合起来变成一辆汽车。

5) 调试除错能力。任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里面包含的能力很多,比如抗挫折力、观察力、专注力等等。

总之,通过学习编程所培养的能力并不只是适用于编程,而是可以在很多方面派上用场。

2. 几岁可以开始学编程?每个年龄段都学些什么?有什么推荐的App和书?

按照我的经历,是6岁开始接触编程的,但现在我们有各种可视化的编程环境,还有各种编程游戏App、桌游和玩具,所以还可以往低龄推移。我家哥哥是4岁开始接触简单的编程游戏的,接受度非常好(当然,他的抽象思维能力是比较超前),4岁应该是一个可选的起点,再小的话思维能力还达不到,揠苗助长也没意思。另外还是那句老话:兴趣第一。如果孩子没兴趣,跟逼他练钢琴也没什么两样。

关于不同年龄段学些什么,我只能大致给点建议:

4~6岁:玩一些编程小游戏,比如用指令控制一个角色到达终点,绕过一些障碍物,用循环来完成重复任务等等。我家哥哥玩过的不错的游戏包括:Box Island、LightBot Jr.等。
7~9岁:用一些可视化编程工具来完成一些复杂的任务,比如Scratch、AppInventor等。也可以挑战一些复杂的编程游戏,比如Cargo-Bot、Human Resource Machine等。
10岁+:学习一种真正的编程语言,比如Swift、Python等,尝试编写一些软件,初步学习算法、数据结构以及面向对象编程。也可以尝试一些硬件编程,比如用Arduino做个小机器人。
上面这个建议中,我认为对于接受度好的孩子,可视化编程的部分可以跳过去,那个不是学编程的必经阶段。或者这么说,如果你是7~9岁才开始入门的,那么用Scratch之类的东西没问题,如果你4岁已经入门了,那么不必按部就班地上Scratch,直接奔着Swift、Python这种正经编程语言去就可以了——就好像学自行车不是一定要用辅助轮一样,有些孩子不用辅助轮反而学得快。

关于书,我只看过两本,一本叫《Scratch少儿趣味编程》(这本书最近还出了2),一本叫《父与子的编程之旅:与小卡特一起学Python》,都是国外引进的书。其他的书欢迎大家推荐吧,我只能说我看得比较少。

3. 家长不会编程,怎么教孩子学?

说实话,就4岁孩子玩的那些编程游戏,再不会编程的家长,看一眼也都能玩,怎么可能智商还不如4岁的娃呢?所以就启蒙来说,我不相信哪个家长不能胜任,主要有没有兴趣和时间。当然,到了正经学编程语言、算法和数据结构这些东西的阶段,如果家长不会编程,那肯定是辅导不了了,但反过来说,到了这个阶段,孩子都可以自主学习了,也可以通过交朋友、参加兴趣班等方式来学。

4. 现在社会上出现了一些编程培训机构,要不要让孩子去上?

关于社会上的培训机构,我只能说虽然最近冒出来一些,但比起学英语学画画学乐器的少多了。乐高机器人有,教Scratch的我也听说过,最近英孚还搞了一个用Swift Playgrounds的夏令营,不过这些一般都针对比较大的孩子。关键是这些培训我都没实际考察过,也很难给出个评价。我觉得对于不具备相关知识的父母来说,还是可以让孩子通过参加这类培训来启蒙和培养兴趣的。

就我从几个业内朋友了解到的情况看,这类编程培训目前还都比较初步,主要的困难在于教师资源的缺乏。和其他一些培训不同,编程培训的教师很难“速成”出来,而本身做这方面工作的人很少会出来做教孩子编程的工作,而且这样的人也很贵。现在也有很多专业的“码农”转身出来创业做青少年编程培训,但自己上阵也只能做一些小众的培训,要想做大一样面临“老师难找”的问题。

5. 学编程是不是一定要数学好?

首先应该搞清楚的是,数学和算术是两码事,孩子对数字敏感不敏感,会不会做加减乘除,跟能不能学好编程关系不大,跟能不能学好数学关系也不大。

编程和数学确实是相辅相成的,因为编程所需要的很多能力和数学所需要的能力是相通的,比如逻辑完备性、模式识别等等;编程中的一些概念也是来自数学,比如函数;而到了学算法的时候,就会用到更多的数学思想和工具;至于最近特别火的机器学习,那更是纯数学模型。

对于这个问题,我只能说,编程和数学应该是相互促进的关系,学编程有利于更好地学数学,而学好数学当然也能够帮助你更好地学编程。

6. 学编程要花很多时间在屏幕前,担心影响视力怎么办?

这个问题很大程度上是个误会。

近视的最大影响因素在于基因,环境因素的影响相对较小。在环境因素中,目前认为相关性(并非因果性)最强的是户外活动时间,户外活动时间长有助于减少近视的发生率,这可能和阳光的刺激有关。除此之外,无论是看书的距离、姿势和时间、光线的明暗,以及电子屏幕的使用,都没有证据表明这些和近视的发生率有关,网上的很多文章其实都是吓唬人的,或者是犯了因果倒置、选择偏见(cherry picking)之类的逻辑错误。

因此,只要不是户外活动,无论是看书、玩玩具还是使用电子设备,这些都是划等号的,如果说认为看书就是比用电子设备要“不伤眼”,那只能是自欺欺人。我家不限制孩子使用电子设备的时间,基本管够,中间提醒休息,但会确保每天户外活动的时间。

7. 有哪些编程方面的比赛?

最有名的当然是国际信息学奥赛(IOI),这是仅次于国际数学奥赛的规模第二大的国际青少年学科竞赛,也是编程领域最高级别的国际比赛。在中国有相应的国家信息学奥赛(NOI),我在初中和高中的时候也参加过,成绩一般(算法没学好嘛)。这项比赛是偏重算法的,对数学的要求也比较高,但如果在NOI中拿奖,就会被很多一流大学mark。

除了编程比赛,还有很多机器人方面的比赛,不过我没太仔细了解过。我所知道的大概就是乐高赞助的国际机器人奥赛(IRO),中国应该也有相应的国内比赛。机器人比赛考察的能力更宽泛,但对算法的要求就比较低——或者说,信息学比赛更偏重Science,机器人比赛更偏重Engineering。至于大学会不会关注这类比赛,我就不清楚了。

比赛不是学习的目的,如果有能力的话去挑战一下也不错。

回复

使用道具 举报

发表于 2020-1-28 16:49 | 显示全部楼层
明人不说暗话,你真的帅,看好你哦!
回复

使用道具 举报

发表于 2020-10-10 06:00 | 显示全部楼层
支持一下吧  
回复

使用道具 举报

发表于 2020-10-10 06:00 | 显示全部楼层
呵呵,明白了  
回复

使用道具 举报

发表于 2020-10-10 06:00 | 显示全部楼层
慢慢来,呵呵  
回复

使用道具 举报

发表于 2020-10-10 06:00 | 显示全部楼层
我想要`~  
回复

使用道具 举报

发表于 2020-10-10 10:09 | 显示全部楼层
谢谢楼主啊!
回复

使用道具 举报

发表于 2020-10-10 10:09 | 显示全部楼层
支持你加分  
回复

使用道具 举报

发表于 2020-10-10 10:09 | 显示全部楼层
不错,看看。  
回复

使用道具 举报

发表于 2020-10-10 10:09 | 显示全部楼层
顶你一下.  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩户外推荐

《儿童益智手工大全:创意涂鸦》[PDF]

2012-08-27 其他早教资源

《童谣三百首》下载浙江少儿版

2012-07-22 童话故事绘本

《倒霉熊》(backkom)DVDRip.x264-MP4.494x2

2012-08-17 其他早教资源

《未安集:许嘉璐说教育 》扫描版[PDF]下载

2012-12-16 父母必读书籍

《单词忘不了》-动画-官方正版 8DVD 儿童英

2015-08-31 双语不用教

《塑造小学生乐观自信的幽默故事》扫描版[P

2013-05-19 其他早教资源

保护男人生命最重要的食物

2012-08-29 分娩期

《最受欢迎日本料理完全图解》扫描版[PDF]

2012-12-24 分娩期
Copyright © 2022  爱学帮     ( 粤ICP备13042149号 )