编程是一项创造性的活动,任何孩子都可以参与。您的孩子可能不关心编写数据处理算法,但他们可能会喜欢创建游戏、编写音乐程序、设计网站,或者只是玩玩代码。
我写了几本书来教所有年龄段的初学者如何编程,并且我从经验中得知,您不需要认为自己是技术专家或“擅长数学”才能学习。事实上,孩子们通常可以比成年人更快地学会编程,正是因为他们不知道编程应该有多“难”。
如果您不知道如何编程,但想学习以便教您的孩子,请查看我的最新 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 面试中出现的那种问题,那么跳过它可能会更好。在开始时,涵盖广泛的主题比深入技术细节要好。让您的孩子找到自己的热情。一旦您的孩子体验了编程世界的魅力,他们就会兴奋地探索他们喜欢的部分。
8 条评论