Explaining Programming to 6 Years Old Kids


    程序员是编写计算机程序的人,他们掌握和计算机交流的语言,而且对计算机懂得很多。


原文来源:https://dev.to/tkaczanowski/explaining-programming-to-6-years-old-kids

The task: explain what you do at work to a group of 6 years old kids.

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

Level: high (my own daughter was among the kids).

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

challenge_accepted.png

Many people shared their ideas of such “lectures” – you can find some really interesting examples on Stack Overflow (e.g. here). Many of them are based on the idea of presenting how computers are stupid and that you need to tell them very precisely what and how to do things to succeed. Fun guaranteed, but I seriously doubt if afterward kids understand anything about programming.

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

My ideas for a successful presentation were:

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

  • Keep them engaged by asking questions and drawing. The original drawings were pretty big (flipchart) and I drew them while talking – which BTW is a nice way to keep a young audience engaged (they had so much fun laughing at programmer straw man or pointing out that Peppa Pig doesn’t look like this, etc).  I do not have the original drawings (forgot to take pictures) but I drew them once again so you get the idea.

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

  • Build upon what they already know (YouTube, laptops, tablets, DVDs). Nowadays every kid watches cartoons on YouTube, plays games on tablets and observes mom or dad working on their laptops. They also know the movies are kept on CDs/DVDs and that the smartphones and tablets are pretty similar (when it comes to games and movies).

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

I started with the basic question, “Who knows what a programmer does?” I knew they had some discussion about this yesterday so I wasn’t surprised they had some idea. I gave them my own definition: “Programmer is someone who writes computer programs, who knows the languages used to tell the computer what it should do. A programmer knows a lot about computers.”

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

Then I draw a programmer at work.

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

programista.jpg

The next step was to discuss computers. All kids started talking about laptops of their parents (it is really lovely how they mention the same thing over and over again). I interrupted after some time pointing to them that there are many computers in different places – like smartphones or watches, but also in cars and lifts. I draw each of the mentioned items and discussed in few words what a computer is used for in each case. I also asked them how they think the weather forecast works (one smart kid answer: “the satellite knows what the the weather will be the next day”) and told them about computer calculating the prognosis based on data coming from thousand of measurement devices.

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

komputery.jpg

I wanted to move to computer programs next so I mentioned that computers do what they do thanks to the programs which instruct them to do certain things.

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

I moved to YouTube because I knew they would know a lot about it. I started by drawing UI that they are all familiar with.

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

I asked how many movies there are on YouTube. Some of them were confused, but a few shouted “millions” or “infinity”. So I asked if it is possible that all the movies fit on one disc. Then I drww many discs and asked “how it happens that after you tell YouTube to watch certain episode of Peppa Pig it finds the right disc?” They responded with silence so I draw a database and quickly described its role.

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

youtube.jpg

I wanted to give them some idea that what they see is only a tip of an iceberg and that the programmers are responsible for much more. I explained how we must take care of various stuff like:

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

  • protecting the movies against bad people (“what would happen if someone changed the database so that instead of Peppa Pig you would see some football match?” – answered with horror silence)

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

  • making backups (“what would happen one disc broke? then you would never be able to watch this Peppa Pig episode in which Daddy Pig tried to hang a picture?” – horror silence again)

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

  • so that YouTube works on different devices (smartphone, tablet, laptop)

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

  • presenting ads

  • 展示广告

  • counting the number of people watching each movie

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

  • showing thumbnails of similar movies, etc.

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

This was a good time to remind them that the programming is teamwork. The programs are big and demand knowledge of different areas so that many people are involved in their creation. At this point, I updated the first drawing, adding another programmer so that two were sitting close to each other.

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

The next topic was how computers work – very roughly of course. All I told them was that:

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

  • mouse and keyboard are for people to give commands to a computer

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

  • a computer screen is for computers to respond

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

  • inside every computer there is a processor (you can think of it as of a brain of the computer)

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

  • there is also some disk which allows computers to store information

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

procesor.jpg

I concentrated on processor telling them that it uses a funny language which consists only of zeros and ones. Then we had a bit of a fun when I pretended to talk in a language using only As and Bs. Then I explained that the programming languages used by programmers were created so that it is easier to talk with processors.

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

I followed with the simplest possible examples of programming languages statements (using some pseudocode). I wanted to show them some more but I felt they were losing their focus so I did not even present the for loop.

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

jezyki.jpg

To finish my lecture I drew, once again, symbols of what we talked about. I drew them one by one and asked questions like “what is this?” and “what do you remember about it?” and so on. It went pretty well.

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

przypomnienie.jpg

Additional comments, do’s and don’ts, tips & tricks:

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

  • It was more fun than I expected! I treated this seriously and I was well prepared, and it paid off. The kids were interested and I think they might even remember something.

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

  • Drawing pictures is the right way to go. It grabs their attention and lets me remind them about things we have discussed few minutes ago by pointing to a certain drawing.

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

  • Be prepared for repeating things over and over again. When I asked about languages they know then one guy raised his hand and said: “I know a little bit of English.” And then his colleague did the same. And then one more. And another. And then rest of the group joined one by one (or few at once). All saying exactly the same about English. It gets even more chaotic when you touch the subject they love like cartoons.

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

  • Some kids will get bored no matter what you do. Their attention span is simply too short.

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

  • Write carefully – e.g. they will protest when you write 1 so it looks like 7.

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

  • During the presentation I understood that there is no point in correcting them – for example, I think they understood that YouTube keeps cartoons on DVDs and when you ask for one then computer selects the right disc and plays it. I think this is perfectly fine. I wanted them to understand the concept (how the search looks like and what does a database do) and not the technical details. I feel this is the right way to go.

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

  • The presentation took me ~25 minutes. No sense to make it longer.

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