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

    编程语言与软件工程2017faculty.washington.edu

    什么造就了伟大的软件工程师?

    What Makes a Great Software Engineer?

    入门 · 约 30 分钟读完前置知识:软件工程基础、定性研究方法常识

    读论文 HN 讨论
    304HN 得分
    126条评论

    导读

    这篇论文通过访谈研究探讨“什么样的工程师是优秀的软件工程师”,试图归纳优秀工程师的特质(如热情、沟通能力、创造力等)。评论者普遍质疑其结论:样本偏差明显(女性仅占5%)、“优秀”的定义高度依赖具体情境,且本质上很主观。

    HN 关注点:HN 读者长期关注技术招聘难题:到底能否客观定义和识别“优秀的软件工程师”,论文的结论引发了对其方法论和普适性的讨论。

    关键词 软件工程师招聘主观性抽样偏差

    HN 评论精选

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

    质疑论文存在抽样偏差,用“热情”“能一起喝酒”定义优秀工程师并不可靠

    我不认同“朝九晚五成不了优秀工程师”这种对热情的判断,有些人很有热情但需要照顾孩子或有其他生活安排。至于“能不能跟他喝杯啤酒”这种亲和力标准是最糟的——我关心的是你的专业能力和沟通,但你们可能相差15岁、背景迥异,仍不妨碍他是很好的合作者。而且作者自己也承认最终只访谈了5%的女性,存在巨大的抽样偏差。比如有创造力的工程师往往业余还从事艺术等创造性活动,这类人反而倾向朝九晚五,却可能是团队的巨大资产。

    vmarsy查看英文原文

    I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities. Being personable: "Can I have a beer with this guy?" is the worse in my opinion. I care about your professional skills and if you're communicating well, but you definitely don't have to be a beer buddy, we might have 15 years difference, a very different background and share very few topics in common over a beer (assuming you even drink beer) but you could still be a great engineer to work with. Also you don't have to be a guy! The authors recognize that they only interview 5% women in the end... So overall some good advice, but it has a huge sampling bias. therefore the definition of a "great software engineer" is only valid in certain circumstances. For instance the authors recognize creativity is important, but one could argue some of the most creative engineers that can be found are the people who do another, very creative activity on the side (arts etc). These people would tend to be "9 to 5" because their "6 to 8" are already booked, so even if they appear less "passionate" they can be a huge asset to the team.

    补充“优秀”高度依赖情境,同一人在不同环境表现可能截然相反

    “优秀”很大程度上取决于观察者。在初创公司很棒的“黑客型”工程师,在成熟产品的维护工作中可能表现很差,反之亦然。通才还是专才更优秀?取决于你需要什么。确实有些工程师就是比另一些强(比如 Peter Norvig 对上连 FizzBuzz 都写不出的人),但人也需要合适的环境才能发光——我敢说 Norvig 在埃森哲做不出他最好的工作。

    virgilp查看英文原文

    "Great" is in the eye of the beholder - to a large extent. An engineer that is great in a startup ("hacker", "moves fast and breaks things") may be pretty bad in a well-established product that just needs maintenance. And the opposite is also true - a very thoughtful engineer that takes time to create thoughtful, simple & extensible designs may just move too slow when the idea was bad to begin with, and just needed to be invalidated. Also - who is "great", a generalist or a specialist? Depends a lot on what you need... It is true that some engineers are simply better than others (I'll take Peter Norvig any day over someone who fails at fizzbuzz, regardless of the context/problem that needs being solved) - but it is also equally true that people need the right context to really shine. E.g. I bet Peter Norvig would't have done his best work working for, say, Accenture.

    补充技术招聘的根本困境是无法精确定义“优秀开发者”,多数招聘是主观的“巫毒招聘”

    我几年前写过《优秀软件开发者的50个特质》一文,但我仍然相信技术招聘的核心问题是:没人能确切说出什么是优秀的软件开发者。这完全是主观的、见仁见智。如果面试官无法精确定义自己在找什么,又怎么有把握判断找到了对的人?大多数招聘不过是“巫毒招聘”——一堆神话、传说和纯粹的胡扯,摇摇骨头、看看茶叶,选那个给面试官感觉最好的人。

    andrewstuart查看英文原文

    I wrote a post a few years ago "50 characteristics of a great software developer" http://www.supercoders.com.au/blog/50characteristicsofagreatsoftwaredeveloper.shtml Having said that, and having written it, I still believe the absolute core issue in all technical recruiting is that no-one knows exactly what a great software developer is. In fact, it is entirely subjective, and simply a matter of opinion. I put it to you that most recruiting processes aren't worth a bent cent because the initial question cannot be adequately answered "OK, you're looking for 'the best' software developers..... PRECISELY what is that" And if an interviewer can't define precisely what they are looking for then how the heck do they know they found it with sufficient confidence to say "here is the right person for the job". Most recruiting is simply Voodoo Recruiting, a collection of myths, legends, whispers, misplaced beliefs and pure nonsense. Does this person get the job or not? Shake the bones, look at the tealeaves, throw a rabbit over your shoulder and choose the person who gave the interviewer the best feeling.

    质疑论文结论空泛老套,缺乏领域特定的可衡量指标

    这似乎归结为适用于一切工作的老生常谈:好员工努力工作、团队合作、自立自强,好为人诚实坦率。除了非常具体的领域,我没见过有人提出能识别优秀工作者的具体特质——有用的特质应该是领域特定的,比如篮球运动员看身高、棒球看上垒率。软件工程也许也有类似的东西,比如“5分钟内写出 FizzBuzz”,虽然我也承认编程测验并不是衡量编程能力的终极标准。

    lordnacho查看英文原文

    Seems to boil down to the same old tropes that apply to every kind of work, and every kind of person. A good {worker} works hard, works well in a team, is self-reliant(!) blah blah. A good person is honest, forthright, etc. Outside of very specific fields I haven't seen anyone come up with specific qualities that identify great workers. And the useful attributes will be specific to a field. For height for basketball players, chances created for soccer players, on-base percentage for baseball, etc. We don't like to say it, but maybe there's something similar in Software Engineering, like "Can code FizzBuzz in under 5 minutes". At the same time I recognise that coding quizzes are not the latest word on what makes a guy good at coding.

    历次讨论

    同领域还值得读

    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

    关注向阳乔木

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

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

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