下周我自愿参加坐下来谈论一个15岁工作经验的学生的开发人员的生活和工作。 br />
我只有半小时了,
我将只是与她交谈的人之一-其他在业务中扮演不同角色的人也将贯穿于他们整天在她身边的工作。

我应该讲什么,而我又希望在半小时内教给她什么呢?

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

评论

令人沮丧的是,许多答案对孩子们来说是光顾的-他们的注意力分散很短,如果他们不是视觉对象,他们就不会理解事物,他们无法处理任何复杂的事情。我们在这里谈论的是十五岁。 15岁的孩子非常有能力理解和处理复杂的事情,花费大量时间深入研究某件事,并具有抽象的想法。我要聪明的十五岁了,你们当中任何一个笨蛋!

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

@jh:嘿!我想的问题不是这个人是否十五岁,而是他们是否聪明又好奇。现在我们所有人(除非Maxpm都是)都是老兄,但我们都只有15岁,而且我相当怀疑那些聪明,有好奇心的成年人中的人都是愚蠢无私的少年。

“首先,我要在上午10点以后上班,喝很多咖啡,跟着Mountain Dew和能量饮料一起喝下去。接下来的2个小时我会检查邮件,与唯一的一位女性开发人员交换食谱。整个建筑物,然后午饭后小睡一会儿。起床,再次检查电子邮件,在youtube上浏览猫视频,赶上最新的dilbert和smbc漫画。在您知道之前,它是4:30的时间回家。我做不了什么,但是3年每天有100位程序员每天都做同样的事情,这就是电子游戏的诞生。”
@汤姆:完全正确。许多程序员在15岁之前就开始学习,所以我不明白这种谦逊的态度。

#1 楼

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

我通常从以下示例开始程序包括:


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

之后,我通常会继续说明我们在计算机可以识别的正式语言,通常以诸如记事本之类的简单方式键入。语言看起来就像是数学和英语之间的十字架,描述了概念并提供了计算机遵循的公式和说明。

然后,他们通常会问我是否一直在使用计算机,如果这为什么我一直在Facebook上,为什么我的眼睛还没变。伙计们问我是否知道如何“砍死别人”,女生们问这是否是一笔好钱,或者计算机科学课上有多少女生。

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

如果周围有电脑,您会可以显示并讲述一些代码-会产生切实的效果,例如Firefox中的设置对话框中的按钮单击处理程序,游戏引擎中的主循环或物理代码,网站上的一些JavaScript来源等。

评论


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

–跳楼
2011年6月17日20:42

哈哈哈,如果你知道如何“砍死别人”,我会一直得到那个哈哈哈哈哈

–约翰·康纳利(John Connelly)
2011年6月17日23:46

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

–宫阪丽
2011年6月17日23:57



@rei:嗯,我有较高的社交技巧,我发现这些班级的少数女性受到了如此多的关注,这真是令人感到敬畏。如果是我,我会大喊大叫。对于任何正常人来说,被一大群汗湿的口气包围着注定是对他们的阻碍,所以您要么必须要吸引注意力,要么就必须真的很喜欢comp sci。因此,这么少的女性当然也不足为奇。我想象在较小的学校中,这并没有那么恐怖。

–撒旦小狗
2011年6月21日,0:13

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

– teambob
2011年7月4日在11:20

#2 楼

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

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

15-30分钟不足以解释任何真实的东西,并解释底层的复杂性是确保它们尖叫的一种肯定方法。您每天都在工作,却忘了它有多酷。世界上没有其他职业可以凭空创造出功能性的东西……在某个时刻,其他所有人都必须进入肉类世界,并开始用锤子殴打事物。这是他们将他们的想法变为现实的唯一方法。

不是我们。

评论


大声笑@告诉你的孩子你是一个向导

–跳楼
2011年6月17日15:49

“世界上没有其他专业可以凭空创造出功能性的东西” –合同律师和立法者可以做到。

–汤姆·安德森(Tom Anderson)
2011年6月17日16:30

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

– Maxpm
2011年6月17日下午16:37

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

–撒旦小狗
2011年6月17日17:35

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

–汤姆·安德森(Tom Anderson)
2011年6月17日在18:15

#3 楼

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

30分钟就足以进行演示了。向她展示使用浏览器等广泛工具进行编程的魔力。


查找连接到互联网的PC。 (如果不是您本人,则更多乐趣,如果不是她本人,则更多乐趣)
转到http://api.jquery.com/jQuery.getJSON/

向下滚动页面并找到猫的示例的HTML代码。
选择HTML代码并复制。
转到http://jsdo.it并单击“开始编码”。
使用您的OpenID开设一个帐户。 (一个步骤)
选择左侧面板上的HTML标签,然后粘贴到此处。
剪切javascript并将其粘贴到JavaScript标签中。 (用于语法突出显示)

在一秒钟内,猫会在右侧面板上自动刷新


在javascript中查找标签属性并将其更改为“ dog “。

一群狗出现了。


让她自己重复选择其他标签的过程。

建议她尝试使用两个用逗号分隔的标签


将行“ if(i == 3)”更改为“ if(i == 5)”;让她意识到

现在有6张图片,而在有4张之前,
如果代码中的数字与页面中的数字匹配



一起修复错误(交换该行和之前的错误)
...


评论


或者,您可以使用jsfiddle,而无需注册:jsfiddle.net/WXVra

– rjmunro
11年6月24日在16:56

最好! codecademy.com

–跳楼
2011-09-10 21:35



#4 楼

步骤

作为一个将近15岁的人,我可以自信地告诉您,您应该有一个引人入胜的起点。


说明程序员的工作水平。 (游戏,模拟器。)展示您的精彩作品。 (在计算机上。请不要使用命令行-似乎吓到所有人了。)

说明如何制作。


告诉他们不要输入一整天都在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和其他内容放在单独的文件中,并使显示的文件简短而简单。)将它们更改为减法程序(通过将符号从+更改为-)就在他们眼前。




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


基本代数技能,例如x + 1 = 2,然后x = 1
问题解决技能。
[“高级”]高阶数学。这是供在NASA等地方工作的程序员使用的。



您可以使用的术语

我们比您想像的要多。


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

您应该解释的术语

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



编译器:转换代码(如步骤示例) 2)放入10101010中。

编程语言:看起来像第2步中的示例。

您不能使用的术语

我们中有些人知道这些东西,但是请不要这样说。


除操作系统之外的任何“系统”

优化,分析(哦哦)
输入/输出(如果需要使用此输入,请尝试使其尽可能简单)


评论


寻找“酷” IDE?看起来无非Xcode。

–艾伦·泽伊诺(Alan Zeino)
2011年7月6日在7:54

@Alan Zeino你的意思是Emacs。

–右键
2011年9月13日16:35



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

–TehShrike
2012年2月24日在23:18

#5 楼

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

评论


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

–跳楼
2011年6月17日15:32



谈到视觉,如何向她展示一个小视频或Alice节目?

–卡洛斯·坎德罗斯(CarlosCampderrós)
2011年6月17日15:37



@Carlos作为15岁的孩子,我可以凭一千个太阳的强烈激情亲眼证明我讨厌爱丽丝。那可能是因为我已经知道如何编程了。我不确定整体初学者如何看待它。

– Maxpm
2011年6月17日下午16:36

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

–汤姆·安德森(Tom Anderson)
2011年6月17日下午16:37

多年前使我能够通过编程来更改程序外观的功能,这使我很早就开始编程了-感谢您的建议

– exter
2011年6月17日在21:01

#6 楼

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

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

#7 楼

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

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

#8 楼

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

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

谈论人们看到代码被人们使用会带来多少乐趣。

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

评论


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

–FrustratedWithFormsDesigner
2011年6月17日在16:05



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

–跳楼
2011年6月17日下午16:27

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

– exter
2011年6月17日在21:06

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

– testerab
2011年6月17日23:35

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

–卡拉
2011年6月20日9:34

#9 楼

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

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

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

评论


我们在游戏之夜半规律地进行此游戏(最多可容纳8人,其中大多数是数学或CS学生)。很好地说明多线程可能会出错:-p

–PaŭloEbermann
2011年6月17日在22:14



@Paulo-大声笑从来没有那样想,但是你是对的!

–系统停机
2011年6月17日23:52

#10 楼

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


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

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


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

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

#11 楼

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

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

#12 楼

首先,您需要进行一些挑战,以消除挑战。

电影,流行文化,甚至该领域的人们(以及这个问题)都试图刻画编程(以及大部分计算机科学)场)作为某种魔术。这不是魔术。

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

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

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

回到现实生活中,您的数学老师可能会告诉您解决“ 15乘以3的幂”的问题,但是您只知道该怎么做,因为以前您被告知“ X乘以Y的幂”分解为“将X乘以X,然后进行Y次”(技术上是Y-1次,但是。)

就像您的数学课一样,程序员已经建立了“已知”任务的基础,因此我们不必专注于小事情的细节,而是可以将时间用于解决实际问题,而不必花太多时间来执行底层操作任务-现在我们可以假设计算机了解如何做基本的事情。

#13 楼

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

10 PRINT "YOU SMELL"

20 GOTO 10


(谢谢爸爸)。

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

评论


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

–迈克·邓拉维(Mike Dunlavey)
2011年6月19日19:50

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

– Tomas Andrle
2011年7月4日在10:57

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

– 31eee384
2011年7月5日在18:14

#14 楼

从她的日常工作(例如Facebook)开始,并向她解释一个简单的方面(例如登录)可能会变得非常复杂可能会有所帮助。然后进入一些安全方面,这对她是有帮助的。

您甚至可以问她类似的东西,“如果Facebook上有一件事情可以改变,那会是什么? ”然后带她逐步了解如何进行更改以及涉及多少人。有些不同。我从那里迷上了。有些人容易上锁。

评论


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

– exter
2011年6月17日在21:36

#15 楼

我希望能在某个地方工作,该地方大概开发了她必须对该领域感兴趣的软件?她确实知道的事情然后就尽力而为。

评论


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

– exter
2011年6月17日在21:10

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

–匿名
2011年6月17日在21:42

#16 楼

从高层次开始。也许可以解释一下计算机编程是关于解决问题的方法:提出问题并设计解决方案,将其写成一堆机器可以使用和理解的指令。一个15岁女孩会发现有趣和相关的例子。从来没有遇到过这种情况并且不认识她,所以我不确定该为您推荐什么...避免代码示例,直到接近尾声为止,除非是非常简单或有趣的情况,例如“ Hello world”程序或简单而图形化的东西(在窗口中绘制一些形状,跟踪鼠标等)。

评论


我认为我不能在不向他们展示至少我正在研究的代码示例的情况下教别人编程。

– exter
2011年6月17日在21:07

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

–FrustratedWithFormsDesigner
2011年6月17日在21:12

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

– exter
2011年6月17日21:35

#17 楼

经过几次失败和几次不错的尝试后,我的看法是:

编程是解决问题的方法。

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

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

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

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

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

我的失败尝试:尝试解释pi计算(他们在问),C-Jump棋盘游戏http://c-jump.com/(他们没有“不明白,说明是错误的”,然后现场编写2D游戏(无论我在演示之间所走的步伐多么小,都无法引起兴趣)。

祝你好运!

#18 楼

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

我要说的是,有很多类型的编程语言-一种可以制作游戏,一种可以控制机器人-但是您要做什么呢?要使用的是HTML。

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

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

#19 楼

我曾经教过18岁的大学生,我想15岁的大学生差不多。
不要指望没有练习就成功。我上第一堂课花了几周时间才被“磨合”。时间对学生来说根本就不是那种时间。
我知道你必须走一步,否则就只是“ geh whiz”魔术。

你如何适应30岁分钟,我不确定,但是我要做的第一件事就是向他们展示我所制造的一台小型家用计算机,该计算机可以通过单击扬声器的进出来进行一些微调。我解释说,它可以通过减少计数器的数量来发出音符,以作为两次单击之间的延迟。我只是在菜板上写了伪代码,就像食谱一样。然后,有一个小电容器可以挂在电线下,使整个设备运行慢大约1000倍。然后他们可以听到咔嗒声-等待-咔嗒声-等待...然后,当我解开电容器时,它的音调很小。事情,然后一次完成。
直到上一步完成,它们才开始每一步。
(是的,是的,我知道-流水线等等,但是我们在说到新手。)
只有电子化的速度才能使他们看起来能够一次完成所有工作,这是新手倾向于假定的东西(连同读心术)。
这是真正的基本概念之一
对我们来说,这实在太复杂了,以至于我们甚至都没有意识到我们知道它,
但是初学者却不知道。 br />

#20 楼

我知道它不是编程语言,但我认为HTML是一个不错的起点。因为您会立即获得结果,所以请从...开始。

Hello World

然后做:

Hello 世界

等等。

#21 楼

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

,也就是说,在其他所有人都说过的话之上...

#22 楼

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

我为什么会感兴趣?
我的父母于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机器人技术的导师一年,不得不指导孩子们在NI Labview中对机器人进行编程。坦白说,所需的编程技能远高于高中生的水平。但是比赛的目的是让孩子们对工程感到兴奋,并提高他们应对挑战的能力。只要程序只有一个if语句和一个循环,一切就可以了。人们看到我为上一年建造的机器人创建的代码图时,就退出了机器人的编程部分。

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

#23 楼


什么是CS?


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

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

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

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

#24 楼

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

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

我们从一开始就被教导“ Hello World”,但是直到让我的代码与用户交互时,我才对它不感兴趣。从开始教我们阅读“ cin”输入内容的那一刻起,我便着手制作一个可以在课堂上玩的Mad-Lib程序。我的第一个障碍是读取包含空格的输入,然后格式化输出。后来我希望能够将这些故事保存到文件中,因此我需要学习文件IO。克服障碍来实现自己的目标是让我参与进来的原因。
后来,我们发现网络管理员正在记录我们对“网络发送”和Novell SendMessage客户端的使用记录。用来在计算机课上进行交流,并且在学生用它作弊后将其禁用。所以我写了一个聊天室来代替管理员禁用的聊天室。这是我创造的第一个真正有用的东西。我以Battle.Net的聊天系统为模型,其中包括用户注册,主持人,甚至是基本的加密和影子文件系统,以防止用户篡改(所有文件都必须驻留在共享的网络驱动器上,以便学生进行操作)访问和使用该程序)。这些不是我已经意识到的概念,而是我自己想出的解决问题的方法。对我来说,那是编程的乐趣。

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

#25 楼

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

#26 楼

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

#27 楼

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

我很难过,我不知道这个故事是否真实。 。仍然很酷。

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

您看,我认为这全都与更改和查看结果有关。

#28 楼

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

#29 楼

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

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

此扩展的隐喻确实可以很好地扩展,它通常使我能够以一种领域以外的人可以访问的方式来传达我对编程的热情。

#30 楼

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

祝您一切顺利。干得好