Norvig

Peter Norvig,Google 研究总监、《人工智能:一种现代方法》合著者,撰写关于 AI、编程与计算科学的文章。

用十年自学编程(1998)

Peter Norvig 驳斥了“24小时学会编程”的速成论,主张掌握编程需要十年刻意练习。 他引用 Bloom、Ericsson 等研究指出,任何领域专家级能力都需约十年时间,核心是不断挑战舒适区并复盘修正。 Norvig 提出成为程序员的十条建议:保持兴趣、动手写代码、阅读他人程序、参与项目、学习多种语言、理解计算机底层、参与标准制定但及时退出。他推荐 Python 或 Scheme 作为入门语言,强调实践远胜书本学习。
评论点赞收藏21 天前

一个(更好的)Lisp 解释器(用 Python 实现)

Peter Norvig 展示了如何从一个简单的 90 行 Python Lisp 解释器演进到功能更完整的版本。文章详细拆解了新增的数据类型(字符串、布尔值、复数、端口)、语法扩展(注释、引号、宏)、以及核心引擎的优化。重点包括:通过尾递归优化解决 Python 递归深度限制,实现 call/cc 以支持非局部控制流,以及增强错误检测机制。这是一篇典型的工程实践教程,展示了如何用 Python 特性模拟 Scheme 语义,适合对语言实现和解释器设计感兴趣的开发者。
评论点赞收藏76 天前

诺维格回应乔姆斯基:统计学习在语言科学中的地位

本文是Peter Norvig对乔姆斯基2011年批评机器学习统计方法的回应。乔姆斯基认为统计模型只是模仿行为,缺乏科学洞察,且无法解释语言习得。Norvig指出,统计模型在搜索、语音识别和机器翻译等领域已取得压倒性成功,是工程与科学结合的典范。他反驳称,准确预测世界本身就是科学的一部分,并强调概率模型在处理语言歧义和噪声时的必要性,认为乔姆斯基的观点基于过时的理论局限,忽视了数据驱动方法在理解和处理自然语言中的实际价值。
评论点赞收藏242 天前

解决所有数独谜题:约束传播与搜索的艺术

Peter Norvig 的经典教程,展示如何用不到一页的核心代码解决所有数独难题。主要结合了两个策略:约束传播(通过逻辑推理排除不可能值)和深度优先搜索(当逻辑无法推进时进行试探)。文章详细解释了数据结构设计、启发式变量选择(优先处理可能性最少的格子),并通过对比暴力搜索的巨大复杂度,证明了这种混合方法的高效性。
评论点赞收藏284 天前

AI编程范式回顾:Lisp在2002年的处境

Norvig回顾其经典著作《AI编程范式》出版后的变化。对比Lisp与Java、Python在列表支持、自动内存管理、动态类型、一等函数等八方面的优劣,指出Lisp在交互环境和扩展性上仍领先,但Java和Python已追赶上来。通过数据展示Lisp在流行度上的下降,以及AI领域向C++和Matlab转移的趋势。最后列出书中52条核心编程教训,强调探索性编程、数据驱动设计和效率优化技巧。
评论点赞收藏384 天前

实验设计与解读中的八大警示信号

文章详细列举了实验设计和解读中的八大常见警示信号,包括缺乏随机对照、非双盲、样本量不当、受试者选择偏差、测量指标错误、统计方法误用、缺乏预设假设导致的过拟合数据挖掘,以及缺乏理论支撑。作者强调,虽然单一警示信号不一定否定研究,但多个信号叠加会显著降低实验结果的可信度,提醒读者在面对科学结论时需保持批判性思维,区分相关性因果性,警惕统计陷阱和人为模式识别偏差。
评论点赞收藏457 天前

全球气候变暖共识:我的实证检验

Peter Norvig 在 2007 年亲自验证气候科学共识的研究。他先复盘了 Naomi Oreskes 和 Benny Peiser 关于气候论文统计方法的争议,指出 Peiser 将非科学类文章(如社论、根系生物学研究)误判为反对共识。随后 Norvig 利用 Google Scholar 自行抽样 25 篇摘要进行人工分类,结果显示绝大多数论文支持或中立于共识,无一明确反对。文章核心观点是:科学界对人为气候变化存在高度共识,但媒体因报道困难,往往给缺乏证据的反驳观点与经过多年验证的科学理论同等的版面,导致公众误解。这是一篇典型的工程师思维解决社会认知偏差的文章,展示了如何通过数据验证和逻辑拆解来澄清争议。
评论点赞收藏614 天前

葛底斯堡演说:PPT 版

Peter Norvig 制作的经典恶搞作品,将林肯葛底斯堡演说改编成现代 PPT 演示文稿。开头模拟了演讲前连接投影仪、按按钮、重启电脑等充满尴尬停顿的技术故障场景,最后才切入正式演讲内容。这是一篇充满幽默感的创意编程/设计作品,展示了如何用现代视角解构历史经典。
评论点赞收藏641 天前

乐高乐高研究院:一场极客幽默的虚构科研秀

Peter Norvig 建立的乐高研究院是一个充满极客幽默的虚构项目。文章以严肃科研报告的口吻,描述了利用乐高积木进行的荒诞研究,如“原子分裂”、“摧毁魔戒”以及“缩小人体对抗新冠”。文中穿插了大量流行文化梗(如《半条命》、《哈利波特》、《神秘博士》)和编程数学笑话。虽然内容纯属娱乐,但其独特的创意、密集的彩蛋和对科研范式的戏仿,使其成为极具分享价值和讨论趣味的佳作。
评论点赞收藏686 天前

LISP:一种用于互联网脚本与编程的语言(1999)

这篇1999年的论文提出将LISP(特别是Scheme)作为Web编程和脚本语言。作者认为LISP语法简单,适合新手快速入门,同时其高阶函数能优雅地调用Java类库。文中介绍了SILK解释器和JLIB声明式GUI接口,展示了如何用极简代码创建Java Applet。此外,还强调了LISP在Java交互式调试和脚本编写方面的优势,通过REPL环境直接测试Java对象和方法,比传统JUnit更灵活。核心观点是LISP结合Java能提供更简洁、声明式的Web开发体验。
评论点赞收藏713 天前

自学编程十年:告别速成神话,通往专家之路

Google研究员Peter Norvig反驳市面上“21天学会编程”的速成神话。他指出,真正的专家级技能需要约十年的刻意练习,而非简单的重复。文章强调,成为优秀程序员的关键在于:大量动手写项目、阅读他人代码、与高手交流、掌握多种编程范式(如函数式、面向对象),并深入理解计算机底层原理。Norvig建议初学者从Python或Scheme入手,并指出书籍只是入门,真正的成长来自于长期的实践和社区互动。
评论点赞收藏721 天前

爱因斯坦的年度绩效考核:一位天才的职场吐槽

这是一篇极具创意的幽默短文,以年度绩效考核的形式,对爱因斯坦1905年奇迹年的成就进行调侃。作者Peter Norvig(著名计算机科学家)模仿职场官僚口吻,批评爱因斯坦缺乏团队合作(论文无合著者)、引用不足、工作时间被访客占用、产出波动大,甚至建议其使用员工援助计划处理精神风暴。同时,文章也暗夸了其成果的巨大影响力(如E=mc^2的市场化包装)。这种将科学史与职场文化结合的视角,既有趣又充满极客幽默,非常适合科技读者群体,能引发关于创造力、职场评价体系的讨论。
评论点赞收藏789 天前

英语字母频率重估:基于Google语料库的大规模统计分析

本文基于Google Books海量语料库,重新计算了英语字母及词频。作者Peter Norvig回应了1960年代研究者Mark Mayzner的旧作,利用现代算力将样本从2万词扩展至数千亿次提及。文章详细展示了单词长度分布、各位置字母频率(发现ETAOIN顺序微调为ETAOIN SRHLDCU)、以及双字母序列(Bigram)的完整统计矩阵。这是一篇典型的数据挖掘与语言学统计的技术博文,提供了详尽的一手数据表格和可视化分析。
评论点赞收藏804 天前

Python 鲜为人知的问题解答

Peter Norvig 整理的 Python 冷知识合集。涵盖 finally 块执行陷阱、复杂数排序限制、自增运算符语法解析、模拟 C++ cout 流、assert 空格重要性、列表清空技巧、字典构造函数、匿名类 Struct 实现、namedtuple 继承、Point 复数映射、Counter 分组、矩阵转置 zip 技巧、方法调用本质、抽象类模拟、枚举与集合历史、可变字符串替代方案及单例模式实现。内容实用,适合深入理解 Python 底层机制和常见误区。
评论点赞收藏897 天前

如何编写一个拼写纠正器

作者用不到50行Python代码实现了一个拼写检查器。核心逻辑是利用贝叶斯定理,结合语言模型(单词在语料库中的频率)和错误模型(编辑距离),找出概率最高的正确拼写。文章详细解释了代码原理,并通过测试集评估了准确率(约68%-75%)。最后讨论了改进方向,如引入上下文、优化错误模型和扩大词汇表。这是一篇经典的编程教学文章,展示了如何用简单方法解决复杂问题。
评论点赞收藏918 天前

GoF 设计模式在动态语言中的简化与隐形

Peter Norvig 的经典文章指出,许多 GoF 设计模式在 Python 等动态语言中变得不必要或实现更简单。文章通过具体代码示例对比了静态语言(如 C++/Java)与动态语言在处理设计模式时的差异,强调了动态特性(如元编程、高阶函数)如何减少样板代码。虽然内容极具技术价值且观点清晰,但由于发表年份较早(1998年首发),对于熟悉现代动态语言的开发者而言,其新颖性有所降低,主要作为经典回顾或教学参考。
评论点赞收藏933 天前

Peter Norvig:想自学编程?请给自己十年时间

Peter Norvig 批评市面上“21天学会编程”的速成书,指出真正的专家级技能需要约十年的刻意练习。文章引用了从莫扎特到披头士的例子,强调深度理解和实战经验的重要性。他给出了成为优秀程序员的建议:多写代码、与高手合作、掌握多种编程范式、理解计算机底层原理。虽然文章发表于1998年,但其关于学习曲线和刻意练习的核心观点在技术社区依然具有极高的讨论价值和共鸣。
评论点赞收藏943 天前

彼得·诺维格重访英文字母频率统计:基于 Google Books 大数据的分析

Peter Norvig 利用 Google Books 海量数据重新计算了英文字母频率,回应了 Mark Mayzner 50年前的请求。文章展示了从单词、字母到 N-gram 的详细统计分布,指出经典排序 ETAOIN SHRDLU 在现代语料中略有变化(如 L, R, C 排名上升)。内容提供了极具参考价值的工程数据和分析方法,适合对语言处理、统计学或数据可视化感兴趣的读者。
评论点赞收藏4607 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。