用计算机编程
为孩子赋能

应对 – 学习编程的好处

应对 – 学习编程的好处

学习编程, 不仅可以提升孩子未来的社会竞争力, 也可以为当下的升学竞争添加筹码. 不仅可以提升外在的竞争力, 也可以增强内在的思维能力和自信心

1. 收获乐趣

计算机技术广泛而深刻地影响着日常生活的方方面.

孩子出门上学前使用”彩云天气”查看天气预报, 等公交时使用”车来了”查看公交车位置, 平常使用”微信”和父母朋友保持联系, 周末时打开 “Minecraft” 和朋友一起组队建造城市… 所有这些产品的背后都是计算机程序在支撑.

不过, 在上面的场景中, 孩子只是一个”使用者”和”消费者”, 他并不知道产品背后的工作原理, 也不知道如何编写程序为他服务.

但是, 想象一下, 如果我们的孩子成为产品的”创造者”呢?

一旦掌握编程, 他们就可以将脑袋中迸发的无数创意, 落地到真实生活中 — 他们可以设计程序辅助学习、制作动画表达想法、设计游戏自娱自乐、搭建网站树立个人品牌、编写脚本完成工作学习中的重复操作…

学习编程, 不仅仅可以让他们看透计算机产品背后的原理, 收获智识的乐趣, 还能够帮助他们实现创意, 收获创造的乐趣.

这个过程并不轻松, 但足够有用有趣, 这能够吸引他们不断克服困难、探索学习.

2.锻炼逻辑思维能力

“编程”是锻炼逻辑思维能力的有效载体:

谷歌公司将”编程思维(Computational Thinking)”概括成 4 个部分: 分解问题、模式认知、抽象思维、算法设计. 通过这 4 个步骤, 一个棘手的复杂问题先被拆解成一系列容易解决的小问题; 再对每个小问题进行抽象、识别、搜索解决方案, 然后形成解决思路; 最后, 设计步骤、执行, 直到问题解决; 如果期间出现问题, 仍然按照”分解问题、模式认知、抽象思维、算法设计”进行排查和调试.

因此, 通过编程, 孩子们可以一直沉浸在”发现问题、提出假设、进行检验、获得经验”的反复迭代中, 这个过程直接锻炼了他们的逻辑推理能力.

编程的思维锻炼-scratch积木风格-

可能有家长会问, “奥数班”更能提高逻辑思维能力, 为什么要通过编程呢?

毋庸置疑, “数学”是对现实世界的高度抽象, 它的确能够极大提升学习者的逻辑思维能力. 但是它的问题, 恰恰在于”过于抽象”, 导致很多学习数学的人感觉自卑甚至厌恶, 相信很多家长对此深有体会.

所以, “数学”在理论上可以锻炼逻辑思维能力, 但是在实践中, 却不太适合. 而”编程”的优势在于, 能够连接抽象和具象, 成为锻炼逻辑思维的有效”载体”:

“编程教育”不同于分科治学的学科教育, “编程”是多学科的融合, 涵盖了科学、技术、数学、甚至艺术, 是一种以”解决问题”为导向的综合实践活动. 它能够在更贴近现实应用的场景中锻炼思维能力. 这种与现实世界的紧密联系, 可以让孩子切身体会到学习的意义和作用, 从而激发持续的兴趣和动力

因此, “编程”是把抽象的逻辑思维训练转化为具体操作的有效”载体”.

3.获得掌控感和自信心

实际上, 编程相比于数学, 还有个非常大的优势: 能够获得即时的反馈 — 编程完毕, 马上就能得到运行结果.

即时反馈

近年来, 科学家提出“刻意练习”的学习方法. 这个方法的效果得到了广泛验证. 而”刻意练习”的一个重要组成部分就是”即时反馈”1.

在”做事”和”成果”两者之间建立清晰的、即时的因果关系, 会帮助孩子清晰地认识到自己采取的行动是有效的还是无效的, 从而可以马上调整. 这不光能提高学习效率, 还能极大地调动孩子的学习热情.

要知道, 很多工作和学习是无法马上得到反馈的, 这也正是很多人在工作和学习感受不到意义的原因.

拿我之前从事的”工程设计”作为例子:

我们在设计工厂时, 很多时候都是遵循之前项目的惯例. 有时候, 我们了解这些惯例背后的理论依据和计算支持, 有时候它真的就只是惯例而已, 我们不知道它的依据是什么, 但是又不敢进行调整.

为什么?

第一, 因为设计是龙头, 设计变动会影响工程的方方面面, 包括安全、质量、资金、进度;

第二, 因为反馈周期太长. 即使我们在前期进行多方讨论和推演, 进行大量计算和模拟, 仍然需要等待工厂落成后来检验设计想法. 而这个等待检验的过程非常漫长, 我们需要等待施工建设完毕、等待试运和投产、等待投产运行一段时间后, 才能收集到工厂实际运行起来的情况, 也只有这时候, 我们才能检验之前的想法对不对;

而编程不一样, 它可以立即获得反馈. 编程完, 马上出结果. 我们立马可以知道自己写的代码是对的还是错的, 立刻可以进行分析调整.

传统行业的工程师不可能瞬间让运转的工厂停止下来, 就只是为了检验一个想法. 但是程序员可以! 他可以拷贝整个网站的代码, 可能就几百兆体积. 在个人电脑上, 就可以随意检验自己的任何创意和想法, 而且借助”版本管理(Version Control)”工具, 可以随时撤销任何修改和变动、随时回退到任意版本!

如果程序运行出错, 计算机会给出错误的可能位置和修改的建议. 如果程序运行正确, 又可以让我们不断体验到”成就感“. 整个周期非常紧凑, 我们能切实地感受到”自己的所作所为能够直接影响最终结果” — 这种感受就是”掌控感”, 而”掌控感“又能极大地提升自尊和自信!

“掌控感”对于还未成年的孩子来说尤其珍贵. 因为, 孩子还处于被父母和老师掌控的阶段, 能够体验”掌控感”的机会少之又少, 而编程恰恰能够提供这样的机会 _^

掌控感

此外, 掌握编程是一件很酷的事情. 在大家心目中, “编程”是极客的标志, 是智商高的体现. 如果我们的孩子学会了编程, 那么其它孩子肯定会羡慕他甚至有点崇拜他, 这从外部因素上也间接增强了他的自信.

所以说, 编程是一门能够让孩子获得即时反馈的活动, 孩子可以从中获得掌控感, 进而增强自信心.

4.提高升学竞争力

学习编程还有很现实的帮助 — 能够帮助孩子提高升学竞争力:

  • 小初高的升学面试: 考取好的小学初中高中往往需要面试, 在优秀的学科成绩之外, 编程会是个亮眼的加分项
  • 高考: 作为高考改革实验田的浙江省, 在 2017 年已经将”信息技术”纳入了高考范围 (作为高考 7 选 3 的选考科目中的一门, 与传统的”物理、化学、生物、历史、地理”具有同等地位)
  • 竞赛:
    • 全国青少年信息学奥林匹克竞赛(NOI): 优胜者可以保送到北大清华交大北航这类一线大学 (通过信息学奥赛获得保送资格的人凤毛麟角. 不建议以此为目标对孩子揠苗助长 -^ )
    • 数学建模竞赛: 美国的”高中数学建模竞赛”以及”大学数学建模竞赛”受到全世界热捧, 数学建模竞赛中获奖的团队, 在升学就业中将拥有极高含金量的敲门砖. 而一个数学建模参赛团队的最小组成就是三个人:一人擅长数学、一人擅长编程、一人擅长英语
  • 大学: 本科毕设和研究生阶段, 如果你的论文中结合编程进行数据处理, 会极大地提高项目含金量

需要提醒的是, 如果你的孩子在读高中, 那么不宜在编程上投入太多时间. 对于高中阶段的孩子, 可以接触编程, 但不要投入过多精力. 毕竟, 高考是人生路上重要的分岔口, 而高考科目才是这段路程上的指挥棒

5.提高社会竞争力

社会在剧烈变革, 但体制下的教育改革必然是渐进稳步的. 面对互联网大潮对传统行业的冲击, 面对不断临近的人工智能, 我们的孩子需要如何面对 10 年 20 年后的竞争?

5.1 编程教育是体制教育之外的有益补充

前清华大学校长陈吉宁在和 Scratch 编程之父 Mitchel Resnick 的交谈中, 谈到中国教育的弊端和展望2:

中国的教育体系面临着严重的问题, 不仅仅是在大学层面, 而是贯穿了整个教育体系. 中国的教育系统并没有让学生做好准备, 以满足不断变化的社会需要.
从学生的考试成绩来看, 这个问题是看不出来的. 事实上, 按照传统的评价标准, 许多中国学生表现得非常好. 在清华大学, 几乎所有的学生从小学到高中都取得了优异成绩, 许多学生在清华大学继续得到 A. 我们可以把他们称为” A 型学生”.
许多” A 型学生”, 尽管考试分数很高, 却缺乏在当今社会取得成功所需要的创造力和创新精神. 中国需要一种新型的学生, 暂且称之为 “X 型学生” — 他们渴望自己定义问题, 而不是简单地解决教科书上的问题, 他们愿意承担风险, 尝试新事物.

所有中国家长都能看到陈吉宁先生提出的这个问题, 也都清楚地知道, 我们的孩子需要培养冒险精神和创新精神, 否则很难应对未来高速变化的社会, 我们的问题在于”我们需要如何培养孩子冒险精神和创新精神?”

“编程教育”并不是解决这个问题的”全部答案”, 但是它确实是培养孩子冒险精神和创新精神的”部分答案”:

  1. 我们前面提到”编程能够提供即时反馈”. 这种”即时反馈”除了让孩子切实体会到”掌控感”之外, 还能帮助他们建立宝贵的”试错精神”. 而”敢于试错”正是”勇于冒险”的前提.
  2. 中国学生缺乏创新的一个原因在于, 学科之间相互割裂, 学生缺乏综合运用的训练. 而”编程”恰恰能够搭建各个学科之间的桥梁, 因为”编程”不是”学科”, 而是”工具”和”实践活动”. 通过”编程”, 我们能够将科学、技术、工程、艺术、数学融合在一起. 就像美国的 STEAM 教育, 并没有专设一门”编程”学科, 而是将”编程”作为载体融入到科学、技术、工程、艺术、数学教育当中.

5.2 “编程技能”本身是一项有力的武器

2016 年中秋节前夕, “阿里程序员写脚本抢月饼”的事件3轰动一时, 舆论关注的是道德问题, 但是换个角度来看, 懂编程的人的确掌握了强大的武器, 他们和普通人的区别, 就如同《哈里波特》里”魔法师”和”麻瓜”的区别. 懂编程的人和不懂编程的人竞赛, 就像玩游戏开了作弊模式, 编程就是他们的”金手指”和”魔法棒”.

哈里波特 魔法棒

我的第一份工作是工程设计, 老一辈的工程师使用纸笔来设计图纸, 他们一辈子只能完成几个项目, 之后, 新一代的工程师掌握了 AutoCAD、Excel、CADWox、AutoPlan 等计算机辅助设计工具, 一年就完成了几个项目. 效率的提升是上百倍! 掌握计算机, 让新一代工程师的工作效率远远超越了老一辈工程师.

那么想象一下, 如果我们的孩子能够掌握编程来指挥计算机为他做事, 那么强大的计算机就成为他手上有力的武器, 帮助他提高工作效率、提升社会竞争力.



  1. “刻意练习”有 4 个特征: 1. 在”学习区”而不是”舒适区”练习; 2. 分解步骤, 让难度略大于能力; 3. 即时的反馈; 4. 大量重复的练习 
  2. 《Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play》Mitchel Resnick, Published by MIT Press (2017) 
  3. 关于这个事件, 推荐看看 知乎的讨论 
赞(9)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址