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 生成,可能有误。

    写作方法2021davidallengreen.com

    法律文书起草与计算机编程

    Legal Drafting and Computer Programming

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

    导读

    这篇文章纪念英国计算机先驱 Clive Sinclair,探讨法律文书起草与计算机编程的相似之处:两者都要求用高度精确的语言表达逻辑,每个词都有其存在的目的。对写作者来说,这是一个很好的视角——把法律写作当作一种“编程”来理解精确表达的功夫。

    关键词 精确写作法律文书编程思维语言歧义

    可以直接用的写作要点

    1. 01

      精确写作的核心是每个词都有目的:被选中而非其他词,也而非没有词——删掉多余、补上缺失、纠正错误。

    2. 02

      法律文书和代码一样,语法错误会造成实际后果,因此写作时要像程序员对待语法一样对待措辞。

    3. 03

      用高度精确的'伪英语'写作是一种可训练的能力,值得在日常写作中刻意练习。

    4. 04

      写作的清晰度要服务于读者:法律必须让被约束者能理解,任何牺牲可读性的'精确'都是失败的。

    HN 评论精选

    法律写作与编程本质相同,都是精确语言写作,只是法律缺乏代码那样的即时验证手段。

    我是从程序员转行做合同律师、又转回程序员的人。别人常问我为什么从法律转回软件。我的回答是:这两份工作的核心其实是一回事——你花大量时间用高度精确的'伪英语'写作,语法错误会给你带来麻烦。最大的区别在于:软件你只需运行它、观察输出,而法律要验证代码的含义,得走好几年的法院诉讼程序。

    andrewfong查看英文原文

    I'm a coder turned contract lawyer turned coder again. People often ask me why I switched from law back to software. My answer: The meat of the job is basically the same thing. You spend a lot of time writing things in highly precise pseudo-English where syntax errors can get you in trouble. The biggest difference is that with software, you spend a lot less time arguing what the code does. You just run the damn thing and observe the output. With law, that requires a multi-year journey through the court system.

    设想为法律文本开发'编译器/linter'来检测歧义,但难点在于法律必须对普通人保持可读。

    我在想能不能给法律文本做一个编译器或 linter,比如'警告:这个逗号存在歧义解释的可能'。但自然语言天生不适合写无歧义的文本,而任何需要学习的人造语言又有问题,因为法律必须让被约束者能看懂。不过也许可以设计一种对普通人比法律术语更清晰、且能解析成 S 表达式的法律 DSL。再往大了想,也许还能有工具提示'警告:这部法律表面上违反第一修正案'。这可能太科幻了,但如果有生之年能看到计算机生成的法庭之友书状就太好了。

    hirundo查看英文原文

    I wonder if some kind of compiler/linter is possible for legal text. Like, "Warning: this comma is subject to ambiguous interpretation." But natural languages are poor candidates to use for composing unambiguous text, and any artificial language that you have to learn would be a problem, since it's critical that law is comprehensible to those it governs. On the other hand, it may be possible to construct a legal DSL that is more clear to the layman than the predominant legal jargon, and can be parsed into an S-expression. And if we can dream about unambiguous law, we can dream bigger, about a compiler or linter that could extract more conceptual flaws, like "Warning: this law would facially violate the First Amendment", or "this law creates an incentive structure that may cancel its intentions." This is probably too sci-fi to happen in my lifetime, but if I'm lucky maybe I'll live to see computer generated Friend of the Court briefs. We may be on the road to that with computer assisted analysis of historical language corpora to help determine original meanings.

    用伪代码演示合同结构,展示法律文书与程序逻辑的对应关系。

    用粗略的伪代码写一份合同:导入当事人、合同、模板条款、管辖权模块;定义当事人一(有限公司)、当事人二(自然人)、期限一年;然后 try 循环——期限内一方履约则另一方付款并履约;catch 违约——确定过错方,由过错方在责任限额内赔偿,无过错方可选择终止;最后设置排他管辖、套用模板条款。我是律师也是程序员,可以整晚扩展下去,有人想补充义务、终止、保密条款吗?

    james_in_the_uk查看英文原文

    In rough & ready pseudocode: from law_of_england_and_wales import persons, contract, boilerplate, jurisdiction define party1 = persons(type:ltd, with_registration_no: 12345) define party2 = persons(type:natural, with_name:"Chris", with_address: "Acacia Avenue") define term = 1 year try: while date < term { if party1.dosomethings then party2.pay(agreed_price) && party2.dosomethings } catch breach: party_at_fault=breach.causing_party() party_not_at_fault=(if party_at_fault == party1 ? party1 : party2) party_at_fault.pay(if damages < limitationofliability ? damages : limitationofliability) if party_not_at_fault.chooses(terminate()) juridiction.set_jurisdiction(exclusive_mode) boilerplate.apply I could go all evening at expanding this. Anyone fancy adding obligations, termination, confi etc.? Source: I am a lawyer and a coder.

    精确到每个词都有目的的说话方式是一种令人着迷的稀有能力。

    '对律师来说,正式法律文件中的每个词都有(或应该有)其目的:它是被选中来替代其他词的,也是替代'没有这个词'的。'我认识一些能以这种方式自由交谈的人——不是说像律师那样,而是没有缺词、没有错词、没有多余的词。我一直惊叹于这种能力,觉得这种说话风格令人着迷。

    11thEarlOfMar查看英文原文

    "For the lawyer, each word in a formal legal document has (or should have) a purpose: it has been chosen instead of other words, and also instead of no words at all." I know people who can engage in free-form conversation in this manner. Not to say like a lawyer, but where there are no words missing, no words incorrect, and no words superflous. I've marvelled at that ability and find that style of speaking mesmerizing.

    同类还值得读

    1. 被低估的工程技能:把文章写好

      Undervalued Engineering Skills: Writing Well

      这篇文章讨论为什么“写得好”是被低估的工程能力,以及它如何在团队协作、系统设计和职业发展中持续带来回报。

      写作方法2019 · 1,109 分 · 371 评4 条写作要点编辑精选
    2. 每行只写一句话:让写作和修改都更轻松的排版法

      Writing one sentence per line

      这是 Derek Sivers 的一篇短文,主张写作时每行只放一个句子,而不是按段落排版。

      写作方法2022 · 849 分 · 297 评4 条写作要点编辑精选
    3. 书面沟通是远程工作的超级能力

      Written communication is remote work super power

      这篇文章讨论远程工作中书面沟通的价值,评论区则补充了异步与同步沟通的适用场景,并提醒读者:备忘录、结论先行、结构化命令格式等书面沟通传统早已有之。

      写作方法2020 · 831 分 · 190 评4 条写作要点编辑精选
    4. 如何写出有用的文字

      How to Write Usefully

      保罗·格雷厄姆在这篇文章里给"有用的写作"下了一个可操作的公式:有用≈重要×新颖×正确×清楚,任一项为零,整篇文章就等于零;他还主张敢下确定判断、删掉让自己心虚的句子。

      写作方法2020 · 821 分 · 285 评4 条写作要点编辑精选
    5. 如何写得更清楚、想得更清楚,并学会复杂材料(PDF)

      How to write more clearly, think more clearly, and learn complex material [pdf]

      这份 PDF 讨论如何把文章写清楚、把思路理清楚,并用写作来学习复杂材料。

      写作方法2022 · 779 分 · 153 评4 条写作要点编辑精选

    打赏支持

    打赏二维码

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

    WeChat

    关注向阳乔木

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

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

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