HackerPapers

HN 二十年,最值得读的论文。

从 Hacker News 2006 年以来的全部投稿里,挑出链接本身就是论文的帖子:arXiv、期刊、会议论文、技术报告。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从必读开始
  • 8,000+篇被 HN 讨论过的论文

Essential

必读 30 篇

在论文库里看全部精选

编辑精选里 HN 讨论最热的 30 篇,每篇都有中文导读。不知道从哪读起,就从这里开始。

  1. 正在载入论文…

Archive

论文库

点柱子按年份筛选。注:源数据里 2023 年的帖子分数记录不全,2026 年尚未过完,这两年收录偏少。

难度
排序

    About

    这些论文是怎么挑出来的

    1. 01

      全量扫一遍

      读取 Hacker News 自 2006 年以来的全部 446 万条链接投稿,找出指向 arXiv、期刊、会议、技术报告和学术 PDF 的帖子。

    2. 02

      只留论文本身

      由 AI 逐条判断,剔除介绍论文的新闻、博客和幻灯片,同一篇论文的多次投稿合并计算,并统计它在评论区被引用的次数。

    3. 03

      写导读、译评论

      讨论最热的 1,500 篇配上中文导读,并精选、翻译 HN 高赞评论。导读由 AI 生成,可能有误,请以原文为准。

    编程语言与软件工程2018cs.brown.edu

    编程范式及其超越

    Programming Paradigms and Beyond

    进阶 · 约 75 分钟读完前置知识:编程语言基础、递归与范式概念、计算教育/教学法基础

    读论文 HN 讨论
    156HN 得分
    33条评论

    导读

    这篇论文是《剑桥计算教育研究手册》中的一章,梳理编程语言教育中的盲点与研究机会,讨论如何教授编程范式以及若干教学方法的成效。章节涉及 notional machines、可视化/块语言等教学工具,并指出值得进一步研究的方向。适合编程语言教学、学习或设计者阅读。

    HN 关注点:如何教编程范式、递归等概念,以及可视化/块语言和未来编程教育;评论区分享教学经验并讨论孩子十年后如何编程。

    关键词 programming paradigmscomputing educationnotional machinesvisual programming

    HN 评论精选

    这几条评论里:支持 1 补充 3

    补充用指称/结构递归策略学递归比操作语义跟踪控制流更高效、更不易被复杂度吓到。

    关于“Notional Machines”(第4节)的想法,我最近意识到,我所说的“指称策略”(denotational strategies)在学习上可能比“操作策略”(operational strategies)高效得多。例如,通过操作语义/抽象机器模型学习递归,会让递归显得很复杂:维护栈、跟踪控制流都很难。另一种方式是使用结构递归模式(类似归纳证明),这样就不必在脑中走一遍控制流;只要各个分支正确,正确性就有保证。上面这段可能不太好理解,确实需要单独写一篇博客。

    noelwelsh查看英文原文

    Related to the idea of "Notional Machines" (§4) I recently realised that what I'm calling "denotational strategies" can be vastly more efficient for learning than "operational strategies". For example, learning recursion via an operational semantics / abstract machine model can make recursion seem very complex. Maintaining the stack and tracing through the control flow is hard. Alternatively one can use structural recursion patterns (think proof by induction) in which case you don't have to think through the control flow. The correctness is guaranteed if the individual cases are correct. Probably this statement isn't so understandable from the above description. It really needs a blog post of its own.

    支持文本仍主导编程但非新手友好,期待可视化/文本混合的编程环境,尤其图/树编辑器和智能补全。

    只想说我很喜欢你们“Visuals and Blocked Languages”那一章。我的职业生涯始于写 Flash,主要是因为我喜欢可视化并想用代码实现它。尽管有 Scratch 和其他块语言,文本仍然是王者。正如你们指出的,文本并不是对新手最友好的。我仍然认为可视化编程的圣杯尚未到来。编程的大部分工作是在描述抽象语法树。一个漂亮的、可视化树/图操作编辑器还没有被发明出来。能够把文本和可视化混合起来似乎是个好位置。我花了很多年思考和痴迷于这个概念,尤其是代码补全/Intellisense 方面。你们怎么看十年后的孩子会如何编程?

    nojvek查看英文原文

    Just want to say I really enjoyed your chapter on “Visuals and Blocked Languages”. My career got started programming Flash. Mostly because I loved the visuals and wanted to code it. Even though there is scratch, and other block based languages it seems text is still the king. Text as you’ve identified is not the most new comer friendly. I still think the holy grail of visual programming is still to come. Most of coding is describing abstract syntax trees. A nice visual tree/graph manipulation editor has yet to be invented. Being able to have a hybrid text and visual seems like a good place to be. I’ve spent many years thinking and obsessed about this concept. Especially around the ideas of code completion/intellisense. What are your opinions on how kids in a decade will code?

    补充标题更像教学综述;推荐 Bret Victor 关于被遗忘编程范式的演讲作为补充。

    很好的阅读材料。我觉得标题应该叫“Teaching Programming Paradigms and Beyond”,因为正文假定读者熟悉完整的 CS 图景,并评述了几种教学方法的成效。我还想推荐(标题同样有误导性的)Bret Victor 的演讲 The Future of Programming [1],它回顾了一些曾具突破性但后来大多被遗忘的范式。[1] https://www.youtube.com/watch?v=8pTEmbeENF4

    veli_joza查看英文原文

    Good read. I feel the title should be "Teaching Programming Paradigms and Beyond" since the text assumes familiarity with complete CS landscape and comments on success of several teaching methods. I would recommend (also misleadingly titled) talk The Future of Programming by Bret Victor [1] which goes over some groundbreaking paradigms that have since become mostly forgotten. [1] https://www.youtube.com/watch?v=8pTEmbeENF4

    补充给出章节出处并推荐给编程语言教学/学习者。

    《Programming Paradigms and Beyond》Shriram Krishnamurthi, Kathi Fisler,The Cambridge Handbook of Computing Education Research, 2019。讲编程语言教育的盲点与研究机会。推荐给任何教授、学习或编写编程语言的人。

    efm查看英文原文

    Programming Paradigms and Beyond Shriram Krishnamurthi, Kathi Fisler The Cambridge Handbook of Computing Education Research, 2019 Programming Language education blind spots and opportunities for research. Recommended for anyone who teaches, learns or writes programming languages.

    相关资源

    从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。

    自称作者的回复
    代码
    视频与演讲

    历次讨论

    同领域还值得读

    1. Google 的软件工程(2017)

      Software Engineering at Google (2017)

      介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…

      编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选
    2. Peter Naur:编程作为理论构建 (1985)

      Peter Naur – Programming as Theory Building (1985)

      Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…

      编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选
    3. SciPy 1.0:Python 科学计算的基础算法

      SciPy 1.0: fundamental algorithms for scientific computing in Python

      这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…

      编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选
    4. Lisp 的历史(1979)

      History of Lisp (1979)

      这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…

      编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选
    5. 使用 NumPy 进行数组编程

      Array Programming with NumPy

      这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。

      编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。