这篇访谈讲的是程序员Jeff Atwood分享他做Stack Overflow和Discourse的经验。他认为编程的核心不是靠聪明推导,而是靠“暴力破解”——写程序跑很多次,看数据结果,比如洗牌算法对不对,跑十亿次看分布就知道。他看好Discourse这个论坛工具,认为它能帮社区摆脱Facebook那种“公司城”模式,让用户自己拥有数据。他提到Stack Overflow(他联合创立的问答网站)靠“同行认可”驱动,而不是钱;Discourse是他现在做的项目,目标是成为讨论的默认选择;他还提醒Facebook(社交平台)通过免费VPN收集用户数据,有风险。
Jeff Atwood,Stack Overflow与Stack Exchange联合创始人,在Lex Fridman播客中探讨了程序员的核心驱动力。他认为,编程动机主要源于“解谜”的乐趣,即独立攻克难题的挑战,而非名声或财富。核心观点是,编程本质是“暴力破解”(brute force)过程——利用计算机的高速运算反复尝试,直至找到答案。例如,他提到“洗牌问题”(shuffling problem)中,朴素算法存在巨大缺陷,通过运行程序十亿次并观察数据分布(如卡片排列的均匀性),即可验证错误。同样,Monty Hall问题(三扇门问题)中,直觉上不合理的“换门策略”被证明为正确选择。重要结论是
Jeff Atwood(Stack Overflow 与 Stack Exchange 联合创始人、Coding Horror 博客作者、Discourse 创始人)在 Lex Fridman 播客中探讨了程序员动机、社区建设与领导力哲学。核心判断:编程的本质是“暴力破解”——利用计算机的高速运算反复试验,通过数据分析克服认知偏差,而非依赖直觉或天才式的算法推导。
Jeff Atwood 认为,驱动程序员的核心动力是“解谜”的乐趣,而非名声或财富。 编程本质上是利用计算机的高速运算能力,通过反复试验(brute force)来寻找答案。他举了两个经典例子:
关键洞察:你不需要“聪明”地推导出答案,你可以“用数据暴力破解它”——运行程序十亿次,观察数据桶,答案自然浮现。数据分析是克服认知偏差、发现真相的核心工具。
Stack Overflow 并非一开始就明确是 Q&A 系统,而是从多个成功模式中“弗兰肯斯坦”式拼凑出来的。 Atwood 回顾了其设计来源:
| 来源 | 借鉴元素 |
|---|---|
| Digg / Reddit | 投票机制,按票数重新排序答案 |
| Wikipedia | 可编辑性(不仅编辑自己的帖子,还能编辑他人的帖子以保持更新) |
| 博客 | 所有权归属——“这是我说的话,声誉归我” |
核心发现:程序员被“同行认可”驱动,而非金钱或老板。 声誉系统是 Stack Overflow 的关键洞察——“来自同行的认可才是事情做成的动力”。
系统走向严格的原因:
1. 防止“意外学习”:早期允许“你最喜欢的编程笑话”这类问题,但发现它们不是“你工作中真正面临的问题”——“没人会说‘我不知道最好笑的笑话,所以今天没法编译代码’”。
2. 声誉系统的公平性:如果某人因转发笑话获得 500 票,而另一人因解决复杂正则表达式问题只获得 50 票,程序员会感到不公平。
3. 严格产生更好结果:Atwood 用编程语言类比——“松散类型 vs 严格类型,现在 TypeScript 证明了严格类型能发现 50 个潜在 bug。严格不是目标,但严格产生更好的结果。”
关于“严格 vs 刻薄”:Atwood 区分了“严格”和“刻薄”——“严格是正确的,但不意味着刻薄、愤怒或恶意”。他提出一个有趣的理论:程序员长期与计算机打交道,会不自觉地“变成计算机”——计算机是“世界上最大的混蛋”,一个分号就能让太空任务坠毁。程序员内化了这种严格,变得“不宽容、简短、直接”——这是职业危害,而非本意。
Atwood 认为领导力的核心是“以身作则”和“对问题的真正激情”。 他提出两个关键原则:
1. 以身作则:“最难看清的人就是你自己。你对自己的看法极度偏见,往往比他人对你的看法更苛刻。” 领导者的行为(包括不做什么)都在传递信号。
2. 对问题的激情,而非对解决方案的激情:以 Discourse 为例,他真正热爱的问题是“如何让群体沟通不沦为狼嚎”——如何应对网络喷子、如何让人们使用完整句子、如何让人们不互相伤害。
关于决策与反馈:
Discourse 的使命是让每个社区拥有“自我所有权”,对抗 Facebook 式的“公司城”模式。 Atwood 对 Facebook 的批评集中在两点:
1. Facebook 关心的是 Facebook,而非用户:“他们非常擅长执行,但几乎没有道德指南针。”
2. “公司城”的危险:“所有人类沟通都被 WhatsApp、Instagram 和 Facebook 隐性拥有,这是非常令人不安的。”
兴趣图谱 vs 关系图谱:
Discourse 的商业模式:不依赖广告(“广告在 Discourse 上几乎不起作用——用户讨厌它,它不赚钱”),而是通过托管服务赚钱,同时鼓励用户使用 Patreon、Amazon 联盟链接等替代方案。
Atwood 提出一个反直觉的观点:要成为一个真正有效的程序员,最终必须停止写代码。 这不是说编程不重要,而是说编程的“更高层次抽象”是自然语言——通过激励他人、给予方向来解决问题。
编程抽象层次演进:
关键指标:迭代速度(“心跳”):
“如果你想知道一个软件公司的核心能力,就看从‘我们需要把这个词改成另一个词’的想法产生,到实际部署到用户手中需要多久。如果这个心跳很慢,你基本就死了。”
关于 AI 与编程:Atwood 对 AI 持谨慎态度——“AI 有点过度推销。它更多是‘人们是可预测的’——计算机有大量数据,可以做出基本预测,但这不叫 AI,这叫好的启发式算法。”
| 标的 | 嘉宾态度 | 关键数据 |
|---|---|---|
| Stack Overflow | 已离开,但肯定其设计哲学 | 10 年历史;早期从博客 40,000 订阅者起步;声誉系统是核心 |
| Discourse | 当前项目,强烈看好 | 2013 年启动,5 年项目(后改为 10 年);最低服务器成本 $5/月;使用 Ruby on Rails + Postgres + Redis |
| 风险提示(公司城模式) | 收购 WhatsApp 和 Instagram 是“极其聪明的决定”;通过免费 VPN 收集网络流量数据 | |
| Experts Exchange | 被颠覆对象(已成功替代) | “当人们不再记得你想替代的东西时,你就彻底赢了” |
| GitHub | 正面评价 | 微软收购是“极其聪明的收购”;使源码控制变得普及 |
| Tesla | 正面提及(作为迭代速度案例) | 可 OTA 更新,迭代周期以天计,与传统车企“年”为单位形成对比 |
| WordPress | 正面类比(Discourse 的目标) | 作为“博客的默认选择”,Discourse 希望成为“讨论的默认选择” |
1. “编程本质是暴力破解”(Jeff Atwood):不要试图用算法推导答案,写程序运行十亿次,看数据桶——数据会告诉你真相。洗牌问题和 Monty Hall 问题都是例证。
2. “程序员会不自觉地变成计算机”(Jeff Atwood):计算机是“世界上最大的混蛋”——一个分号就能让太空任务坠毁。长期与计算机打交道,程序员会内化这种严格,变得不宽容、简短、直接。这是职业危害,不是本意。
3. “严格产生更好结果”(Jeff Atwood):以 TypeScript 为例——松散类型 vs 严格类型,现在共识是严格类型能发现 50 个潜在 bug。Stack Overflow 的严格规则同理,不是为严格而严格,而是为更好结果。
4. “迭代速度是软件公司的核心健康指标”(Jeff Atwood):从“把‘回复’改成‘答复’”这个想法产生到部署上线的时间,就是你的心跳。如果心跳很慢,你基本就死了。
5. “要成为有效的程序员,最终必须停止写代码”(Jeff Atwood):编程的最高层次抽象是自然语言——通过激励他人、给予方向来解决问题。这是“用更高层次语言编程”。
6. “选择让你害怕一点的那个选项”(Jeff Atwood):面对决策时,选那个让你紧张但不至于跳崖的选项。他拒绝 $80,000-$100,000 出售博客,选择了“更害怕”的拒绝,才有了后来的 Stack Overflow。
7. “兴趣图谱比关系图谱更有力量”(Jeff Atwood):Facebook 围绕关系(同事、亲戚、朋友),论坛围绕兴趣(“我喜欢特斯拉”、“我喜欢悠悠球”)。兴趣社区能产生更深层的连接。
8. “90% 的反馈不可操作,但 10% 是黄金——其中 5% 是你从未想到的 brilliant idea”(Jeff Atwood):社区反馈的价值不在于数量,而在于那 5% 的意外洞察。Stack Overflow 的许多功能都来自 Meta Stack Overflow 的社区反馈。