任务:向一组六岁的孩子解释你的工作(我自己的女儿也在其中)。
难度等级:高。
关于这个任务/主题,之前网上已有许多人分享了他们对这种“讲座”的想法,你可以在 Stack Overflow 上找到一些非常有趣的例子(例如这里)。其中许多人的想法是关于计算机是多么愚蠢,因为要取得成功,你需要非常准确地告诉它做事的方法和规律。我保证这样很有趣,但我也很怀疑,过后孩子们能对编程有什么了解。
一个成功的演讲在我心里应该是这样的:
我从一个最基本的问题开始,“谁知道程序员是做什么的?”我知道他们昨天讨论过这个问题,所以对他们提出的一些想法,我并不感到惊讶。我给了他们我自己的定义:“程序员是编写计算机程序的人,他们掌握和计算机交流的语言,而且对计算机懂得很多。“
然后我画了一个工作中的程序员。
下一步是讨论计算机。所有的孩子都开始谈论他们父母的笔记本(他们反复提到同样的东西,这样真的很可爱)。讨论了一段时间后,我打断他们并指出,在不同地方还有很多计算机,比如智能手机或手表,还包括汽车和电梯。我把上面提到的每一项都画了出来,并用几个字简单地概述每一种情况下计算机的用途。我还问他们他们如何看待天气预报的工作(这时一个聪明的孩子回答:“卫星知道第二天的天气”),并告诉他们计算机得出的预测,基于上千的测量设备给出的测量结果。
为了转到下一个话题计算机程序,我提到计算机之所以能做很多事,要归功于指导它们做这些事情的程序。
话题随之转向 YouTube,我知道他们很了解它,我从他们熟悉的 UI 开始。
我问他们 YouTube 上有多少部电影。有些人比较困惑,而有些人高喊“数百万”或“无限”。我问所有的电影是否都可以放在一张光盘上。然后我画出许多光盘,问他们“在给 YouTube 下达观看 《粉红猪小妹》某一集的指令后,你了解它是如何找到那个正确的光盘吗?”他们以沉默回应,所以我画了一个数据库,并快速描述了它的作用。
我想让他们知道,他们所看到的只是冰山一角,而程序员们还有很多要做的。我解释了我们必须如何处理以下各种事情:
这是一个提醒他们编程是团队合作的好时机。这些项目很大,需要不同领域的知识,所以很多人都参与了创作。在这一点上,我更新了第一张图,添加了另一个程序员,让他们俩坐得很近。
下一个主题是计算机的工作原理,当然我一笔带过,没有详细展开。我是这样告诉他们的:
我把注意力集中在处理器上,告诉他们计算机使用一种只包含 0 和 1 的有趣语言。当我假装只用 A 和 B 开头的词说话时,我们获得了一点乐趣。然后我解释程序员之所以使用编程语言,是为了更容易与处理器沟通对话。
然后我使用了一些最简单的编程语言进行示例(使用一些伪代码)。我本想再给他们看一些东西,但我觉得他们正在失去注意力,所以我甚至没有提出 for 循环。
为了完成我的演讲,我再次画出了我们所谈论过的符号。我一个一个地画出来,问他们“这是什么?”、“你还记得什么?”这样的问题。整个过程都非常棒。
额外的说明、注意事项、提示及技巧: