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 生成,可能有误,请以原文为准。

    编程语言与软件工程2019arxiv.org

    软件项目与英雄:从 GitHub 项目中学到的经验

    Software Projects and Heroes: Lessons Learned from GitHub Projects

    入门 · 约 45 分钟读完前置知识:开源协作基础、GitHub 工作流

    读论文 HN 讨论
    337HN 得分
    134条评论
    1次被评论区引用

    导读

    这篇论文分析了 1100 多个开源 GitHub 项目中的“英雄”现象:即 20% 的开发者贡献了 80% 以上代码的项目。研究发现这种贡献高度集中的模式在开源社区中普遍存在,并建议组织思考如何更好地发现和留住这些核心开发者。

    HN 关注点:HN 读者围绕“英雄程序员”概念展开争论:这究竟是开源维护者的常态,还是可以推广到职业团队的“10x 程序员”证据。

    关键词 开源软件GitHub贡献分布软件工程

    HN 评论精选

    这几条评论里:质疑 2 补充 1 亲历 1

    质疑研究对象是开源维护者,结论不能推广到职业团队,“英雄”一词有误导性

    所有把这项研究放到全职工作或传统“10x 程序员”语境下解读的评论者,都应该先读摘要:所谓“英雄”项目是指 80% 以上贡献来自 20% 开发者的项目。当然几乎每个 GitHub 项目都有这样的“英雄”——我们通常叫他们“维护者”。这项研究毫不意外,也完全不能推广到开发专有软件的职业团队。摘要中使用“英雄”一词极具误导性。

    benkuhn查看英文原文

    Everyone who's interpreting this in the context of full-time work / the traditional notion of "10x programmer" (i.e. ~every toplevel commenter) should read the abstract: > A "hero" project is one where 80% or more of the contributions are made by the 20% of the developers... We identify the heroes developer communities in 1100+ open source GitHub projects. (emphasis mine) Of course nearly every Github project is going to have heroes--we call them "maintainers." This study is totally unsurprising and totally non-generalizable to professional teams working on proprietary software. The use of the term "heroes" in the abstract is massively misleading and tendentious, IMO.

    补充英雄是反馈循环的产物;项目应拆分成小模块,而不是依赖英雄

    如果那 20% 的人离开,剩下的人会均等贡献,还是新的 20/80 比例会形成?这看起来像反馈循环:写得越多的人越有条件写得更多,“英雄”其实是一个浮动位置,取决于技能、投入时间和各种环境因素。我最近讨论过这个问题:把一群“英雄”组成一个团队,所有人都会比分散在不同团队时慢得多。我的结论是,小型独立项目能让开发者又快又可靠;如果项目划分得当,任何人都能按自己的水平做贡献;而大型复杂项目只有最初写代码的老人才高效。所以在寻找“英雄”之前,先想想你的项目是否划分得当,以及“英雄”离开时的风险。

    kartan查看英文原文

    > A "hero" project is one where 80% or more of the contributions are made by the 20% of the developers. If that 20% leave, the other 80% would contribute equally or the ration 20/80 will be preserved? This seams a feedback loop. Once a developer has written more code than others is in a better position to write even more. If that is the case "hero developer" is a floating position, depending so much on your skill and how much time you have been working in a project and other circumstances. > Organizationsshould reflect on better ways to find and retain more ofthese software heroes. I had this discussion recently. If you create a team of "heroes" all become way slower than when they were in different teams. My personal conclusion, and the way of working that I try to implement at work is that small independent projects allow for developers to be fast and reliable. If your project is correctly divided, anyone can contribute ( at their level of expertise). If you have a big complex projects then old-timers that created originally the code are the only ones that can work with it efficiently if no other developers make big changes (reducing the ability of other developers to contribute independently of their level of skill). So, before going in search of "heroes" think if your projects are correctly divided. And think about the risk that you create when a "hero developer" is needed and leaves.

    亲历亲历印证:一个投入的核心开发者远胜大量平庸人手

    我自己做过很多很多软件项目,这个结论 100% 准确。一个全神贯注、真正对项目有热情的优秀程序员,抵得上 20-50 个只是机械写代码、毫不上心的程序员。这就是为什么小型、有激情的创业团队能持续做出比大公司好得多的产品。

    jackconnor查看英文原文

    Having worked on many, many software projects myself, this is 100% accurate. One good programmer who is intensely focused and interested in a project is worth 20 - 50 (or more) programmers who are just code monkeying it without really giving a shit. This is why a small, passionate startup team can consistently build better products than large corporations. Much better products.

    质疑所谓英雄只是小项目常态,协作开销才是真正原因

    把这些开发者称为“英雄”很可笑。更简单的解释是:大多数项目规模小到一个人就能完成大部分工作,而小项目不太会严重失败。加上协作必然带来的额外开销,事情变慢、更易出错并不奇怪——只是到了一定规模,这个代价是值得的。而且我们不会把少数人完成的项目都叫英雄:书有作者,而不是“写作英雄”——没有编辑和其他参与者,那本书根本不会问世。

    taeric查看英文原文

    I find it silly they designate these as heroes. Seems simpler to say that most projects are small enough that a single person can do the majority of the work. Not shockingly, most smaller projects don't fail that heavily. Add in the extra work that collaboration necessarily brings to the table, and it isn't that shocking that things both slow down and get more error prone. At a certain size, though, this is worth the cost of admission. More, it isn't like we call all projects done by fewer individuals heroes. We have authors, not "writing heroes." And the author joke is meant to point out that the vast majority of what you read has a single person's name on it, but without the editors and other workers involved, that book would never have come about.

    相关资源

    从这篇论文所有 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

    关注向阳乔木

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

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

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