我是 2022 年 8 月开始教自家六岁的儿子学习编程。和他的沟通也很简单:

我:你想学习编程,做属于自己的游戏,然后可以在手机或者 iPad 上玩的那种吗?

儿子:(很兴奋的)想啊!

我:编程很困难,想学好非常不容易,但是我会尽量让你觉得开心,好玩。你能坚持下去吗?

儿子:可以!

时至今日,除了他,中间还有三个小朋友也加入进来开始跟我学习编程,我也来聊聊随着这将近一年时间的教学,我对少儿编程的一些看法。

首先,选材很重要,现在主流的编程课程就几种:

  • 面向最基础的模块化编程软件 scratch
  • 乐高或者其他机器人编程
  • 偏竞赛方向的 python 和 c++
  • 苹果推出的面向青少年的基于 swift 的编程工具 playgrounds

我经过比对选择了相对小众的第四种,苹果出的这个系列教程市面几乎找不到相关的兴趣班,原因在于 swift 这门语言在国内相对冷门,一般愿意学习的都是一些独立的 ios 开发者,热门程度远远比不上 py 和 c++。这就导致了一般都是一些真正写代码的人愿意把这个教程教给自己的孩子。所以它不那么受市场的青睐。

下面我说说苹果这门课程的优点:

  • 教程覆盖面比较广,初级中级高级都有,初级课程一般六岁左右的小朋友经过一段时间学习是完全可以理解的,而中高级部分是真的可以指引着小朋友在 iPhone 或者 iPad 上写出精美的 app(当然不是从 0 开始写,毕竟这只是一个教程)。
  • 初级教程以关卡的形式展现,实际教学中发现这会对小朋友形成很强烈的“正反馈”,我一直觉得不管什么课程让人可以充满乐趣的学下去才是最重要的,想要充满乐趣,“正反馈”必不可少。
  • 如果小朋友坚持学下去,那么理论上是完全可以凭借自己的能力真的写出来在 ios 上可以运行的 app,试想当他告诉他的爸爸妈妈或者同学可以在手机的应用商店中下载他自己写的 app 的样子,我想那种自豪与成就感就是连你学好 py 或者 c++都无法比拟的。

当然这门课程的缺点也非常明显: 因为它是一门真正的编程语言,如果真的学起来有一定难度,而且国内学的人也少就会导致老师少,国内的编程赛事也没有这门语言,所以在国内注定不会受到市场的青睐。

当然不是说不受青睐的教程就是好的教程,教小朋友之前,我也仔细对比了其他几个主流的教程:

  • 因为我本身的主力语言就是 py,所以对于我来说教 py 对我来说应该是最轻松的,但是我觉得 py 和其他编程语言一样,没有基于小朋友相对“友好”的教程,前期学的容易枯燥无趣,容易半途而废。我的计划是带着儿子开发出一款上架苹果商店的 app 后,如果他愿意继续学习 py 的话,我再教他。
  • c++的话,“码农”们都知道这是一门什么样的语言,市场上一般学这个的小朋友基本都是冲着竞赛去的。
  • 机器人方面目前在国内也是非常热门的课程,这方面说实话我了解的不多,就不再评价了。
  • 至于 scratch,这个课程我也是比较推荐的,如果自己不懂代码或者不愿意教自己的孩子的话,可以让 0 基础的孩子学习这个,前提是课程设计好。好的 scratch 课程既可以对小朋友形成“正反馈”也可以在数学英语上都有所体现。

最后关于少儿编程,我的意见是如果孩子有兴趣的话,是应该鼓励孩子去学习的,因为让孩子学编程不是为了培养多少“码农”,而是培养孩子的逻辑思维,数学思维能力,还有最重要的是培养孩子对事物的兴趣以及坚持不懈的品格,毕竟想把编程真的学好不是凭借脑子一热就能学好的。