30分钟向15岁的孩子讲解编程[关闭]


100

下周,我被自愿坐下来与15岁的工作经验的学生讨论开发人员的生活和工作。

抓住的是

  • 我只有半个小时了,
  • 我将只是与她交谈的人之一-其他在业务中扮演不同角色的人也将整天与她一起工作。

我应该涵盖什么?我希望在半小时内教给她什么?

我认为她可能没有开发或编程经验。


158
令人沮丧的是,许多答案对孩子们来说是光顾的-他们的注意力集中时间短,如果他们看不到东西,他们就不会理解事物,他们无法处理任何复杂的事情。我们在这里谈论的是十五岁。15岁的孩子有足够的能力去理解和做复杂的事情,花很多时间深入研究某件事,并具有抽象的思想。我要比你们这些笨拙的人聪明15岁!
Tom Anderson

8
@tom另一方面,我亲身经历了大多数成年人甚至发现除了计算机上的视觉效果之外还很乏味的事情。这取决于孩子以及他们对计算机的兴趣如何。
2011年

6
@jh:嘿!我想的问题不是这个人是否十五岁,而是他们是否聪明,好奇。现在,我们所有人(除非麦克斯普姆除外)可能都是老兄,但我们都只有十五岁了,我相当怀疑,我们这些聪明而有好奇心的成年人中,他们都是愚蠢无私的少年。
Tom Anderson

33
“首先我要在上午10点以后上班,喝很多咖啡,然后用Mountain Dew和能量饮料追逐它。接下来的2个小时我会检查邮件,与唯一的一位女性开发人员交换食谱。整个建筑物,然后午饭后小睡一会儿。起床,再次检查电子邮件,在youtube上浏览猫视频,赶上最新的dilbert和smbc漫画。在您知道之前,是4:30的时间回家了。我做不了什么,但是3年每天有100位程序员每天都在一起做同样的事情,这就是电子游戏的诞生。”
朱丽叶

5
@汤姆:完全正确。许多程序员在15岁之前就开始学习,所以我不明白这种谦逊的态度。
尼尔·G

Answers:


130

我经常和高中生互动,所以我经常回答这个问题。请记住,与50岁的孩子相比,15岁的孩子比50岁的孩子更容易解释编程-因此,您无需笨拙或使用牵强的类比。

我通常从示例程序开始:

  • iTunes,Photoshop,Chrome和诸如控制台游戏之类的应用程序。
  • 操作系统,例如Windows,Mac OS,iPhone的iOS,Android。(相信我,他们会知道您在说什么。)
  • 处理数字或解决真正复杂的数学问题的程序-天气模拟,生物模拟,计算pi,AI,语言处理等
  • 最复杂的网站也涉及编程。
  • 过境售票机和自动取款机,微波炉和冰箱计时器,汽车导航。

在那之后,我通常会继续解释说,我们使用计算机可以识别的正式语言来编写程序,经常使用诸如记事本之类的简单程序来键入程序。这些语言看起来像是数学和英语之间的十字架,描述概念并提供公式和说明供计算机遵循。

然后他们通常会问我是否一直在使用计算机,这就是为什么我一直在使用Facebook,以及为什么我的眼睛还没有变坏。男人问我是否知道如何“骇客”,女孩问这是否是一笔好钱,或者计算机科学课上有多少女孩。

之后,如果他们仍然感兴趣,他们通常会开始问一些更容易回答(或至少对Wiki来说)的特定问题:诸如您将如何制作游戏,Windows Messenger如何工作等之类的问题。

如果周围有计算机,则可以显示并讲述一些代码-会产生明显影响的代码,例如Firefox中的设置对话框中的按钮单击处理程序,游戏引擎中的主循环或物理代码,来自网站等的JavaScript来源。


73
感谢您提醒我,向孩子解释编程要比向成人解释编程要容易。我一直忘了他们从来没有被计算机包围过。
2011年

12
哈哈哈,如果您知道如何“骇客”,我会一直得到那个哈哈哈哈哈
约翰·康纳利

3
@jhocking我也认为其中许多人比大多数白痴盒子聪明。除了质量,他们阅读的文本数量一定会有所帮助。
宫阪丽

4
@rei:嗯,我有较高的社交能力,我发现这些班级中的少数女性受到了如此多的关注,这真是令人难以置信的……这是故意的,但是……令人警惕。如果是我,我会大喊大叫。对于任何正常人来说,被一大群头疼的汗水包围着注定是不受欢迎的选择,因此您要么必须喜欢这种关注,要么您真的必须非常喜欢comp sci。因此,这么少的女性当然并不令我感到惊讶。我想象在较小的学校中,这并没有那么恐怖。
Satanicpuppy 2011年

4
好吧,我通常至少迟到十五分钟,啊,我用侧门-那样Lumbergh看不见我了,呵呵-嗯,之后我只需要大约一个小时的时间。是的,我只是凝视着办公桌;但看起来我在工作。午餐后,我大概还要再花一个小时。我会说,在给定的一周里,我可能只会做大约十五分钟的实际工作。
teambob 2011年

73

我向我五岁的孩子解释了以下内容:

我:“您知道人们在故事中如何讲神奇的话并改变世界吗?”
她:“是吗?”
我:“这就是计算机编程。”
她(安静地):“哇。”

15至30分钟还不足以解释任何真实的东西,而解释其潜在的复杂性则是确保它们尖叫的肯定方法。您每天都在工作,却忘了它是多么酷。世界上没有其他职业可以凭空创造出功能性的东西……在某些时候,其他所有人都必须进入肉类世界,并开始用锤子殴打事物。这是他们将自己的想法付诸实践的唯一途径。

不是我们。


77
大声笑@告诉你的孩子你是一个巫师
2011年

23
“世界上没有其他职业可以凭空创造出功能性的东西” –合同律师和立法者可以做到。
汤姆·安德森

48
@Tom他们对功能性事物的限制可能比创建它们更多。
2011年

16
@tom:不,他们没有。法律简介只不过是故事或诗歌,而不是功能性的东西。法律就像一个蓝图:它提出了一个想法,但随后有人必须走到肉的世界并加以执行。但是代码?我可以根据自己的内部逻辑编写一个买卖股票的程序,而无需我进一步输入就可以完成此事。我可以写一封信来管理防洪闸,重新布线,根据一天中的时间打开或关闭灯。这在专业中是独一无二的。
Satanicpuppy 2011年

15
@Satanicpuppy:不,您不能编写一个可以做任何事情的程序。不过,电子工程师可以制造一台可以做到这一点的计算机。如果您的要求很好,也许他可能会让它进入肉类世界并执行您的程序。
Tom Anderson

56

15岁的人可以理解任何概念。我本人从14岁开始编程(很多年前在学校)

30分钟就足够演示了。用与浏览器一样广泛的内容向她展示编程的魔力。

  1. 查找连接到互联网的PC。(如果不是您的话,则更加有趣;如果不是她的话,则更加有趣)
  2. 转到http://api.jquery.com/jQuery.getJSON/
  3. 向下滚动页面,找到cats示例的HTML代码。
  4. 选择HTML代码并复制它。
  5. 转到http://jsdo.it,然后点击开始编码
  6. 使用您的OpenID开设一个帐户。(一步过程)
  7. 选择左侧面板上的HTML标签,然后粘贴到此处。
    • 一秒钟后,右侧面板上会出现一堆猫
  8. 剪切javascript并将其粘贴到JavaScript选项卡中。(用于语法突出显示)
    • 一秒钟后,右侧面板上的猫会自动刷新
  9. 在javascript中寻找标签属性,然后将其更改为“ dog”。
    • 一堆狗出现
  10. 让她自己选择其他标签来重复该过程。
    • 建议她尝试两个用逗号分隔的标签
  11. 将行“ if(i == 3)”更改为“ if(i == 5)”;让她意识到
    • 现在有6张图片,而之前有4张图片
    • 如果代码中的数字与页面中的数字相匹配会更好
  12. 一起修复错误(交换那一行和之前的那一行)
  13. ...

1
:或者你可以使用的jsfiddle,无需注册jsfiddle.net/WXVra
rjmunro

最好!codecademy.com
2011年

26

脚步

作为一个将近15岁的年轻人,我可以自信地告诉您,您应该有一个出色的起点。

  1. 解释程序员的所作所为。(游戏,模拟器。)显示一些很酷的东西做。(在计算机上。请不要使用命令行-似乎吓到了所有人。)
  2. 说明您的制作方法。

    • 告诉他们您10101010一天都不输入。告诉他们你甚至都不知道该怎么做。(撒谎。确实知道这10101010是什么意思,对吧?;))告诉他们那是几年前的事。
    • 启动您的IDE。确保它看起来很酷-MSVS2010,QtCreator和NetBeans都不错。确保删除一些多余的东西,以使其看起来不那么令人恐惧(菜单更少),但要保留视觉效果。
    • 向他们展示一些伪代码的样本。使其易于理解:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      逐步进行该操作。告诉他们这不是代码的样子。代码看起来像English + Math。但是学习您所说的“语言”(阅读:语法)并不难。

    • 这次向他们展示更多“数学”的例子。

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      说明该代码将两个数字相加,就像计算器一样。向他们显示“真实”代码。(确保将大部分UI和其他内容放在单独的文件中,并使显示的文件简短而简单。)将它们更改为减法程序(通过将符号从更改+-)就在他们眼前。

  3. 说明他们进行编程需要了解的知识。(在各个级别。)

    • 基本的代数技能,例如if x + 1 = 2,then x = 1
    • 解决问题的能力。
    • [“高级”]高级数学。这适用于在NASA等地方工作的程序员。

您可以使用的字词

我们比您想象的要了解得多。

  • Facebook,Twitter,社交网络
  • Windows,Mac,Linux
  • 设计,更快,测试,启动/运行

您应该解释的术语

是的,我们仍然需要一些说明。

  • 编译器:将代码(如步骤2中的示例)转换为10101010
  • 编程语言:类似于步骤2中的示例。

不能使用的字词

我们中有些人知道这些东西,但是无论如何请不要说出来。

  • 操作系统以外的任何类型的“系统”
  • 优化,分析(哦哦)
  • 输入/输出(如果需要使用此功能,请尝试使其尽可能简单)

寻找“酷” IDE?看起来无非是Xcode。
艾伦·泽伊诺

2
@Alan Zeino你的意思是Emacs。
2011年

我最喜欢这个答案。我认为,与其他人(同样是高质量的)回答这个问题相比,采取这种策略的人会做得更多。
TehShrike 2012年

17

如果您开始谈论诸如流程,模式,需求之类的事情,那么她将立即关闭。今天的孩子具有图形和视觉动机,因此我会带一些东西来促进这些类型的刺激。在网络上向她展示一些时髦的内容,然后高水平地向她描述是什么使那件事发生了。我什至建议您拿起开发笔记本电脑,在屏幕上进行一些“酷”的操作-更改她前面的代码,然后在屏幕上观看它的更改。在那个时代,他们非常聪明,任何视觉效果都会激发人们的兴趣。


哦,视觉效果是个好主意。冒着太像一堂课的风险,我很可能会在白板上绘制图表来说明我所说的一切。
2011年

1
说到视觉效果,如何向她展示一个小型视频或节目Alice
卡洛斯·坎德罗斯

9
@Carlos作为15岁的孩子,我个人可以证明我讨厌爱丽丝(Alice)充满了一千个阳光。那可能是因为我已经知道如何编程了。我不确定初学者如何看待它。
2011年

1
+1表示“更改她前面的代码,然后在屏幕上观看它的更改”-首先向她展示“真实”事物及其背后的代码之间的直接联系。中等深度的东西,例如一些数据的排序或查询,而不仅仅是调整一些JSP或字符串格式。建立连接,然后从中建立连接。
汤姆·安德森

1
多年前使我能够用几行代码更改程序外观的能力-感谢您的建议
Dexter

13

在解释程序员的工作时,有两个很好的类比。一个是食谱;另一个是食谱。这个隐喻对于小范围解释每一行代码的作用很有用。程序员的工作是编写食谱,而计算机是厨师。

另一个比喻是,大型程序就像大型公司。有许多不同的部门专注于不同的领域并来回发送消息,最终整个部门实现了公司的目标。程序员的工作是设计组织的设置方式,而计算机就是公司中的所有人。


8

我会说保持一般。编程和许多其他专业归结为解决问题。向她展示如何每天解决问题。您可能会告诉她您正在从事的项目以及该项目将如何帮助您的客户。还包括一些有关您为什么(大概)喜欢工作的原因。

就我而言,我已经开发了一个教育视频教程网站,其他员工可以在该网站上发布教程。我将解释该项目的动机(无需与他人捆绑就可以远程教学),遇到的问题(不必将其视为难题)以及如何解决。我还将首先谈到为什么喜欢编程:我喜欢创造事物以及编程对现代世界的贡献。


8

举例说明您使用的软件。您有一个公开使用您的软件的客户吗?您是否开发了可以向她展示的内部应用程序?向她展示您工作的最终结果,以及最终用户看到和使用的内容。

然后,说明您帮助编写了它。遍历您编写的部分。如果可以,显示一些代码。概述这些代码行如何使应用程序的某些部分起作用。

谈论看到人们使用您的代码会给您带来多大的乐趣。

无论如何,这就是我向我的14岁堂兄解释的方式。他印象深刻,决定下学期参加编程班。


5
如果您使用对非程序员来说很酷的软件,它会很好地工作。我最近的许多项目都生活在数据库中,并且看起来像命令行(甚至不是那些看起来很沉闷的Web应用程序中的那些),但是只要处理了数据就可以了,没人管。对于非程序员,这是一个闪烁的提示,每隔几分钟输出一行文本,然后停止。如此无聊…… 叹息 :(
FrustratedWithFormsDesigner

1
从更大的角度来看“工作的最终结果”。这不仅意味着您使用的软件;这也可能意味着您使用的后端软件启用了各种客户端应用程序。
2011年

至少您不是像我这样的SharePoint开发人员@FrustratedWithFormsDesigner。我确定我能在所有尖括号中找到看起来很酷的东西!
德克斯特

4
@FrustratedWithFormsDesigner 15岁那年,我和一个来自学校的其他聪明孩子一起参加了“让我们说服学龄前的孩子值得在CS上申请”的活动。命令行内容看起来很酷。它对我们来说似乎超级强大,这使它很酷。不要以为15岁的女孩不想统治宇宙:)
testerab 2011年

当然,您已经在业余时间编写了一些有趣的东西,可以显示出来。我编写了一个俄罗斯方块游戏,一个分形查看器和一个数独求解器。这些都很有趣。
卡拉

7

您是否熟悉棋盘游戏Robo Rally?

我发现这是编程的完美乐趣类比。基本上,您是在使用简单的命令(主要是箭头)对机器人进行编程,以使其到达游戏板上的某个位置,然后再到达其他位置。

老兄,我希望我还有BigTrak ...


4
我们会在游戏之夜半定期播放(最多8人,其中大多数是数学或CS学生)。很好地说明了多线程可能会出错:-p
–PaŭloEbermann

@Paulo-大声笑从来没有那样想,但是你是对的!
系统停机时间

6

显示一些简单但有用的东西。我认为一个很好的例子如下:

  1. 获取完整的文件夹或图像(只要它们不能全部显示在文件夹资源管理器的一个屏幕上)
  2. 告诉他们您的目标是调整图像大小(也许是这样,您可以通过电子邮件将其发送给朋友,或在任何地方在线发布)
  3. 演示在GIMP / Photoshop /任何版本中调整一幅图像的大小
  4. 现在指出这样做至少需要30秒,而且您有很多图像,您不想花一个小时来做
  5. 编写一个Shell脚本以使用ImageMagick调整它们的大小
  6. 让他们感到惊讶的是,使用简单的3行程序调整所有图像的大小比在Photoshop中调整单个图像的速度更快

我喜欢这种方法的原因是:

  • 您不必告诉他们编程为什么有用,他们只是看到了为什么
  • 您可以在观看节目的几秒钟内编写整个程序(我建议您事先尝试一下,因为演示总是出错的)
  • 您不是在假设他们是白痴/需要某种“孩子”示例-这是一个简单的示例,但是它具有现实世界的用途

您也许可以想到更好的示例,但是我认为该样式对于“首次介绍”很有帮助。


5

大多数15岁的“这些日子”都拥有大量的计算机经验。我会尝试更多的方法。我将向她展示一些代码(不要尝试详细解释它,而可能涵盖“流程”的极端基础知识)并向她展示结果。甚至HTML都适用于此类示例。然后说:“每天,我基本上都会这样做。除了有成千上万的代码行和非常大而复杂的程序之外”。

然后,说明您通过编程解决的问题类型以及为什么喜欢这样做。例如,我说我喜欢编程,因为“我喜欢看到我的代码作为应用程序在计算机中得以实现”


4

首先,您需要进行揭穿比赛。

电影,流行文化甚至是该领域的人们(以及这个问题)都试图将编程(以及整个计算机科学领域)描绘成某种魔术。这不是魔术。

编程只是描述任务,然后将这些任务组合起来以解决问题。如果要查找并行项,请使用数学。计算机就像数学老师一样,要求您展示自己的全部工作

从物理角度来看,计算机不是智能的,它们只了解我们所知道的信息。因此,当计算机程序员想要创建一个程序(例如播放CD上的音乐)时,他们“简单地”需要告诉计算机如何读取CD上存储的数据,然后如何将这些数据转换为声波,最后,如何从扬声器输出那些声波。

将这一思想带入新的高度,您可以继续进行编程如何在彼此之上构建任务。就像他/她必须学习算术才能在数学上学习代数一样,在告诉他们如何执行更复杂的任务之前,还需要告诉计算机如何“做基础”。多年以来,计算机科学家和程序员已经能够“教”计算机足够的基础知识,以至于我们可以开始与计算机“对话”,更接近我们彼此之间的对话方式。

回到现实生活中,您的数学老师可能会告诉您解决“ 15乘以3的幂”的问题,但是您只知道该怎么做,因为以前您被告知“ X乘以Y的幂”分解为“乘XX,并做到这一点Ÿ时报” [技术上Ÿ -1倍,但诶。]

就像你的数学课,程序员已经建立的“已知”任务的基础,所以我们并不需要把重点放在这个小东西的详细资料,并把我们的时间来解决实际的问题,与其说是如何执行的基本任务-我们现在可以假设计算机了解如何执行基本操作。


3

我会做那些让我在9岁左右就着迷的事情。将C64拿出阁楼,然后做:

10 PRINT "YOU SMELL"

20 GOTO 10

(感谢爸爸)。

然后,当它的乐趣结束时。我给她看这个猜数字游戏。是的,全部使用BASIC。迫切需要现代语言来显示计算机接受指令。


2
好。你击中了要害。让它变得非常简单,并使其有趣。而BASIC就是完美的选择。
Mike Dunlavey

1
同意,BASIC很棒,而GOTO是开始时最好的语言构造。我的第一个程序非常相似。
Tomas Andrle,2011年

我不会说我完全反对这一观点,但是直到经过几年的C ++编程,我才了解goto。从那时起,我一生中从未输入过一个goto。是好是坏,我不会判断-我只是想知道goto不一定...呃...必要。
2011年

3

从她的日常工作(例如Facebook)开始,向她解释一个简单的方面(例如登录)可能会变得非常复杂可能会有所帮助。

您可以从这里分支到数据库,应用程序设计,再分支到安全性的某些方面,这对她有帮助。

您甚至可以问她类似的东西,“如果Facebook上有一件事情可以改变,那会是什么?” 然后引导她逐步了解如何进行更改以及涉及多少人。

我首先学习了对Pascal进行编程的知识,并且全都被我的程序接受了输入,弄乱了输入并打印出了一些不同的东西。我从那里迷上了。有些人容易上锁。


使用Facebook是一个很好的建议,谢谢@ client09
Dexter

2

我希望去某个工作地点工作,该工作地点大概是在开发她必须对该领域感兴趣的软件?

没有固定的答案,我会向她询问5-10分钟,让她了解她确实知道的内容,然后尽力而为。


不确定@Chris-科技公司中有很多不同的角色,从会计到人力资源再到开发和咨询。我们给她简要介绍了许多不同的角色,所以我认为我不会做这样的假设
Dexter

好吧,公平地说,您从未说过为什么要选择公司类型。:p可以肯定地说,如果有人去吉他店工作,他们可能会对吉他感兴趣,而不是成为木制琴师。
匿名

2

从高层次开始。也许可以解释说计算机编程是关于解决问题的:提出问题并设计解决方案,将其写成一堆机器可以使用和理解的指令。

困难的部分可能是想出一个例子,即一个15岁的女孩会觉得有趣和相关。从来没有遇到过这种情况并且不认识她,所以我不确定该向您推荐什么...避免使用代码示例,直到接近尾声为止,除非是非常简单或有趣的情况,例如“ Hello world”程序或简单而图形化的东西(在窗口中绘制一些形状,跟踪鼠标等)。


我认为如果不向他们展示我正在研究的代码的至少一些示例,我无法教给他们一些编程方面的知识
Dexter

@Dexter:在30分钟内,我不确定我是否想过多地讨论代码的外观。我并不是说什么都不显示,但是由于您没有太多时间,我不认为代码应该成为重点。它可能会变得非常干燥和无聊。如果可以,请更多地讨论想法和概念。如果您可以找到一个简单的示例(可能少于10行),该示例容易理解,也很有趣,那就去吧!
FrustratedWithFormsDesigner

同意,但是我想与其讲一个简单的第1章示例,不如显示一个我开发的程序并切换几行代码以显示结果。.最终,我不认为我是能够教她如何编程,但也许我可以激发她去了解更多信息
德克斯特

2

在几次失败和几次不错的尝试之后,这是我的看法:

编程是解决问题的方法。

首先从他们每天都会使用的编程的具体东西开始-Internet浏览器(facebook),手机,收银机等。让他们给您很多示例。确定所有这些东西中都装有一台计算机。计算机的心脏是处理器。

处理器就像一个非常快速但非常笨拙的工人。如果您给它一些说明,它将按照您说的做。它不会做任何额外的事情,也不会告诉您您执行的操作是否有误。不过,此处理器可以完成所有操作-如果您确切地告诉它如何执行操作,它可以拨打电话或将图片放入电子邮件中。

问她如何告诉一个非常快但很笨的工人从一台苏打水机买一罐苏打水。当她开始描述步骤时(“将钱放入机器中并按下按钮。”)开始像程序一样解剖它(“什么是钱?我如何将其放入机器中?当我将钱放入机器中并按时同时按下按钮,什么也没有发生。”)。如果您有白板,请从左侧开始阅读她的第一组说明。当她修改它们时,将新的较大列表放在右侧。当您有一套很好的说明时,请开始进行概括(“从口袋中取出钱,从托盘中取出苏打水,听起来类似-哪些部分相同/不同?”)进行概括并将其放在中间并划掉它们现在包含的部分。最终尝试将各个部分绑起来,使其与她的原始指令(例如函数调用)相匹配。其他好的练习:邮寄一封信,穿过一扇门,画一个圆圈/正方形/三角形。

因此,编程就是解决问题的方法:将问题分解成多个部分,识别出常见的部分,然后将这些部分重新组合起来以解决问题。很快,您发现某些零件在许多问题中是通用的,然后开始将零件放在一起以解决您甚至不知道的问题。

好的,到此为止她可能已经明白了,但她可能很无聊。接下来是一组很酷的编程示例。着色器和相关的可视代码易于演示-您可以放置​​图片,并通过很小的代码更改就可以对其进行更改。如果她对Facebook表示感兴趣,请炫耀通过REST与Facebook交谈以查看朋友的朋友(她的6度)数据。如果她喜欢视频游戏,请展示几个开源游戏演示以及一些代码片段,以及它们如何帮助游戏运行。通过展示一些她可以在家进行调查的免费工具和资源来完成此工作。(Python,C#等)

我的失败尝试:尝试解释pi计算(他们在问),C-Jump棋盘游戏http://c-jump.com/(他们没有理解并且指令有错误),并实时编码2d游戏(无论我在演示之间走了多么小的步伐,都无法引起兴趣)。

祝好运!


2

编写一个简单的程序。不,不是“ Hello World!”

我要说的是,有很多类型的编程语言-制作游戏的语言,控制机器人的语言-但是您要使用的是HTML。

创建一个没有任何内容的网页,然后添加一个表单,该表单将向其电子邮件地址发送电子邮件。大概她有一部能够通知所有者他们有新电子邮件的手机,因此您可以告诉她,这是她的朋友和家人与她联系的一种好方法。如果她将来拥有自己的网站,则可以告诉她可以将表格放在她的网站上,从而允许她的客户和业务伙伴与她联系。

另外,如果她有点调皮,我会告诉你是什么让我对编程感兴趣:黑客。当时,我制定了有史以来最出色的程序,可以在AOL上玩耍(14到15岁的时候,这是我做过的几十件事中唯一一项比​​我的表现要好)。在白帽子方面,我还制作了第一个垃圾邮件清除程序(1995年)。我能够使我的在线体验变得更加愉快,我们将继续保留它。我想在计算机上做的所有事情都是我必须弄清楚的冒险或难题,而我想在计算机上做的事情无穷无尽。当然,让它正常工作有时让人头疼,但是编写一个程序可以比任何人都更快更好地完成工作,或做一些普通民众根本无法做的事情,就像在制造一台让人感到自豪的精密机器。现在,您可能会避开任何严重的问题,但是在Visual Basic中制作可以在启动时启动的东西(坐在屏幕或系统托盘的侧面)并从那里开始,这将是非常容易的,您可以使它启动她喜欢的网站,她喜欢的程序等。您可以向她介绍启动exe和网站所需的命令,然后只要求她做出一些按钮,然后将代码添加到这些按钮中。 ,放入她喜欢的网站(facebook,twitter等)和程序(iTunes,文字处理器等)。如果她的计算机在她的房间里,您也可以在上面扔一个闹钟以增加功能。当然,30分钟太短了,无法带领她完成,因此您必须已经完成了。最后,您会通过电子邮件将2-3页的用户手册,代码和.exe发送给她...,然后给她一点推销:起初并不容易,但是一旦获得它并没有那么糟糕,将在生活中非常有用,并将有助于发展她的分析思维。


2

我曾经教过18岁的大学生,我想15岁的大学生差不多。没有练习就不要期望成功。我上第一堂课花了几周时间才能“闯进来”。

我要学习的最大的事情是,我的想法是如此简单明了,以至于我担心自己无法填补时间,这对学生来说根本就不是这样。我了解到您必须一步一步走-否则,这只是“ geh whiz”的魔法。

我不确定如何在30分钟内适应这个问题,但我要做的第一件事是向他们展示我所制造的一台小型家用计算机,该计算机被编程为可以通过单击扬声器来调小调。我解释说,它可以通过减少计数器的数量来发出音符,以作为两次单击之间的延迟。我只是在菜板上写了伪代码,就像食谱一样。然后,有一个小电容器可以挂在电线下,使整个设备运行慢大约1000倍。然后他们可以听到咔嗒声-等待-咔嗒声-等待...然后,当我解开电容器时,它的音调很小。

这样做的目的是使计算机只能做简单的事情,并且一次只能做一件事情。在上一步完成之前,它们不会开始每个步骤。(是的,是的,我知道-流水线以及所有这些,但我们正在与新手交谈。)只有电子化的速度使他们似乎可以一次完成所有工作,这就是新手倾向于假定的事情(以及读书的目的) 。那是真正的基本概念之一,没有这些概念,您将无法开始理解编程和计算机。对我们来说,这是如此的复杂,以至于我们甚至都没有意识到我们知道它,但是初学者却不知道。


1

我知道它不是编程语言,但我认为HTML是一个不错的起点。因为您会立即得到结果。

你好,世界

然后做:

您好<b>世界</ b>

等等。


1

如果是我,我会告诉她编程是关于将一​​个任务分解为一些小任务,以帮助您解决它们的方式进行。然后用傻瓜计算机不会误解的语言来表达这些小任务。但是您还必须以其他程序员也可以轻松理解它的方式来进行操作-这不是一回事。

也就是说,除了其他所有人所说的之外...


1

这不仅仅是我个人的经验,而不是简单的“答案”。

我为什么感兴趣? 我的父母于1984年购买了IBM PC XT(我出生于1984年)。它具有640kb RAM和20MB HDD和一个5英寸FDD并运行MS-DOS v3.2。直到我达到第5级标准,我才被允许触摸它;当我最终被允许使用它时,我倾尽了全部的岁月。对它的好奇心

另一方面,我的姐姐在需要时可以使用同一台PC和一个Quadra 610 mackintosh,并且她要与支付在摆放的桌子上一样多的注意。

教姐姐... 我试图用BASIC教姐姐计算机编程。从启动计算机到键入程序并执行它,我使她做到了一切。这是线路计划。

10 PRINT "CAT"
20 END

这花了半个小时。当她最终执行该命令时,它印有“ CAT”字样,她感到非常愤怒。她原本希望看到猫的照片出现。她冲出了房间,那永远是编程的终点!

道德:产出最好与他们投入的时间和精力成正比。

教高中生Labview和Lego NXT 我曾担任FIRST Robotics的导师一年,不得不指导孩子们在NI Labview中对机器人编程。坦白说,所需的编程技能远高于高中生的水平。但是比赛的目的是让孩子们对工程感到兴奋,并提高他们应对挑战的能力。只要程序只有一个if语句和一个循环,一切就可以了。人们看到我为上一年建造的机器人创建的代码图时,就退出了机器人的编程部分。

人们说15岁的孩子可以做复杂的事情,并且注意力可以集中在几个小时上,我发现他们奇怪地缺乏动力。他们想做一些简单的事情,这些事情不会费劲。他们比在程序上更喜欢在车床上进行CAD和铣削零件。


1

什么是CS?

我认为在进行演示之前,先简要介绍一下CS在世界上的地位会有所帮助。我喜欢Hal Abelson对CS相对于数学的描述:虽然数学可以帮助您用法律来描述世界,但是CS可以帮助您描述做事的方式。他的例子是平方根函数:数学将定义它,但对于任何给定的输入都不会帮助您找到它。CS会的。在较低的层次上,电气工程和物理为启用Internet的硬件奠定了基础,但未解决如何使人们使用Internet的问题。

成为一名程序员感觉如何?

然后是一个程序员的问题。吸引我的是,它比其他任何技术领域都可以更快地进行尝试,测试,修复。这是不间断的解决问题的方法,而在其他领域,单个循环的周转时间可能是数月。它对几乎所有其他技术领域也很有用,远远超出了其他大多数技术领域。因此,如果您不知道自己想做什么(很可能),那么尽早做好是一件好事。在大学里,除了能够编写实验代码外,很少有什么事情对更多教授更有用。

眼睛糖果,与代码相关

然后,当然,不要忘记演示。例如,获得一份地震(开源)副本并进行一些单行更改(例如,更改重力强度)并重新编译可能会很酷。也让她看一下代码。让她放心,她不应该期望了解太多,现在看起来似乎很乱,但是话又说回来,她还没有学过的外语报纸也是如此。您可以说,尽管如此,她仍然可以看到事物已分配给事物,对象被告知要做什么,这是我们设置重力的地方,等等。


1

我从14岁起就开始编程。虽然大多数(注册的50名学生中的47名)要么在年中辍学,要么只是决定不参加明年的高级课程,但我坚持了下来,并学到了一些非常重要的知识:

编程使您能够从零开始创建某些东西。您可以将文字变成满足您需求的有用工具,为您和您的朋友提供的娱乐活动,或者只是您可以向朋友展示并说“看我做了什么”的东西。

我们从一开始就被教导“ Hello World”,但是直到让我的代码与用户交互时我才感兴趣。从开始教我们阅读“ cin”输入内容的那一刻起,我便着手制作一个可以在课堂上玩的Mad-Lib程序。我的第一个障碍是读取包含空格的输入,然后格式化输出。后来我希望能够将这些故事保存到文件中,因此我需要学习文件IO。克服障碍来实现自己的目标是让我参与进来的原因。

在这一年的晚些时候,我们发现网络管理员正在记录我们在计算机上课期间用于通信的“网络发送”和Novell SendMessage客户端的使用记录,他们在学生使用它作弊后将其禁用。因此,我写了一个聊天室来代替管理员禁用的聊天室。这是我创造的第一个真正有用的东西。我以Battle.Net的聊天系统为模型,其中包括用户注册,主持人,甚至是基本的加密和影子文件系统,以防止用户篡改(所有文件都必须驻留在共享的网络驱动器上,以便学生进行操作)访问和使用该程序)。这些不是我已经意识到的概念,而是我自己想出的解决问题的方法。对我来说,那是编程的乐趣。

因此,要正确回答这个问题,除了讨论开发软件的意义之外,交互式演示可能是一个好主意。最好能解决她遇到的问题,例如自动调整相机中所有大图片的大小。虽然稍微复杂一点,但她可能会通过一个简单的留言页面与自己的朋友共享而开心。每当有新消息发布时,您都可以通过电子邮件将其发送给他人,并让她编辑代码以将其发送给她的电子邮件而不是您的电子邮件。另外,让页面显示最后X条评论,并让她也调整评论数,然后查看结果。


1

在我以前工作的地方,有时会有工作经验的孩子进来。有些人对计算机感兴趣,有些则没有。我们曾经让他们坐在电脑前,然后让他们编写猜谜游戏。(计算机随机选择一个数字,如果他们的猜测过高/过低,用户会得到反馈。)这很简单,而且确实是一个有趣的结果。没有比向他们切实展示他们可以创造的东西更强大的了。


1

当您想要引起(并保持)某人的注意时,然后问,不要告诉。询问他们如何执行简单的任务,例如喝水。然后向他们展示如何遵循他们提供的说明(例如“沿着大厅走”)实际上并未解决何时左转,右转,停止等问题。理解并处理这些边界条件,这就是业务编程!然后,您可以演示“直到完成”循环如何处理“走到墙前”的情况,以将元任务从另一个任务的一英尺前完成走路


1

我不确定这是一个传奇还是真实的故事,但我正在阅读为什么幸运的一​​天变得如此僵硬。故事的一部分是他如何向在火车上遇到的孩子(甚至是孩子)展示编程。
如您中某些人所知,_why是一个Ruby人(而且Ruby对普通人非常友好)。他正在用Ruby开发游戏,而一个小孩走近他去看看他在做什么。他首先向他们展示了结果 -工作中的游戏。然后,他向孩子展示了如何修改代码中的内容以更改结果。然后,他让孩子代码并查看修改后的结果。
我认为那应该是您的一般工作流程-结果,修改,播放。您应该以人类友好的语言找到一些项目(游戏将是最佳选择)并将其展示给孩子。

令我难过的是,我不知道这个故事是否真实。还是很酷的。

另外,还有一件事。我记得我最初的编程经验- MessageBox在Delphi中。太酷了,因为我可以让计算机做我想做的事并立即看到结果。
然后,出现了微控制器。它们甚至更好,因为我的代码可以改变现实世界。我的意思是,为变量分配一些值不再过于抽象,因为它导致输出端口上出现电压,然后导致引擎运动。这很酷。您可能想要选择这种方式-向孩子展示类似Arduino的东西。

您看,我认为这全是关于更改和查看结果。


0

向她展示您所做的某些事情的最终结果。大致谈论您在项目中的角色。如果她似乎有兴趣,甚至可以帮助她打个招呼的世界。


0

我最喜欢的编程类比是巫术(哈利·波特风格),例如Satanicpuppy。我在非技术性的同龄人和孩子中都使用了它,它看起来工作得很好,并且肯定传达了计算机给我们的力量。

电脑是我们的魔杖。考虑到正确的手腕和咒语,它们可以使我们演奏魔术。作为程序员,我们可以访问由我们的前辈编写和完善的拼写书籍(库)。我们可以创建新的咒语和咒语,也可以使用现有咒语和咒语。有些很容易,有些需要更多的练习才能真正有效地使用,常常要权衡利弊,并且有许多不同的方法可以解决相同的问题(我应该使用好药水还是咒语?)。

这个扩展的隐喻确实可以很好地延伸,并且通常使我能够以一种领域外的人可以访问的方式来表达我对编程的热情。


0

了解孩子的最好方法是先成为孩子。小时候,我讨厌做作业,拼版等。因此,有些入口点可以吸引他们的注意力。在30分钟的时间里,尽管我们无法解释所有内容,但我们可以尝试给他们一种曝光,感兴趣的孩子会从中获得启发。从他们的相关主题开始,例如家庭作业等,告诉他们计算机如何在短短几秒钟内完成拼版等。

祝你一切顺利.. !做得好

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.