Al Sweigart 的 PyTennessee 2020 开幕主题演讲

2020 年 3 月,就在封锁开始之前,我在 PyTennessee 2020 发表了开幕主题演讲。不幸的是,它没有被记录下来。 但我仍然保留着我使用的脚本,所以我重新录制了演讲。 我已将其发布到我的 YouTube 频道。

视频:Al Sweigart 的 PyTennessee 2020 开幕主题演讲

以下是我的演讲者笔记的文字记录:

你好,社区。 你好,皮田纳西州。 感谢邀请我,感谢所有会议组织者。 非常感谢主办方为本次大会付出的努力。 感谢大家参加 PyTennessee。 谢谢。 我以前从未做过上午 9 点的演讲。 这比我习惯的要早一点。 此外,我在从西雅图飞往这里的航班上意识到,时区变化意味着这对我来说更像是早上 7 点的谈话。 登记时间是早上 6 点,我必须在早上 4:30 左右起床。 所以这可能是一次非常有趣的谈话。

你好。 我是艾尔·斯威格特。 众所周知,我是 Automate the Boring Stuff with Python 的作者。

谢谢。 我以前从未做过上午 9 点的演讲。 这比我习惯的要早一点。 此外,我在从西雅图飞往这里的航班上意识到,时区变化意味着这对我来说更像是早上 7 点的谈话。 登记时间是早上 6 点,我必须在早上 4:30 左右起床。 所以这可能是一个非常有趣的谈话。嗨。 我是艾尔·斯威格特。 众所周知,我是 Automate the Boring Stuff with Python 的作者,这是一本面向完全初学者的书,可在知识共享许可下免费在线获取。 让我告诉你我自己。 我喜欢猫,我喜欢折纸,我绝对讨厌讲述我如何学习编程的故事。 我恨它。 我只是……受不了了。

在我上小学的时候,我的一个朋友找到了一本关于用一种叫做 BASIC 的语言编写游戏程序的书。 我很幸运,我是在家里有 PC 的情况下长大的。

当然,那时候的计算机通常只有大约 700 PB 的内存,一个 12 GHz 的量子 CPU,硬盘的容量也只能存储三个,也许四个模拟宇宙。 您知道,典型的 Commodore 64 型计算机。

我真的很喜欢任天堂,所以编程对我来说真的很酷。 高中毕业后我主修计算机科学,然后我成为一名软件工程师,然后我搬到旧金山,然后我开始写编程书籍,我写的第四本书被 No Starch Press 选中,我现在写书全职。 我讨厌讲这个故事。 这是一个真实的故事,但它也是一个令人难以置信的误导性故事。 我讨厌讲这个故事,因为人们听到后可能会想,“好吧,我不是在三年级开始编程的。” 或“我从小就没有电脑。” 或者“我不是主修计算机科学的”。 或者“我没上过大学”。 或者“我数学不好”。 人们误以为要成为一名有能力的软件开发人员,您需要从小就开始,天生具有天才的智商,并接受过精英培训。 这当然完全是胡说八道。

我故事中没有被告知的部分是,我制作的游戏并不是那么好。 它们都是我从其他人那里复制的游戏的衍生产品。 我真的只有一本书是我学习编程的书,其他所有的都是技术手册,让我难以理解。 我没有维基百科、搜索引擎或 YouTube 教程。 我和其他三个从事编程的孩子一样了解,但他们并不比我了解更多。

现在编程容易多了。 这仍然很难,但是与 1990 年代相比,现在有更多可用资源,语言更具可读性,工具和文档以及社区要好得多。 我们有互联网,所以我们可以接触到所有这些东西。 因此,在我的书的第二版的介绍中,我写道:“我在小学和高中毕业的几年里学到的所有编程知识今天都可以在大约十几个周末内学会。我的开端并不是很多抢先一步。”

但今天的期望要高得多。 一提到编程,今天的人们就会想到自动驾驶汽车、AAA 视频游戏或拥有数百万用户的社交媒体网站。 当市值数十亿美元的科技公司家喻户晓时,没有人会对 Guess The Number 印象深刻。

您可能看过这样的新闻报道:“这些当地青少年可能会成为下一个比尔·盖茨、马克·扎克伯格、埃隆·马斯克或其他父母富有的白人。” 这些故事无处不在,您可以通过新闻搜索“whiz kid programmer”找到它们。 这些文章从不详细介绍这些青少年创建的实际软件。 所以我开始挖掘,我注意到这些神童制作的程序……不是很好吗?

我并不是要剥夺他们的成就,他们远远领先于大多数其他孩子,当然也领先于我在他们这个年纪的时候。 但他们的程序大多是很好的演示或现有应用程序的重新创建。 他们不是天才或白手起家的百万富翁,因为生产实际的软件不仅仅是编写代码那么简单。 但这在这些关于“神童”的新闻报道中被忽略了。

那我呢? 我是这些“神童”中的一员吗? 好吧,我并不是要吹牛,但在高中时,我的计算机科学老师挑选了我和另外两名学生代表我们的高中参加全市编程竞赛。 哦哦。

所以我们学校的团队中有 3 个人。 共有 14 支队伍代表 14 所高中。 我们有 3 个小时来解决 10 个问题。 最简单的问题值 1 分,较难的问题值更多。 在艰苦的三个小时结束后,我们队获得了 1 分。 是的,编程语言是 C。除了第一个问题,所有的问题都需要从文本文件中读取输入,而我不知道该怎么做。 我团队中的另外两个孩子也没有。 我们花了三个小时阅读帮助菜单和文档,试图找出如何从文本文件中读取文本。 我们无处可去。 所以我们只能回答第一个问题。 但事实是,我们与其他 10 所学校持平或表现优于其他 10 所学校。 在这场精心挑选的计算机书呆子比赛中,14 支队伍中有 11 支获得了 0 分或 1 分。

(停顿)我怎么到这里来的? 我是如何成为一名软件开发人员并编写一本流行的编程书籍并受邀在会议上发表开幕主题演讲的? 我怎么到这里了? 我是一个聪明有才华的计算机神童吗? (笑声)当然是。

我很幸运。 我很幸运能在拥有个人电脑的房子里长大。 我很幸运有一个朋友,他也是在一个有 PC 的房子里长大的,他给我看了学校图书馆幸运的那本 BASIC 编程书。 我很幸运,我有空闲时间而且没有压力,所以我可以探索编程并享受制作平庸的视频游戏的乐趣。 我很幸运,没有人挡我的路,没有人看过我,看过我的皮肤和脸然后说:“嗯,我认为你不会对那些书呆子的东西感兴趣。” 我是幸运的,幸运可以降临到任何人身上,但它不可能降临到所有人身上。

因此,轻松一点:我不喜欢在演讲中提及流行文化,因为坦率地说,这暴露了我的年龄。 但作为一个孩子,我有一个 VHS 磁带,我的意思是,我有一张蓝光光盘,是这部 1970 年代的科幻电影。 它叫做,呃,星球大战? (停顿)哦,很好,你们有些人听说过。 这是一部真正值得引用的电影。 “愿原力与你同在”,如果你听过这句话,那一定是出自这部电影。

不管怎样,有一个场景是太空巫师正在教他的徒弟如何使用激光剑。 他把这个头盔戴在学徒身上,让他看不见,并告诉他用他的魔力而不是眼睛来挡住激光剑的射击。 他做到了! 他做到了。 但是另一个角色说,“我称之为运气。” 太空巫师回答说:“根据我的经验,没有运气这回事。” 我想,“这很酷。” 是的。 就像我一样。 我自己创造运气。 我十岁看星球大战,我知道世界是如何运作的。 你必须有才华并努力工作,最优秀的人才会在我们的任人唯贤制度中脱颖而出。

(暂停笑声)

俗话说“好运偏向有准备的人”,这意味着随机的机会和系统因素并没有起到很大的作用,有才华、勤奋的人会得到回报。 这是真的。 但是我发现了另外一种说法,“幸运偏爱被支持的人”。 我之所以能走到今天,是因为我得到了很多支持。 不是每个人都能幸运,但每个人都可以得到支持。 但为了做到这一点,我们需要创建包容性社区并降低进入门槛。 我们不能仅仅使用“人们需要厚脸皮”和“人们需要在我们的社区中赢得一席之地”等相同的借口。 这不是高标准,那只是欺侮。 我们需要降低进入壁垒,如果我们不能降低这些壁垒,我们就需要打破它们。 我们不能只希望人们找到合适的书,然后一切就绪,他们成为软件开发人员发表主题演讲。

现在,会有一些人在观看这个演讲时会想,“哦,兄弟。Al,这是编程语言会议。你为什么要谈论多样性和包容性?代码不关心你的感受,你这个 SJW。为什么你就不能客观理性吗?你应该谈论算法或者争论为什么 Python 3 很烂。”

为什么多样性很重要? 让我告诉你一个故事,发生在我如何学习编程的故事之前。

1985 年,任天堂发布了 8 位任天堂娱乐系统和超级马里奥兄弟。 这是我玩过的第一个视频游戏,它直接让我想学习如何编程。 但是有更早的电子游戏。

1972 年,Atari 发布了 Pong,它变得非常流行,并向广大观众介绍了视频游戏。 许多公司开始用自己的硬件制作自己的 Pong 仿制品。 Atari 发布了他们自己的家用游戏机,其中包含数百款游戏。

其中一部是1983年的ET,这是根据当时很火的ET电影改编的。 但是比赛进行得很仓促。 开发人员只有五个半星期的时间来制作它,以便在圣诞节前及时发布。 当它出来时,人们讨厌它。 这令人困惑,你不确定自己应该做什么或去哪里,控制很糟糕,而且只是……无聊。 与心爱的电影相比,这款游戏令人非常失望。

不仅如此,ET 经常被认为是有史以来最糟糕的视频游戏之一,也是视频游戏历史上最大的商业失败之一。 对于视频游戏行业来说,这是一个糟糕的时期。

由于有如此多的公司生产廉价的仿冒品,消费者开始厌倦昂贵的硬件和糟糕的游戏。 该行业的收入从 1983 年的 32 亿美元的峰值下降到两年后的 1 亿美元。 整个行业下降了 97%。 这就是 1983 年的视频游戏崩溃。

可以说,在 1980 年代拯救视频游戏的是任天堂。

那时微处理器功能更强大,可以支持更好的图形,但任天堂的成功远不止于此。 解释第一关马里奥如何教你如何玩马里奥有点游戏设计陈词滥调,但这是一个如此伟大的故事,我必须进入其中。

好的,当你开始玩的时候,马里奥从左面向右开始。 这很明显你应该走对了。 每个马里奥关卡都是从左到右设计的,所以你总是知道你应该做什么才能取得进步。

现在您很快就会发现一个闪烁的问号块,它引起了您的兴趣。 你想去那里,但你遇到了你的第一个敌人,一个长着脚的愤怒的蘑菇。 这只是一个,这不是一个巨大的挑战。 如果你遇到愤怒的蘑菇,你会死,但这很好,因为你从头开始重新开始,并没有失去太多优势。

在你击中另一个问题块后不久,一个蘑菇从中弹出。 这个蘑菇向右移动,从壁架上掉下来,从绿色管道上弹回并改变方向朝向马里奥。 这意味着你几乎肯定会遇到它,即使你将它与另一个你应该避免的敌人混淆了。 当马里奥接触到它时,他会变得更大、更强大,所以你可以说这是一种能量提升。 这一事件教会了你很多关于这个世界上物体行为的知识:有能量提升,它们自己移动,它们受重力影响,它们可以与物体碰撞并改变方向。

接下来你跳过那个绿色管道,然后在它后面有一个稍微高一点的绿色管道。 在《超级马里奥兄弟》中,按住跳跃按钮的时间越长,马里奥跳得越高。 然后是第三根管子,它比第二根管子还要高。 如果你搞砸了也没关系,管道哪儿也去不了。 这可以让你练习跳高,直到你…

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注