HN 写作课

工程师们二十年里聊过的写作。

工程师、作家、编辑和创业者在 Hacker News 上聊了二十年“怎么写”:怎么写得清楚、怎么讲好一个故事、技术文档怎么写、小说和出版是怎么回事。这里把其中关于写作与讲故事的帖子挑出来,配上中文导读、可以直接用的写作要点和评论翻译。

从必读开始
  • 2,600+篇关于写作的 HN 讨论

Writing tips

写作锦囊

正在抽一条写作要点…

Essential

必读 30 篇

在讨论库里看全部精选

编辑精选里 HN 讨论最热的 30 篇,每篇都有中文导读和写作要点。

  1. 正在载入…

Archive

讨论库

按发帖年份分布,点柱子筛选。

排序

    About

    这些讨论是怎么挑出来的

    1. 01

      从全量里捞

      读取 Hacker News 自 2006 年以来的全部帖子,用关键词先捞出 40 分以上、可能和写作有关的约 1.1 万篇。

    2. 02

      只留真正讲写作的

      由 AI 逐条判断是否和写作、讲故事、文风、出版有实质关系,剔除“写代码”“编辑器”这类字面撞车,并分进十个类别。

    3. 03

      提炼可用的要点

      为值得读的帖子写中文导读,提炼 2-4 条可以直接用到自己写作里的要点,并精选翻译 HN 高赞评论。内容由 AI 生成,可能有误。

    技术写作与文档2019nature.com编辑精选

    科马克·麦卡锡谈如何写科学论文

    Cormac McCarthy on how to write a science paper

    阅读原文 HN 讨论
    326HN 得分
    68条评论
    4条写作要点

    导读

    这篇文章借小说家科马克·麦卡锡为科学家编辑论文的经历,谈科研写作如何做到清晰、少用行话、照顾读者。对写作者来说,它提醒我们:清晰不是文采的敌人,而“读者能不能看懂”永远是第一标准。评论区则补充了重要反驳——术语和重复有时恰恰是精确性的来源,不同读者需要不同的写法。

    关键词 科学写作清晰表达术语使用读者意识

    可以直接用的写作要点

    1. 01

      先保证读者能准确理解,再考虑文风;宁可重复同一个定义明确的词,也不要为求变化而换用近义词造成歧义。

    2. 02

      术语不是不能用,而是要先定义:面向同行可以精确使用行话,面向外行则应改写并舍弃不必要的量化细节,两类读者需要两篇不同的文章。

    3. 03

      把论文(或任何说明性文章)当成一场与潜在提问者的对话,主动预判读者会问什么,并用一两句话提前回答。

    4. 04

      公式和符号只是语言的简写,可以自然地嵌入句子;关键不在形式,而在于每一步推理是否交代清楚。

    HN 评论精选

    读不懂论文往往不是读者的问题,而是作者写得差;能复现、能验证才是真正读懂。

    我很多年都有冒充者综合征,因为读不懂论文。从论文里榨取信息要花好几个小时,所以我很佩服那些只看一张图、不读方法就能看懂结论的人。但在啃下足够多论文、并重复出作者结果之后,我明白了几件事:一,论文写得差不是因为作者聪明,而是因为他们是不好的写作者;二,在生物学里大约九成的论文含有足以推翻结论的错误,需要熟练的读者才能发现(或推断出)方法上的缺陷。后来转到机器学习,我一度觉得只要下载 GitHub 代码、在本地 GPU 上训练几天就能复现,后来发现论文声称的能力远超模型实际能做到的。现在我只读那些大家觉得无聊、但成熟的工程文献,几乎都能读懂、复现、得到合理结果。这篇文章的建议非常有价值。

    dekhn查看英文原文

    For many years I had imposter syndrome because I couldn't read papers. It took a lot of work to extract any information from a paper; I had to spend hours reading it. I was always impressed at folks who could just glance at a single figure, without referring to the methods, and could glean what the paper was trying to say. However, after working through enough papers and replicating the results of the authors, I came to learn a number of things- 1) papers are just written badly and it's not beacuse the authors are smart. It's beacuse the authors are bad writers. 2) most papers- in bio, I'd say about 90%- contain invalidating errors which mean that the figures and conclusions are worthless. It takes skilled readers to uncover methodological flaws (or infer them, as often not all the details are included). After working in bio for a while, it was nice to be in ML because - at least it seemed- I could replicate most papers by downloading the github repo, training on my local GPU for a few days, and then using the trained model to make the same predictions as the papers. Then I realized- in most cases, what was being claimed was far more than what the trained model was actually capable of doing. Now I stick to well-trod engineering literature that most people consider boring. In nearly all cases I can read the lit, repro the work, and get results that make sense (much of my work is ensuring that published benchmarks are reproducible). The advice here is golden.

    术语承载精确含义,面向同行的论文需要它;但面向不同读者要写不同版本。

    我正在编辑一篇论文,把很多非术语表述换成术语,审稿人对此并不满意。正如其他人所说,平实的英语是不精确的。跟同领域科学家交流时,常常必须使用在他们既有知识体系中有确切含义的语言。如果读者不具备这些知识,那些精确含义就没用、可以忽略,严格的量化也往往不重要——但这会让科学家很抓狂,因为他们不知道你说的某个性质或参数到底是 n 种定义中的哪一种,而这直接影响结果的解读。我还补充了很多“过度展开”,因为审稿人提出的问题本来一两个形容词就能回答。论文确实是一场与潜在问题的对话,同行评审最能说明这一点。两类读者需要两篇不同的论文,而审稿人往往只属于其中一类。

    blix查看英文原文

    I am editing a paper now where I am removing a lot of non-jargon statements and replacing them with jargon. The reviewers were not pleased. As other commenters have noted, plain english is imprecise. When communicating with other scientists in the field it is often necessary to use language that conveys an exact meaning within their pre-existing body of knowledge. If the audience is people without this knowledge, the precise meanings are useless and can be ignored and rigorous quantifcations are often unimportant. However, this is frustrating to scientists who are then left wondering which of n different definitions of some property/parameter you are using and how this influences results. This is critical knowledge when internalizing and applying new information. I am also adding in many "over-elaborations" because the reviewer had questions that a simple adjective or two would have answered. A paper absolutely ~is~ a dialog with potential questions, and nothing illustrates this more than peer review. The two audiences require different papers, and peer reviewers tend to fall only into one of them.

    可理解性高于文风;术语的重复使用和公式入句往往正是精确性所需。

    这篇大体不错,但我想更强调:最重要的是让人看懂。面对困难的数学概念,这真的非常非常难;如果你做到了,再去操心风格问题——而多数人其实没做到。因此文中这条建议很有问题:“尽量避免行话、流行词或过度技术化的语言,也不要反复用同一个词,那很无聊。”无聊也好过错误!我很喜欢作者把一个术语定义清楚然后反复使用,这样我每次都知道他指的是什么。行话可能是精确表达所必需的(但要定义它,不要假定读者熟悉)。比如数学上“球”和“球面”是不同的,如果在证明中途把 L2 球写成 L2 气球,读者会非常困惑。另外这条也完全错了:“避免把公式放在句子中间,数学和英语不是一回事。”数学符号不过是英语(或其他语言)的简写。例如“若 f(x)≥1,则 x=0 或 x∈[1,2]”和“注意到 x<5,故 Pr[f(y)+x≥3]≤0.1”都是完全合乎语法的。

    bo1024查看英文原文

    This looks pretty good mostly, but I'd emphasize more that the most important thing is to be understood. When it comes to a difficult mathematical concept, this is actually really really hard. If you can nail that, then worry about stylistic stuff, but you probably didn't nail it. With that in mind, this advice is really problematic: > Try to avoid jargon, buzzwords or overly technical language. And don’t use the same word repeatedly — it’s boring. Boring is better than incorrect! I love when authors clearly define a term and use it over and over, because I know exactly what they mean every time. Jargon may be necessary to communicate precisely (but define your jargon, avoid assuming it's familiar). E.g. mathematically, there is a difference between a ball and a sphere. And if your L2 ball becomes an L2 balloon in the middle of a proof, readers will be very confused. Also, this is just dead wrong: > Avoid placing equations in the middle of sentences. Mathematics is not the same as English, and we shouldn’t pretend it is. I can see this being useful advice when a proof is full of dense lines of inequalities, but the reasoning is still incorrect. Mathematical notation is nothing more nor less than shorthand for English (or any other language). The following is fine for example: If f(x) >= 1, then either x = 0 or x \in [1,2]. So is this: Noting that x < 5, Pr[f(y) + x >= 3] <= 0.1. Perfectly grammatical.

    科学写作质量在近几十年明显下滑,经典论文值得当作范本学习。

    我博士期间有一门论文研读课,覆盖了从 1959 年至今的现代分子生物学史。很明显能看出,1980 年代中期以后写作质量差了很多。把弗朗西斯·克里克的经典“遗传密码”论文和今天大多数论文对比一下就知道了。更多科研作者应该读读这类写作建议。

    suchire查看英文原文

    One of my PhD classes was a paper reading seminar that spanned most of the history of modern molecular biology, from 1959 to the present. It was starkly apparent how much worse the writing quality became around the mid-1980s and beyond. Compare the classic [“genetic code” paper by Francis Crick](https://moscow.sci-hub.tw/1024/2cfa4b970e4a1fd816ee18afa95aae98/crick1961.pdf) with most modern papers More science authors should read writing advice like this.

    同类还值得读

    1. 编写更好文档的框架

      A Framework for Writing Better Documentation

      这是 Divio 的文档写作框架,把技术文档按「读者的目标」分成四类:教程(学习导向)、操作指南(问题导向)、参考(信息导向)、解释(理解导向)。

      技术写作与文档2021 · 637 分 · 76 评4 条写作要点编辑精选
    2. 写好一份设计文档

      Writing a good design document

      这篇 HN 帖子标题为《Writing a good design document》,主题是如何写好一份设计文档;对写作者来说,它值得作为技术写作和结构化说明文的参照。

      技术写作与文档2025 · 581 分 · 147 评3 条写作要点编辑精选
    3. 技术写作课程

      Technical Writing Courses

      这是 Google 官方免费技术写作课程(两门),讲受众定义、主动语态、短句、文档结构等基础方法。

      技术写作与文档2020 · 571 分 · 73 评4 条写作要点编辑精选
    4. 写出更好的错误信息

      Write better error messages

      这篇帖子讨论如何写出更好的错误信息,评论补充了开发者场景下的具体做法和真实反面案例。

      技术写作与文档2022 · 566 分 · 253 评4 条写作要点编辑精选
    5. 写一本技术书的经济账

      The Economics of Writing a Technical Book

      一位技术书作者拆解写书的真实经济账:版税收入往往远低于投入的时间成本。

      技术写作与文档2018 · 519 分 · 149 评4 条写作要点编辑精选

    打赏支持

    打赏二维码

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

    WeChat

    关注向阳乔木

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

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

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