微信号:jobbole

介绍:关注职业资讯;学习各类职业感悟、心得和经验分享,扩大职业视野;体会求职、工作和创业的历程 - 就在JobBole.com 伯乐在线

如何向 6 岁的孩子解释何为编程

2018-05-02 21:14 伯乐在线

(点击上方公众号,可快速关注)


编译:伯乐在线/飞哥的咖啡


任务:向一组六岁的孩子解释你的工作。

难度等级:高(我自己的女儿也在其中)。

关于这个任务/主题,之前网上已有许多人分享了他们对这种“讲座”的想法,你可以在 Stack Overflow 上找到一些非常有趣的例子(例如这里)。其中许多人的想法是关于计算机是多么愚蠢,因为要取得成功,你需要非常准确地告诉它做事的方法和规律。我保证这样很有趣,但我也很怀疑,过后孩子们能对编程有什么了解。

一个成功的演讲在我心里应该是这样的:

  • 让他们通过提问和画画来持续参与其中。我在谈话期间画下的原画(白板纸)相当大。顺便一提,画画是一个能让年轻观众参与进来的好方法(他们玩得很开心,嘲笑代表程序员的稻草人,或者指出粉红猪小妹(Peppa Pig)长得不是这样的等等)。我没有原始图纸(忘了拍照),但我又画了一次,让你看到这个想法。

  • 所有演讲的内容要基于他们已知的事物(比如:YouTube、笔记本、平板、DVD)。现在每个孩子都在 YouTube 上观看卡通片,在平板上玩游戏,看到爸妈在笔记本上工作。他们也知道电影是保存在 CD/DVD 上的,以及(在涉及游戏和电影时)智能手机和平板非常相似。


我从一个最基本的问题开始,“谁知道程序员是做什么的?”我知道他们昨天讨论过这个问题,所以对他们提出的一些想法,我并不感到惊讶。我给了他们我自己的定义:“程序员是编写计算机程序的人,他们掌握和计算机交流的语言,而且对计算机懂得很多。“

然后我画了一个工作中的程序员。

下一步是讨论计算机。所有的孩子都开始谈论他们父母的笔记本(他们反复提到同样的东西,这样真的很可爱)。讨论了一段时间后,我打断他们并指出,在不同地方还有很多计算机,比如智能手机或手表,还包括汽车和电梯。我把上面提到的每一项都画了出来,并用几个字简单地概述每一种情况下计算机的用途。我还问他们他们如何看待天气预报的工作(这时一个聪明的孩子回答:“卫星知道第二天的天气”),并告诉他们计算机得出的预测,基于上千的测量设备给出的测量结果。

为了转到下一个话题计算机程序,我提到计算机之所以能做很多事,要归功于指导它们做这些事情的程序。

话题随之转向 YouTube,我知道他们很了解它,我从他们熟悉的 UI 开始。

我问他们 YouTube 上有多少部电影。有些人比较困惑,而有些人高喊“数百万”或“无限”。我问所有的电影是否都可以放在一张光盘上。然后我画出许多光盘,问他们“在给 YouTube 下达观看 《粉红猪小妹》某一集的指令后,你了解它是如何找到那个正确的光盘吗?”他们以沉默回应,所以我画了一个数据库,并快速描述了它的作用。

我想让他们知道,他们所看到的只是冰山一角,而程序员们还有很多要做的。我解释了我们必须如何处理以下各种事情:

  • 保护电影免受坏人的篡改(“如果有人改变了数据库会发生什么事情,你会看到一些足球比赛,而不是粉红猪小妹。”,底下的孩子一片死寂 😁 )

  • 制作备份(“一个光盘破裂了怎么办?那你永远不会在粉红猪小妹中,看到猪爸爸设法挂画这一情节了。“,底下又是一片死寂 😁 )

  • 使得 YouTube 可以在不同的设备上运行(智能手机、平板、笔记本)

  • 展示广告

  • 计算观看每一部电影的人数

  • 显示相似电影的缩略图,等等


这是一个提醒他们编程是团队合作的好时机。这些项目很大,需要不同领域的知识,所以很多人都参与了创作。在这一点上,我更新了第一张图,添加了另一个程序员,让他们俩坐得很近。

下一个主题是计算机的工作原理,当然我一笔带过,没有详细展开。我是这样告诉他们的:

  • 鼠标和键盘是供人们发送命令给计算机的

  • 计算机屏幕是供计算机响应(命令)的

  • 每台计算机里都有一个处理器(你可以把它当成计算机的大脑)

  • 还有一些磁盘允许计算机存储信息


我把注意力集中在处理器上,告诉他们计算机使用一种只包含 0 和 1 的有趣语言。当我假装只用 A 和 B 开头的词说话时,我们获得了一点乐趣。然后我解释程序员之所以使用编程语言,是为了更容易与处理器沟通对话。

然后我使用了一些最简单的编程语言进行示例(使用一些伪代码)。我本想再给他们看一些东西,但我觉得他们正在失去注意力,所以我甚至没有提出 for 循环。

为了完成我的演讲,我再次画出了我们所谈论过的符号。我一个一个地画出来,问他们“这是什么?”、“你还记得什么?”这样的问题。整个过程都非常棒。

额外的说明、注意事项、提示及技巧:

  • 这比我想象的要有趣得多!我认真地对待这件事,进行了很好的准备,结果也得到了回报。孩子们很感兴趣,我想他们可能会记得一些事情。

  • 画画是正确的方式。它能抓住他们的注意力。通过指着某一幅画,能让我提醒他们几分钟前我们就此讨论过的事情。

  • 要做好一遍遍重复的准备。当我问他们知道的语言时,一个孩子举起手说:“我知道一点英语”,然后他的同伴也一样,这一个,那一个,然后组里剩下的人一个接一个(或几个同时)举手,但几乎所有人说的都是英语。当你谈到他们喜欢的主题,比如卡通片时,场面会变得更加混乱。

  • 不管你做什么,有些孩子会变得无聊,因为他们的注意力周期实在太短了。

  • 注意书写。举个例子,当你写 1 时,他们会抗议这看起来像 7。

  • 在这次演讲中,我明白了纠正他们是毫无意义的。例如,我认为在他们眼中, YouTube 会将卡通片保存在 DVD 上,当你要求某个卡通片时,计算机会选择正确的光盘并播放。我个人觉得这种想法很好,我想让他们理解的是概念(搜索是怎样的,数据库做什么的),而不是技术细节,这才是我认为正确的方法。

  • 演讲花了大约 25 分钟,感觉没必要更长了。



看完本文有收获?请分享给更多人

关注「伯乐在线」,看更多精选 IT 职场文章

 
伯乐在线 更多文章 完美主义对新手程序员的影响 如何对待开发团队中那个拖后腿的人? 十年工龄的程序员为你揭示最危害程序员职业生涯的三大观念 如何识别人的技术能力和水平? 谁说国外的程序员过得好?法国政府搞的软件项目,坑出新境界
猜您喜欢 display 的 32 种写法 为什么我们都在互联网圈 Android JavaPoet 动态生成Java源码(2) 系统被我玩坏之后…… [原]django构建简易博客系统