编程是一项任何孩子都可以参与的创造性活动。你的孩子或许不喜欢编写数据处理算法,但他们可能会喜欢创造游戏、对音乐编程、设计网站、或只是摆弄代码。


我曾经写过几本编程的入门书籍,适合各个年龄段的初学者,根据我的经验,你不必认为自己是技术人员或”擅长数学“才能学习编程。实际上,孩子学习编程要比成年人更快,因为他们不知道编程的“困难”所在。


如果你不会编写任何代码,但想通过学习来教你的孩子,看看我最新的Python图书《Automate the Boring Stuff with Python》,它适合初学者,你可以在网上免费阅读。


不管你是软件工程师,还是完全没有编程背景,下面这六个建议都将有助于你的孩子学习编程:


1. Scratch 是为小孩子们准备的 , Python 则适合大孩子们。


麻省理工学院的 Scratch 是一个为儿童设计的免费编程工具,可以运行在任何一个现代网页浏览器中。任何人都可以从 https://scratch.mit.edu 运行它。它的视觉风格受到 Logo 程序的影响,Logo 是一个为 80 和 90 年代儿童设计的主流编程课程。但是 Scratch 远不止是 Logo 的山寨版那么简单。


8 到 13 岁的孩子们将会受益于 Scratch 简单的图形界面。Scratch 可以通过拖拽代码块将它们拼在一起。不可计算的代码片段则无法组合,这样杜绝了字面上的语法错误。Scratch 对那些不会打字的小孩子们来说非常有用。


当然,孩子们如果想编写更加复杂的程序,Scratch 就不够用了 。对于青少年来说,像 Python 这种真正的编程语言才更加适合。Python 是一种优秀的首选编程语言,因为它的语法非常简单(不像 Java 或者 C# ),代码可读性高(不像 Perl 或者 JavaScript),并且有强大友好的开发者社区 支持。如果 Scratch 已经无法满足你的小孩,Python 是下一步的最佳之选。


2. 展示实际程序的源代码。不要只谈概念。


尽管编程以智力著称,但它是个需要动手练习的技能,光靠看书可不行。Python 交互式 shell 命令行鼓励通过实践来发现指令的功用。


如果你直接教你的孩子,写代码的效率要远高于只跟他们谈概念。即使学会了变量、循环、函数,坐在一个空白编辑器前面编写一个新程序仍然让人恐惧。你应该和他们肩并肩坐一起并讲解每一行需要编写的代码。


或者,如果你想分享在线资源给孩子,尽量找那种小游戏的源代码。最好是代码行数小于200的小程序。


Scratch 网站会自动共享其网站上所有项目的源码。多鼓励你的孩子修改这些代码,然后看看这些改动如何影响了最终的程序。


3. 游戏是充满趣味的编程项目


很多年轻程序员往往都是从编写视频游戏开始的。《愤怒的小鸟》、《Mincraft》、《Flappy Bird》、 《Five Nights at Freddy》,和其它的游戏都是灵感的源泉。 我写了本免费的书《Invent Your Own Computer Games with Python》,通过很多独立小游戏(Tic Tac Toe、Hangman 等)的完整源码,来展示编程的概念。


需要注意的是,你孩子所热爱的这些游戏,不一定适合作为入门学习的编程项目。很多游戏是程序员、艺术家、设计师团队一起协作的结果。如果一个游戏需要大量的关卡设计和艺术工作,会吓坏初学者。完成一个简单的游戏,比开始一个永远做不完的大型项目要更容易让人获得满足。在实践中,可以参考我在《49 个简单力学小游戏》中的清单。


尽管游戏是有趣的,我一般不推荐“游戏制造器”或“游戏生成器”之类的专用软件。和 Scratch 类似的是,这些应用通常试图提供简化的编程环境。但是和 Scratch不同的是,它们会冲淡编程的概念。使用这些工具做编程感觉像在配置一个已有的软件。


伯乐在线补充:去年 Flappy Bird 火热时,Code.org 推出了一个用类似 Scratch 语言来作 Flappy Bird 游戏的编程课


教孩子编程的 6 个小建议_java


4. 让你的手离开鼠标和键盘


分享知识是愉快的。告诉别人你对编程的理解非常好。但是编码是一个需要动手练习的技能,所以让孩子们尽情尝试吧。当和孩子们一同练习时一定要避免抢过孩子键盘的冲动,即使是短暂的也不行。如果他们需要点击一个菜单或按钮,要用手指去点屏幕去引导他们,而不是自己拿着鼠标去点。不管他们要输入什么代码,都让他们自己去做。如果你自己做可能会更快,但你的学生比你更需要练习啊。


5. 如果你在教一个班,保证每个孩子都有自己的电


如果你在教一组学生,尽量让每一个人都有自己的电脑。与演奏乐器一样,编程技能需要动手练习而不是光看别人表演。


树莓派是一台便宜的准个人电脑,仅需要 70 美元(伯乐在线注:新版树莓派 5 美元)。尽管添加新键盘、鼠标和显示器后,总价格和一个便宜的笔记本电脑接近。不要使用 Chromebooks、iPads 和平板电脑,因为 Python 很难运行在这些设备上。


如果你要为课外小组建立一个电脑实验室,并希望节省费用,你通过树莓派和一些闲置的键盘和显示器,就能够达到目的。(通过 树莓派官网和 Ben Nuttall 每月一次的 树莓派专栏寻找免费资源。)另一个推荐是使用便宜的笔记本电脑,尤其是当你没有专门的场地,并且需要在课后把电脑存起来。笔记本电脑只用很少的线,存放起来更容易。


如果做不到每人一台电脑,可以让孩子们结对轮换。记住第 4 个建议:一开始就告诉他们要征求同伴的同意后再使用鼠标和键盘,而不是把同伴推开。


有些孩子可能比较霸道喜欢独自占有机器,不够自信的孩子又愿意让他们占据。把一个小孩设定为 ,另一个孩子设定为,明确告诉小组换位置,这样可以确保(或者 )公平的使用键盘和鼠标。


6. 跳过计算机科学


如果你是一位软件工程师,会常常希望分享编程秘诀。讲解递归泛红填充算法,或者解决来自 Euler Project(一个编程实践问答网站,用户群是那些想提高编程技巧的童鞋)的编程问题充满乐趣。但让初学者一上来就接触这种难题,就不那么有趣了。你在分享下面这些主题前,要三思而后行:


  • 面向对象编程


  • 递归


  • 设计模式


  • 除了lists、arrays 和 dictionaries、hash maps 以外的数据结构(例如:linked-lists、binary trees 等)


  • 网络协议(除简单的 HTTP 请求以外的协议)


  • SQL 数据库、或者其它特定领域语言


一个好方法:如果某些问题出现在 Google 的面试题中,最好跳过它们。开始阶段,涉猎广泛的主题好过深入技术细节。让你的孩子自己发现他们的兴趣所在。一旦孩子们尝试了编程世界提供的各种可能,他们会非常高兴探索自己喜欢的那部分。


编程是一项任何孩子都可以参与的创造性活动。你的孩子或许不喜欢编写数据处理算法,但他们可能会喜欢创造游戏、对音乐编程、设计网站、或只是摆弄代码。


我曾经写过几本编程的入门书籍,适合各个年龄段的初学者,根据我的经验,你不必认为自己是技术人员或”擅长数学“才能学习编程。实际上,孩子学习编程要比成年人更快,因为他们不知道编程的“困难”所在。


如果你不会编写任何代码,但想通过学习来教你的孩子,看看我最新的Python图书《Automate the Boring Stuff with Python》,它适合初学者,你可以在网上免费阅读。


不管你是软件工程师,还是完全没有编程背景,下面这六个建议都将有助于你的孩子学习编程:


1. Scratch 是为小孩子们准备的 , Python 则适合大孩子们。


麻省理工学院的 Scratch 是一个为儿童设计的免费编程工具,可以运行在任何一个现代网页浏览器中。任何人都可以从 https://scratch.mit.edu 运行它。它的视觉风格受到 Logo 程序的影响,Logo 是一个为 80 和 90 年代儿童设计的主流编程课程。但是 Scratch 远不止是 Logo 的山寨版那么简单。


8 到 13 岁的孩子们将会受益于 Scratch 简单的图形界面。Scratch 可以通过拖拽代码块将它们拼在一起。不可计算的代码片段则无法组合,这样杜绝了字面上的语法错误。Scratch 对那些不会打字的小孩子们来说非常有用。


当然,孩子们如果想编写更加复杂的程序,Scratch 就不够用了 。对于青少年来说,像 Python 这种真正的编程语言才更加适合。Python 是一种优秀的首选编程语言,因为它的语法非常简单(不像 Java 或者 C# ),代码可读性高(不像 Perl 或者 JavaScript),并且有强大友好的开发者社区 支持。如果 Scratch 已经无法满足你的小孩,Python 是下一步的最佳之选。


2. 展示实际程序的源代码。不要只谈概念。


尽管编程以智力著称,但它是个需要动手练习的技能,光靠看书可不行。Python 交互式 shell 命令行鼓励通过实践来发现指令的功用。


如果你直接教你的孩子,写代码的效率要远高于只跟他们谈概念。即使学会了变量、循环、函数,坐在一个空白编辑器前面编写一个新程序仍然让人恐惧。你应该和他们肩并肩坐一起并讲解每一行需要编写的代码。


或者,如果你想分享在线资源给孩子,尽量找那种小游戏的源代码。最好是代码行数小于200的小程序。


Scratch 网站会自动共享其网站上所有项目的源码。多鼓励你的孩子修改这些代码,然后看看这些改动如何影响了最终的程序。


3. 游戏是充满趣味的编程项目


很多年轻程序员往往都是从编写视频游戏开始的。《愤怒的小鸟》、《Mincraft》、《Flappy Bird》、 《Five Nights at Freddy》,和其它的游戏都是灵感的源泉。 我写了本免费的书《Invent Your Own Computer Games with Python》,通过很多独立小游戏(Tic Tac Toe、Hangman 等)的完整源码,来展示编程的概念。


需要注意的是,你孩子所热爱的这些游戏,不一定适合作为入门学习的编程项目。很多游戏是程序员、艺术家、设计师团队一起协作的结果。如果一个游戏需要大量的关卡设计和艺术工作,会吓坏初学者。完成一个简单的游戏,比开始一个永远做不完的大型项目要更容易让人获得满足。在实践中,可以参考我在《49 个简单力学小游戏》中的清单。


尽管游戏是有趣的,我一般不推荐“游戏制造器”或“游戏生成器”之类的专用软件。和 Scratch 类似的是,这些应用通常试图提供简化的编程环境。但是和 Scratch不同的是,它们会冲淡编程的概念。使用这些工具做编程感觉像在配置一个已有的软件。


伯乐在线补充:去年 Flappy Bird 火热时,Code.org 推出了一个用类似 Scratch 语言来作 Flappy Bird 游戏的编程课


教孩子编程的 6 个小建议_java


4. 让你的手离开鼠标和键盘


分享知识是愉快的。告诉别人你对编程的理解非常好。但是编码是一个需要动手练习的技能,所以让孩子们尽情尝试吧。当和孩子们一同练习时一定要避免抢过孩子键盘的冲动,即使是短暂的也不行。如果他们需要点击一个菜单或按钮,要用手指去点屏幕去引导他们,而不是自己拿着鼠标去点。不管他们要输入什么代码,都让他们自己去做。如果你自己做可能会更快,但你的学生比你更需要练习啊。


5. 如果你在教一个班,保证每个孩子都有自己的电


如果你在教一组学生,尽量让每一个人都有自己的电脑。与演奏乐器一样,编程技能需要动手练习而不是光看别人表演。


树莓派是一台便宜的准个人电脑,仅需要 70 美元(伯乐在线注:新版树莓派 5 美元)。尽管添加新键盘、鼠标和显示器后,总价格和一个便宜的笔记本电脑接近。不要使用 Chromebooks、iPads 和平板电脑,因为 Python 很难运行在这些设备上。


如果你要为课外小组建立一个电脑实验室,并希望节省费用,你通过树莓派和一些闲置的键盘和显示器,就能够达到目的。(通过 树莓派官网和 Ben Nuttall 每月一次的 树莓派专栏寻找免费资源。)另一个推荐是使用便宜的笔记本电脑,尤其是当你没有专门的场地,并且需要在课后把电脑存起来。笔记本电脑只用很少的线,存放起来更容易。


如果做不到每人一台电脑,可以让孩子们结对轮换。记住第 4 个建议:一开始就告诉他们要征求同伴的同意后再使用鼠标和键盘,而不是把同伴推开。


有些孩子可能比较霸道喜欢独自占有机器,不够自信的孩子又愿意让他们占据。把一个小孩设定为 ,另一个孩子设定为,明确告诉小组换位置,这样可以确保(或者 )公平的使用键盘和鼠标。


6. 跳过计算机科学


如果你是一位软件工程师,会常常希望分享编程秘诀。讲解递归泛红填充算法,或者解决来自 Euler Project(一个编程实践问答网站,用户群是那些想提高编程技巧的童鞋)的编程问题充满乐趣。但让初学者一上来就接触这种难题,就不那么有趣了。你在分享下面这些主题前,要三思而后行:


  • 面向对象编程


  • 递归


  • 设计模式


  • 除了lists、arrays 和 dictionaries、hash maps 以外的数据结构(例如:linked-lists、binary trees 等)


  • 网络协议(除简单的 HTTP 请求以外的协议)


  • SQL 数据库、或者其它特定领域语言


一个好方法:如果某些问题出现在 Google 的面试题中,最好跳过它们。开始阶段,涉猎广泛的主题好过深入技术细节。让你的孩子自己发现他们的兴趣所在。一旦孩子们尝试了编程世界提供的各种可能,他们会非常高兴探索自己喜欢的那部分。