6 个教孩子学编程的技巧

还没有读者喜欢这个。
Girl reaching out to the stars

Opensource.com

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

我写了几本书来教所有年龄段的初学者如何编程,并且我从经验中得知,您不需要认为自己是技术专家或“擅长数学”才能学习。事实上,孩子们通常可以比成年人更快地学会编程,正是因为他们不知道编程应该有多“难”。

如果您不知道如何编程,但想学习以便教您的孩子,请查看我的最新 Python 初学者书籍《Automate the Boring Stuff with Python》,您可以在线免费阅读。

无论您是软件开发人员还是没有编程背景,以下是六个帮助您的孩子开始编程的技巧

1. 年幼的孩子使用 Scratch,年长的孩子使用 Python。

MIT 的 Scratch 是一款专为儿童设计的免费编程工具,可在任何现代 Web 浏览器中运行。任何人都可以访问 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 鼓励实验以找出指令的作用。

如果您直接辅导您的孩子,与仅仅对他们空谈概念相比,编写代码大有帮助。即使在学习了变量、循环和函数之后,坐在空白编辑器前并开始一个新程序仍然令人望而生畏。和他们坐在一起,逐行描述他们应该编写的代码。

或者,如果您正在使用在线资源与您的孩子分享,请查找小型游戏的源代码。代码少于几百行的程序效果最佳。

Scratch 网站会自动共享其网站上所有项目的源代码。鼓励您的孩子修改代码,看看它们如何改变最终程序。

3. 游戏是有趣的编程项目。

编程视频游戏是许多年轻程序员的常见起点。《愤怒的小鸟》、《Minecraft》、《Flappy Bird》、《Five Nights at Freddy's》和其他游戏都是主要的灵感来源。我写了一本免费书《Invent Your Own Computer Games with Python》,其中通过几个简单的游戏项目(井字棋、猜单词游戏等)的完整源代码演示了编程概念。

请注意,您的孩子喜欢的游戏在他们刚开始时可能不是好的编程项目。许多游戏需要开发人员、美工人员和设计师团队共同完成。需要大量关卡设计和美术设计的游戏可能会让初学者感到不知所措。完成一个简单的游戏比开始一个永远无法完成的大型项目更令人满意。

请参考我的 49 个具有简单游戏机制的小游戏 列表,获取练习想法。

即使游戏很有趣,我通常也不建议使用专门的“游戏创作”或“游戏制作”软件。与 Scratch 类似,这些应用程序通常试图呈现简化的编程环境。但与 Scratch 不同,它们往往会淡化编程方面。使用它们进行编程往往更像是配置预先存在的软件。

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

分享知识令人兴奋。向别人展示您对编程的了解很棒。但是编码是一项通过实践学习的技能,所以让孩子们主导。与孩子们一起工作时,避免跳进去在键盘上打字,即使是暂时的。如果他们必须单击菜单或按钮,请用手指指向屏幕,而不是拿起鼠标自己单击。每当需要键入代码时,让他们键入。如果您自己做,可能会更快,但您的学生更需要练习。

5. 如果教一个班级,给每个孩子一台自己的电脑。

如果您正在教一个小组,请尽量给每个学生一台自己的电脑。就像演奏乐器一样,编程是一项通过实践而不是观看别人学习的技能。

Raspberry Pi 是一款廉价的裸机 PC,入门套件 的价格约为 70 美元。虽然添加新的键盘、鼠标和显示器会使总价与廉价笔记本电脑相当。避免使用 Chromebook、iPad 和平板电脑,因为;在它们上面运行 Python 很困难。

如果您需要在预算有限的情况下为课后俱乐部建立一个计算机实验室,Raspberry Pi 可以让您利用备用键盘和显示器。(请参阅 Raspberry Pi 基金会网站Ben Nuttall 在 Opensource.com 上的每月 Raspberry Pi 专栏,获取免费资源。)否则,我推荐廉价笔记本电脑方法,特别是如果您没有专用空间并且需要在课后存放电脑。笔记本电脑的电缆更少,也更容易存放。

如果无法做到每人一台电脑,孩子们可以两人一组轮流使用。记住技巧 #4:从一开始就教他们向伙伴索要键盘和鼠标,而不是直接抢走。

有些孩子可能会自负并且渴望控制机器,而不太自信的孩子会很乐意让他们使用。让一个孩子成为 A,另一个孩子成为 B。在课程的某些时候,明确告诉小组换座位,以便 A(或 B)在键盘和鼠标前的时间均等。

6. 跳过计算机科学。

如果您是软件开发人员,您可能渴望分享您的技术奥秘。解释递归填充算法或练习 Project Euler 中的问题(对于那些想要磨练编码技能的人来说,这是一个很棒的练习问题网站)非常有趣。被扔进深水区对学习者来说并不那么有趣。您需要在开始时搁置一些主题

  • 面向对象编程
  • 递归
  • 设计模式
  • 列表/数组和字典/哈希映射以外的数据结构(链表、二叉树等)
  • 网络协议(超出简单的 HTTP 请求)
  • SQL 数据库或其他特定领域语言

一个好的经验法则是:如果这是一个会在 Google 面试中出现的那种问题,那么跳过它可能会更好。在开始时,涵盖广泛的主题比深入技术细节要好。让您的孩子找到自己的热情。一旦您的孩子体验了编程世界的魅力,他们就会兴奋地探索他们喜欢的部分。

User profile image.
Al Sweigart 是旧金山的软件开发人员和科技图书作者。他撰写了几本 Python 书籍,这些书籍在 Creative Commons 许可下发布,网址为 https://inventwithpython.com

8 条评论

在 1980 年代初期,Sinclair 向英国大众推出了 ZX81 和 ZX Spectrum(我认为在美国是 Timex)。我们过去常常花几个小时从杂志上输入 BASIC 代码列表,用于游戏和实用程序。我确信这帮助我掌握了代码,因为我可以看到并理解代码将如何工作。我想知道是否有人尝试过用今天的孩子这样做,而不是仅仅下载?

即使使用计算机超过 20 年,当我自己输入所有代码时,我也会学习并保留更多,即使我只是从教程中复制。所以是的,我肯定会和我的孩子们一起尝试。迫不及待想等到我的儿子开始学习阅读...

问候,eMBee。

(这是一个意见声明,虽然 CC-BY-SA 允许您对其进行更改,但如果您真的这样做,它就不再是我的意见,因此您不得将我的名字与之关联,否则只需将许可证视为 CC-BY-SA-ND)

回复 作者 Steve Nice

Al,这是一个极好的建议。编程对于年轻人来说可能是一项非常有趣的爱好,对于一些年轻人来说,它可能是通往回报丰厚的职业道路。我鼓励大家也看看他们所在的城镇是否有 CoderDojo 青少年编程俱乐部。如果没有,请找一些人开始一个。您还可以向当地公共图书馆、童子军团体、创客空间或其他公民组织寻求帮助,以帮助启动 CoderDojo。

要查找您附近的 CoderDojo,请在网络上搜索“CoderDojo”和您所在的城镇名称。

这些俱乐部由志愿者运营,了解这一点很有用。我发现他们对所有年轻人,无论编程经验如何,都非常包容。在一些 CoderDojo 会议上,年轻人学习与编程相关的技能,例如摆弄计算机内部结构、制作屏幕录像、构建网站、焊接等。

编程还可以增强年轻人的好奇心,这非常棒,因为智慧始于好奇。(苏格拉底)。

很棒的文章。我同意。年轻的学生非常喜欢 Scratch。在今年一月和二月,我曾在当地公共图书馆与一群小学生一起工作,他们喜欢使用 Scratch,并且在每次课前和课后,我都给他们机会分享他们学到或编程的内容。他们很喜欢。我从未教过 Python,而且我自己仍在学习使用它。我喜欢您的建议。我喜欢教学生和成人构建网站以及自定义 HTML 和 CSS 是多么容易。

我完全同意我的同事版主们的看法,这对父母/导师和孩子们来说都是很好的建议。事实上,我报名参加了下周的 CoderDojo,看看我的儿子是否喜欢所有这些技术和编程。他已经在家里尝试过几次 Scratch,并且很喜欢。

或者让他们观看这位儿童程序员的现场编码 http://money.cnn.com/2015/05/05/technology/11-year-old-coder-live-stream/

我还建议将 HackerRank (https://www.hackerrank.com/) 作为 Project Euler 的绝佳替代品。

“任务”按“任务”的主题分为不同的类别。您可以使用多种编程语言,并使用您喜欢的编程语言直接在其 Web 界面中键入。每个“任务”都包含关于如何完成它的提示(以链接到其他资源的形式)。

很棒的文章!我们在 Power Up Tech Academy (http://powerupta.com) 使用 Scratch/Python 顺序的原因与您提到的原因相同,并且我非常喜欢这两者用于儿童。我也完全同意您对游戏创作软件的评估。它真的不会教他们编码。

我想补充的另一个技巧:在与孩子一起尝试之前,请务必自己先试用该项目。不要因为您是一位优秀的程序员就认为您会了解 Scratch 的工作原理或 Pygame 的复杂性。在课程期间,您需要尽可能专注于教学,而不是调试。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.