Posts

Showing posts from June, 2025

艾伦·凯给计算机科学专业学生的建议

https://tekkie.wordpress.com/2018/11/09/alan-kays-advice-to-computer-science-students/ 我再次逐字引用 Quora 上的一个答案,因为我认为它很有价值。Alan Kay 回答了“  你会推荐什么书给计算机科学专业的学生?” 我的基本答案是:多读一些计算机领域以外的书籍。 值得尝试去理解“计算机科学”中的“科学”是什么意思,以及“软件工程”中的“工程”是什么意思。 现代意义上的“科学”意味着试图将现象融入尽可能具有解释力和预测力的模型中。可以存在 “人工科学” (参见赫伯·西蒙的重要著作)。一种理解方式是,如果人们(尤其是工程师)建造桥梁,那么这些桥梁就呈现给科学家,让他们通过建立模型来理解这些现象。其中的乐趣在于,科学几乎总能指出建造桥梁的更新、更好的方法,因此科学家和工程师之间友好的同事关系能够真正推动进步。 计算机领域的一个例子是约翰·麦卡锡(John McCarthy)在 50 年代末对计算机的思考,以及它们能够实现的广泛功能(也许是人工智能?),并创建了一种计算模型,将计算作为一种语言,可以充当其自身的元语言(LISP)。我最喜欢的这方面的书籍是麻省理工学院出版社出版的 《Lisp 1.5 手册》 (由麦卡锡等人编写)。这本书的第一部分至今仍是一本关于如何思考,尤其是关于计算的经典著作。 (受这一切启发,后来出版了一本名为 《Smalltalk:语言及其实现》 (作者:Adele Goldberg 和 Dave Robson,即“蓝皮书”)的书。其中还包含用 Smalltalk 编写的完整实现等。) 我非常喜欢的一本后来的“真正的计算机科学”书籍是Kiszales、Bobrow 和 Rivera 合著的 《元对象协议的艺术》 。这本书的开头部分尤其富有启发性。 真正的计算机科学的早期论文(1970 年)是 Dave Fisher (CMU) 的 “控制定义语言” 。 我最喜欢的关于计算的书可能有点牵强,但它真的很棒,文笔也很棒:马文·明斯基的 《计算:有限和无限机器》 (约1967年)。真是一本好书。 为了帮助学习“科学”,我通常会推荐各种各样的书籍: 牛顿的 《自然哲学的数学原理》 (终极科学著作和奠基文献)、布鲁斯·阿尔伯特等人的 《细胞的分子生物学》 。还有一...

艾伦·凯:重新思考计算机科学教育

Image
  我想分享下面的视频,因为它对计算机科学应该是什么以及教育应该是什么提出了一些宝贵的见解。所有这些内容都融入到这个演示中,事实上,教育的其中一项任务应该是将计算机科学融入其中,但其明确目的并非为未来就业培养更多程序员,尽管学生也可以利用这些技能。Alan Kay 对计算机科学的定义与当今大学所追求的定义不同。他引用了 Alan Perlis 的定义(Perlis 是“计算机科学”一词的提出者),我将在下文中详细阐述。 这种关于计算机科学和教育的思考,除其他外,还提供了一种途径,可以重新构想如何以一种比传统媒体更有意义的方式呈现、组织、剖析、注释和分享知识、文学和艺术。(更多内容,请参阅我的博文  《超越纸质和线性媒体》 )正如已故的卡尔·萨根经常倡导的那样,凯的演讲倡导一种面向公民而非仅仅面向职业人士的通用教育模式。 我想分享这篇文章的另一个原因是,几年前我记得听说凯正在重新思考计算机科学课程。他提出的更多是建议:“开始这样思考吧。”(他不认同课程的概念,因为课程建议让学生走上一条刻板的学习道路,目的是用千篇一律的模式来培养学生的思维。尽管他支持古典文科教育,以及由此产生的各种规定。) 正如他在演讲中所说,为了实现这一目标,教育实践中还有很多工作要做。 这是 2015 年的: 我在下面为他谈到的一些片段做了注释,只是因为我觉得他的演讲对很多读者来说都有一定的解读空间。他经常使用隐喻。 自行车 这类似于为了教育目的而对器械或物体进行改造。我们采用优化版或成人版的器械,并添加补偿器,使初学者能够轻松使用而不会摔倒。这种方式更容易呈现,也更容易培养技能,因为要学习如何做某事,你需要使用“真东西”。初学者可以很好地演示如何使用这种器械或改装的物体,但问题在于,它无法教会初学者如何真正发挥真东西的全部潜力。补偿器成了他们的拐杖。他说,更好的方法是使用一种器械或物体的组件,让初学者能够以一种能够充分发挥其潜力的方式体验如何使用它,但不要进行优化,也不要模仿成人的使用方式,因为这样会让初学者难以自行掌握。在这种情况下,低速自行车是更好的选择。这种初学者的器械,或者说部件,更像是你试图教授的东西的第一个版本。自行车最初更像滑板车,没有脚蹬,也没有链条,你坐在车座上,用腿推动它,有点像“坐着跑步”,滑行,通过转移重心来转弯,然后转向。一旦初学者掌握了这种技巧,他们...

Elon Musk's DOGE team breaks silence

 政府被欺诈的方式是计算机系统之间不互通。如果计算机系统不互通,那么你就可以利用这个漏洞,欺诈者会利用这个漏洞来占便宜。例如,有超过3亿美元的小企业管理局贷款发放给了11岁以下的人,还有超过3亿美元发放给了120岁以上的人。最年长的美国人是114岁,所以可以肯定地说,如果他们的年龄是115岁或以上,那他们就是假的,或者他们应该在吉尼斯世界纪录里。我们不应该给婴儿发放贷款。小企业管理局贷款最年轻的接受者是一个9个月大的婴儿,这显然是欺诈行为。他们会做一些可怕的事情,他们会看到有孩子出生,然后窃取孩子的社会安全号码,再申请贷款,让那个孩子背负不良信用记录。我们想说的是,正在发生可怕的事情,以及我们如何阻止这些可怕的事情,而且你可以阻止它。我的意思是,我们正在阻止。发生这种情况的原因是两个系统不互通。因此,小企业管理局不知道他们正在向一个9个月大的婴儿发放贷款(这种情况确实发生过),因为他们没有与包含出生日期的社会安全管理局数据进行交叉比对。这种非常简单的修复可以消除大量的欺诈。政府内部有多个系统不互通,如果能解决这个简单的问题,就能解决大量的欺诈。欺诈者使用的主要伎俩之一是,他们会利用某人在社会安全局被标记为“在世”的事实,然后为死者获取残疾和失业保险,因为数据库之间不互通。他们从社会安全局得到的信息是“此人是否在世?是的”。但实际上此人并不在世,只是在社会安全局被错误地标记为在世。欺诈者现在可以从死者那里获得失业和残疾福利。这种情况一直在大规模发生。 你对一些法律行动和一些法官的介入感到惊讶吗?现在大约有八到十个这样的案件至少被暂时搁置,司法部正在对此提出异议,你对这种阻力感到惊讶吗? 嗯,哥伦比亚特区巡回法院以其非常偏左的倾向而闻名。当你看看那些与这些法官关系密切的人,他们在哪里工作?哦,他们在这些非政府组织工作。哦,他们正在获得这些钱。这听起来像是一个没有腐败的系统吗?对我来说这听起来就是腐败。 最后一点,你们都认为这是一种爱国义务吗?这真的是它的意义所在吗? 这非常重要,我百分之百投入。我之前在休斯顿经营五家企业,我离开了那些优秀的人来做这件事,我出色的妻子说“去吧”,所以我来了。我觉得这是我在回馈国家。如果我们不这样做,我们就会完蛋。除非这次行动成功,否则美国这艘船就会沉没。这就是我们这样做的原因。 各位先生,我非常感谢你们的时间。哈桑,内政部,你曾是...

Lex Fridman对话Michael Paulson ThePrimeagen

 以下是与 Michael Paulson 的对话,他在网上更广为人知的名字是 ThePrimeagen。他是一位程序员,激励了数百万人享受用软件构建事物的乐趣,无论你是新手,还是在软件工程领域摸爬滚打了几十年的资深开发者。简而言之,ThePrimeagen 是一位传奇程序员,也是一位伟大的人,他的人生故事充满了鼓舞人心的跌宕起伏。这里是 Lex Fridman 播客。如需支持,请查看描述中的赞助商。现在,亲爱的朋友们,有请 ThePrimeagen。 你最喜欢编程的什么?编程给你带来什么乐趣? 我可以告诉你我第一次在编程中感受到热爱、喜悦或兴奋的时刻——那是在大学里。那是第二堂课,数据结构,授课老师 Ray Babcock 正在讲链表。我在蒙大拿州立大学上学时必须学习 Java,所以他当时正在解释整个链表的东西,然后他展示了代码。代码中是抽象类 `node` 还是什么,我不记得了。然后它有一个私有成员,那个私有成员的类型是 `node`,我以前从未见过这种情况。这是一个名为 `node` 的类,它有一个成员是它自己。我第一次感到,“天哪。没有尽头。没有办法迭代。这不是一个包含10个项的集合。这是一个包含无限项的集合。”那一刻我的思绪仿佛爆炸了,就像是,“你能表达的东西太庞大了。我能看到内存是什么样子。我能看到它在空间中跳跃。”我只记得当时非常震惊,因为在那之前,一切都只是,“好吧,我有一个包含10个项的列表。我有一个包含20个项的列表。”对吧?它非常死板和狭小,我构建的东西都非常小而微不足道,突然间我觉得在那一刻我能构建任何东西。这太神奇了。我只记得坐在课堂上,我甚至不记得那些课有多长或任何细节,但我只记得自己被这个概念彻底而深刻地影响了。所以我只是坐在那里看着,我在一堂软件工程课上也有过完全相同的经历,当时我们谈到了装饰器模式(decorator pattern),你可以用这种递归的方式不断构建这些对象。并不是说我认为那样做是个好主意,但只是看着它,意识到解决问题有这么多奇特而独特的方法,你脑子里能想到的任何东西,你都可以创造出来。我只记得当时对“一切皆有可能”这种可能性感到无比兴奋。 是啊,我们来对链表进行一番哲学思考吧。它确实很深刻。对于不了解的人来说,链表中的一个节点对它所处的世界一无所知。它只知道它所链接到的东西,它的邻居。也许这是一种象征。它是...