Podcast Script (zh)
[0.120-15.505] SPEAKER_00: 接下来是杰夫·阿特伍德的访谈。 他联合创办了Stack Overflow和Stack Exchange。 这些网站每天吸引数百万用户。 就像维基百科一样,影响力不可低估。 它深刻影响着全球知识与生产力。 这是整个网站网络带来的影响。
[15.585-24.048] SPEAKER_00: 杰夫还写过知名博客《编码恐怖》。 他也是Discourse的创始人。 这是一个开源项目,旨在改善 我们在线社区讨论的质量。
[24.128-40.094] SPEAKER_00: 这次对话是麻省理工课程的一部分。 关于通用人工智能的课程。 也是人工智能播客的一期。 喜欢的话,请在YouTube、iTunes上订阅。 或者你用惯的播客平台。 或者在Twitter上找我,账号Lex Friedman。 拼写是F-R-I-D。
[40.174-43.645] SPEAKER_00: 现在,开始我和杰夫·阿特伍德的对谈。
[43.725-49.506] SPEAKER_00: 在共同创办并运营多年之后, 这个全球最大的程序员社区Stack Overflow。
[49.586-57.074] SPEAKER_00: 十年前,什么驱动了大多数程序员? 是名声、财富、荣耀,还有编程本身, 还是对社群的归属感?
[57.374-65.675] SPEAKER_01: 我觉得其实是解谜。 就是那种独立于他人,只解决一个问题, 像解谜工作的感觉, 就像一个人独自完成, 但如今很少是一个人编程了。
[65.755-80.757] SPEAKER_01: 但我觉得,有那种把自己藏起来, 不停攻克一个问题直到解决, 对我来说,这基本就是暴力破解,很多编程都这样。 就像,计算机很快,对吧? 你可以做那些人类永远做不完的事, 但你可以一遍又一遍地做, 直到得到答案,对吧?
[81.057-95.084] SPEAKER_00: 你是说,光是摆弄代码本身, 这就是驱动大多数程序员的东西。 那种乐趣。 在暴力破解的痛苦和磨难中, 最终做出真正能用的东西,这种乐趣与挣扎的平衡。
[95.384-114.615] SPEAKER_01: 嗯,数据也挺有意思的。 比如有个洗牌问题。 比如简单洗牌算法有个大缺陷。 网上很多文章讲这个,情况可能很糟。 假如你开赌场,雇了个没经验的程序员。 让他写洗牌算法。 出问题的方式常常出乎意料。 巧妙的是,多次运行就能发现问题。 是的。 是的。 是的。 是的。 是的。 是的。 是的。
[114.695-125.645] SPEAKER_01: 是的。 再看看能得出多少种牌序。 牌序应该均匀分布才对。 用简单洗牌法,如果只看数据。 如果暴力求解,说,我也不知道结果。 再看看数据分桶。 蒙提霍尔问题就是个例子,
[125.725-137.964] SPEAKER_01: 三扇门,有人告诉你另一扇门的信息。 所以答案是:蒙提霍尔问题应该换门, 这不直观,挺让人抓狂的,对吧? 但是, 但数据能解决,写个程序模拟,然后从不
[138.044-149.644] SPEAKER_01: 换门和总换门,一比较你就明白不需要 聪明吧?不用算法推导,直接暴力破解 用数据得答案,运行十亿次就知道答案了。 这是数据分桶,凭经验找到的。但这样做的
[149.944-153.136] SPEAKER_00: 乐趣在哪?除了家庭,什么激励你?
[153.436-160.018] SPEAKER_01: 老实说,我不怎么写代码了,我在 Discourse做管理,我有点鄙视,作为程序员 觉得管理者自己不做事,但奇怪的是
[160.098-165.299] SPEAKER_01: 语言就是代码,指导他人能 让你做更多。不管怎样,你说语言是
[165.599-171.647] SPEAKER_00: 代码,就是交流,可以看作一种 系统的。进入编程前,什么是好管理者?好领导者?
[171.947-184.546] SPEAKER_01: 好的管理者和领导者?领导者要以身作则。 先成为你想成为的人,现在就做。 尤其有孩子后更累,他们总在看着你。 无时无刻,连你都不再那样看自己,看清自己最难。
[184.626-187.598] SPEAKER_01: 有趣的是,观察别人并评判他们。
[187.678-198.861] SPEAKER_01: 你并不完美,也看不见别人眼中的你。 常对自己苛刻,别人并不会。 洞察是,你必须勤于思考,比如—— 我的行为是否代表我期望别人表现?以身作则。
[198.941-209.018] SPEAKER_01: 很多领导者搞砸了这一点。 他们的决定让人惊叹,只是个坏榜样。 以身作则是其一,另一个我想谈的是—— 不是拼命工作,而是展现真正的——
[209.098-217.979] SPEAKER_01: 对问题的热情,而非你的方案,是问题本身。 问题本身是你坚信的,比如这门课。 我们探讨的问题,也是我的项目:如何让人们——
[218.059-233.026] SPEAKER_01: 在群体中不沦为狼嚎般交流。 比如应对恶意挑衅,不是技术问题,如何让人们发布—— 段落、使用粗体、如何让人们—— 使用完整句子,那些也是问题。但如何让人们—— 彼此融洽,然后解决他们想解决的任何问题。
[233.106-244.904] SPEAKER_01: 要么解决,要么达成共识,至少别互相伤害。 对吧?比如不太重要的讨论,大家却在互相 大喊大叫。为什么?这可不是交流的目的。所以 领导力就是以身作则,做那些
[244.984-250.626] SPEAKER_01: 代表你想成为的样子,并确保你真的在做。 有个诀窍:你不做的事同样说明问题。
[250.926-263.037] SPEAKER_00: 你是什么样的人。好,先停一下。这两点很有趣。那么作为 一个领导者,如何有自我意识?你刚才说很难。那么对你 个人,或者你见过或敬仰的领导者,怎么知道自己做的
[263.117-268.980] SPEAKER_00: 是错的,你说话的方式,你的 行为,以及没做的事?你怎么得到信号?有两个方面,
[269.280-287.324] SPEAKER_01: 一是处理收到的反馈。你怎么得到反馈?嗯,对。 你得到反馈了吗?比如我们的做法,在Discourse,我们有 三个联合创始人,定期在决策前讨论。所以不是 一个人犯错,或者,哇,那,也许有误解 之类的事。这也是集体领导共识的一部分——有
[287.404-302.604] SPEAKER_01: 我认为,只有单一领导者且拥有绝对权力的体系 非常危险,比如对社区,如果你有一个 由一个人运营的社区,那个人可能犯错,他可以 做所有决定,有一天心情不好,可能出事。 有些事变量很多。比如首先当你想到
[302.684-317.709] SPEAKER_01: 领导力时,让多人共同领导并互相交流。这样他们可以 就彼此的决定给予反馈。然后得到反馈时 脑海里会有个声音,对吧?就像你的直觉,或者身体里 任何地方。这个声音非常重要。比如,大多数有
[317.789-334.811] SPEAKER_01: 道德准则的人,或想做大多数人都 想做的事的人,我相信。可能有一小部分反社会者 不这么想,但大多数人希望别人认为他们是好人。为什么 不呢,对吧?你想让别人鄙视你吗?那太奇怪了,对吧? 所以你有那个声音,像肩上的天使和魔鬼,在跟你
[334.891-341.915] SPEAKER_01: 谈论你在做什么,做得如何,做决定让你感觉如何 对吧?与那个声音保持协调很重要。
[342.215-350.574] SPEAKER_00: 但你也说那个声音,还有一些程序员 的情况,有时肩上的魔鬼会有点太大声了。 所以很多开发者,尤其是性格内向的
[350.654-360.757] SPEAKER_00: 会过于自我批评。如何应对自我批评或他人批评?所以 领导力的一方面是做些可能不受欢迎或别人怀疑的事 而你仍然坚持决定。这种平衡是怎样的呢?
[361.057-378.033] SPEAKER_01: 你必须向人们解释决策过程,对吧?就像 这就是写博客和沟通非常重要的原因。再次强调 这不是随便的决定,是考虑目标和选项后做出的。 你提到的是激情,不对,是勤奋。 嗯,这两个是紧密相连的。
[378.113-394.543] SPEAKER_01: 我觉得勤奋和激情是一体的。我欣赏Discourse,因为Facebook掌控一切的世界很可怕。 我们认定这是正确的,这就是目标和想要的。 我们考虑过这些选项,认为这是目前最好的。 人们会说,哦好吧,我可能不完全同意你。 但我能理解,看得出这不只是随便的。
[394.623-409.126] SPEAKER_01: 不是天上掉下来的决定,而是人做的。 试图在目标上达成共识。他们的目标可能不同。 比你的目标。这完全正常,对吧?但如果你说明白, 哦,我们不同意是因为目标完全不同,比如,
[409.206-415.370] SPEAKER_01: 我们怎么能一致?不是你是坏人,而是想法不同。 一开始审视问题,我们就有了目标。
[415.670-419.303] SPEAKER_00: 你提到的是热情,哦不,是努力,抱歉。
[419.603-434.303] SPEAKER_01: 嗯,它们是连在一起的。 我觉得努力和热情,我真的很喜欢这个。 它要解决的问题。在某种程度上,有一个愿景。 在这个世界里,一切都被Facebook掌控, 人类交流,对吧?这对我来说一直是个可怕的世界。
[434.383-444.007] SPEAKER_01: 首先,Facebook执行力确实强,我夸一下。 他们工作很棒,但Facebook没啥道德。 因为他们只在乎自己,并不真正关心。 你。 他们只关心把Facebook做大,对吧?
[444.307-447.360] SPEAKER_00: 你在说公司本身,还是运作机制?
[447.660-463.986] SPEAKER_01: 其实都有,关于言论理念,我特别热衷。 因为我相信每个社区该有自主权,对吧? 就像,他们该有自己的软件,运行自己的东西。 他们能自己定规则,不喜欢就换托管。 或者任何需要都得实现。但这种理念,
[464.066-478.058] SPEAKER_01: 公司城理念,所有交流都被他们隐性掌控。 WhatsApp、Instagram和Facebook,这很不安,因为Facebook 很聪明,执行力强,收购WhatsApp和 Instagram很明智。还有件事,你可能不知道,但他们
[478.138-491.213] SPEAKER_01: 有个VPN软件,在手机上免费提供,会间接把所有 流量数据反馈给Facebook,他们就能看到啥火。 通过VPN,他们能底层看数据,因为用户允许 他们拥有这些。所以
[491.513-499.709] SPEAKER_00: 所以 先停一下。Discourse,你说说看? 社区有哪些不同方式?比如 Stack Overflow 你建的?Discourse?对,Stack Overflow 像维基百科
[499.789-508.345] SPEAKER_00: 你提到的。它像精准的手术刀,非常专注。那 Discourse 的目的? 和 Facebook 比,先说说 Discourse 是什么?对,从头开始。
[508.645-527.084] SPEAKER_01: 嗯,从头开始。让我从最开始讲。Stack Overflow 结构很清晰。 维基式的程序员问答平台,对吧?那是我们最初处理的问题。当我们 开始时,我们以为是讨论,因为看到像编程论坛和其他东西。 东西。但我们很快意识到,我们在做问答,这是非常狭窄的一个交流子集。 对吧?
[527.384-531.610] SPEAKER_00: 抱歉。你做 Stack Overflow 时,甚至不知道那是问答?
[531.910-543.185] SPEAKER_01: 它后来成了问答。 嗯,我们不知道自己不知道。但有个想法,这些是网上有效的东西。 我们的目标是,一个叫 Experts Exchange 网站,名字非常非常 幸运。
[543.485-545.656] SPEAKER_00: 谢谢你把那个网站消灭了。
[545.956-566.998] SPEAKER_01: 是啊,我知道,对吧?很多人都不记得了,这太好了。就像 这就是成功的标准。当人们不记得你试图取代的东西时 那你就完全赢了。那是一个获取编程问题答案的地方。但它不是 不清楚它是专注的问答,还是讨论,那里有很多编程 论坛。我们不确定,但会借鉴 Digg 和 Reddit 的一些做法。
[567.078-582.196] SPEAKER_01: 投票很重要。按票数重排答案,类似维基。 比如能编辑帖子,不只是自己的,还包括别人的,让它更好。 保持最新。博客所有权,比如,这是我,我用我的声音说。 这些话,你知道,这是我知道的,而且你会积累声誉。
[582.276-599.484] SPEAKER_01: 归你。纯粹认可。所以您之前问过,什么激励程序员? 纯粹认可对他们激励很大。那是 Stack Overflow 的关键见解。 就是,同行的认可才是事情完成的原因,最初不一定是老板的钱, 而是你的同事说,哇,这个人真懂行,很有价值。所以 声誉系统
[599.564-612.860] SPEAKER_01: 就源于此。所以我们在 Stack Overflow 上拼凑了一大堆东西, 比如我们见过有效的。于是成了 Stack Overflow。随时间推移, 我们意识到这并非真正讨论,而是非常聚焦的问题与答案,
[612.940-629.463] SPEAKER_01: 页面上没太多空间谈这种旁支内容。更多是 像,它在回答问题吗?澄清问题吗?或者可能是 同一问题的替代答案?因为编程中通常不止一种方法, 大概有 五到十种方法。Stack Overflow 早期就遇到一种模式:
[629.543-641.712] SPEAKER_01: 有些问题有几百个答案。我们就想, 怎么编程问题有 500、200、500 个答案?然后我们看了那些, 其实那些不是问题,是讨论。 有些内容我们一开始允许,后来就不许了,比如——
[641.792-656.214] SPEAKER_01: 你最喜欢的编程食物是啥?还有最好笑的编程漫画? 后来我们得补充一堆规则,比如—— 为啥不准?这是你实际遇到的难题吗?就像没人上班时会说—— “唉,我不知道最好笑的编程漫画是啥,没法写代码了。”对吧?
[656.294-672.945] SPEAKER_01: 这不是工作中的真问题。所以这是运行规则。 第二,你真正能学到啥?就是我说的—— 偶然学习,或者Reddit式学习,就是随便刷刷—— 然后“哇,树蛙只活三年?”我刚瞎编的,不一定对。 我其实没打算学那些用不上的东西,对吧?这是偶然学习。
[673.025-688.991] SPEAKER_01: 更偏向刻意学习:我有个问题,想学相关的知识—— 可能是理论,比如编译器理论,或者其他。 我遇到编译器问题,就需要了解能帮我找到答案的理论。 这是有方向的学习。所以我们后来补了这些规则—— 慢慢搞清楚我们到底在干啥。系统越来越严,
[689.071-696.257] SPEAKER_01: 很多人还在抱怨。我写了新博文《Stack Overflow想成为什么?》 一开始大家随便做,后来系统变严,很多人还是抱怨。
[696.557-703.464] SPEAKER_00: 这点,我写了新博文,《Stack Overflow想成为什么?》 其中有一个 女孩们庆祝十周年?嗯,是的。
[703.764-718.012] SPEAKER_01: 嗯,这十年系统变严了,原因很多。 原因之一:看不惯别人靠他们觉得轻浮的事赚声望。 靠轻浮事得声望,我能理解。比如程序员因为最有趣 的漫画或代码里最逗的评论拿到五百赞,感觉就是,呃,
[718.092-733.907] SPEAKER_01: 他们为啥有那么多声望?就靠写个笑话?不一定,他们确实 也许画了漫画,可声望是拿别人作品赚的。 那甚至都不像—— 编程,就是个笑话。可跟编程有关,你就反感,会想 嗯,不公平。某种程度上他们没错,我理解。
[733.987-746.029] SPEAKER_01: 因为跟那个比,给一个特别复杂的正则 表达式问题。这边有个巧妙又详细的答案, 解释说:哦,这就是为啥有这行为,我教你 怎么避免。那太好了,简直是金子,
[746.109-751.879] SPEAKER_01: 对吧?你希望他们因那个得声望,而不是“哇,看我发现了这个” 看到的》,对吧?
[752.179-764.290] SPEAKER_00: 太好了。 所以有种很具体的问答格式,然后引向讨论 还有Facebook和Twitter。所以从头来,Stack Overflow慢慢演化出 一个目的。那在这门课里,你对创建讨论社区的热情是什么?
[764.370-767.702] SPEAKER_00: 那是什么?啥时候诞生的?咋来的?
[768.002-782.969] SPEAKER_01: 部分是因为Stack Overflow只适用于特定主题。 这些主题基于数据、事实和科学,答案能验证。 还有一种是知识之书,像大部头百科全书。 它定义一切,你都可以翻那本书找答案。
[783.049-799.514] SPEAKER_01: 必须这样,它只适用于有半明确答案的主题。 以某种形式验证。再说一遍,总有很多方式。 灵活性和系统都围绕这点。但缺点在扑克乐高这类东西。 就像以前,你去stackexchange.com,我们有个引擎启动不同问答
[799.594-815.699] SPEAKER_01: 对吧?人们可以提问答主题和示例问题,如果支持够多。 在Stack网络里,我们就启动。启动的包括扑克和乐高。 它们表现很糟糕,对吧?可能还以某种形式残存。 但这只是个实验,一次测试,对吧?有些在Stack引擎里运行很好。
[815.779-831.803] SPEAKER_01: 有些就不行。乐高和扑克失败是因为太 太社交化了,不是问扑克规则,而是像,嗯, 喜欢抽什么雪茄?什么香烟?什么雪茄? 打扑克时喜欢抽雪茄吗?或者一副很酷的扑克牌? 打扑克用啥?或者策略,比如我拿到一手牌
[831.883-845.631] SPEAKER_01: 可以用策略,更像是在讨论发生了什么。 乐高也一样,比如我发现的酷套装,看看多棒。 是啊,太棒了,但这不是问题吧? 社交元素不适合,只好在Stack Overflow上禁了。 因为不是社交,是工作问题。
[845.711-855.509] SPEAKER_01: 你要具体答案,对吧? 你有实际问题阻碍工作,没人会因 拿到同花顺咋办?这不是阻碍性问题。 这只是闲聊机会。Discourse是解决办法。
[855.589-862.717] SPEAKER_01: 应对这问题。讨论论坛软件太糟糕了。 2012年初离开时还很糟,以为会改进。 未来会改进。
[862.797-871.295] SPEAKER_01: 四年后根本没改进。我当时想, 有点糟,我喜欢人们谈热爱的事。 是兴趣社区,对吧?它们 没好软件。初创公司来找我,
[871.375-882.465] SPEAKER_01: 他说有初创想法,我先说, 为啥问我?我不懂你领域啊。 不如问问社区里感兴趣的人。 用户啊,为啥不聊?他们会说: 哦好主意!我该咋做?然后放悲伤长号,
[882.545-903.538] SPEAKER_01: 因为意识到所有交流软件, 客户反馈很差,但这是最有效的输入。来自用户社区,我们在Stack Overflow就是这样。 不好意思推荐的东西,却是最有效的输入。来自用户社区,我们在Stack Overflow这样做的。 最强最有效的输入,了解产品处理。来自用户社区,我们在Stack Overflow就是这样。
[903.618-908.308] SPEAKER_01: 来自用户和社区,我们在Stack Overflow就是这样做的。
[908.608-919.036] SPEAKER_00: 所以我们讨论的是论坛。 它就像互联网暗物质,一直有最热情的讨论。结构线性,一个接一个发帖。 一直有最热情的讨论,结构是线性的,一个接一个发帖。
[919.116-930.473] SPEAKER_00: 结构线性连续,一个接一个发帖。 一个接一个发,而且有分页,每十个帖子翻一页。 这种格式还在用,比如我研究特斯拉,有个特斯拉汽车俱乐部论坛,很想运营。
[930.553-934.117] SPEAKER_00: 有个特斯拉汽车俱乐部论坛,我很想运营。
[934.417-938.724] SPEAKER_01: 实际上他们联系了我们,虽然没拿到,但我真的很想要。
[939.024-944.933] SPEAKER_00: 但他们在2012年之前就开始了,运行很久了。 但它信息丰富。那系统有什么问题?
[945.233-957.042] SPEAKER_01: 系统?你怎么修复它?我觉得连接志同道合的人很有力量。 人们围绕话题热爱相同事物,这意味着Facebook的... 世界理念就是和另一个人相关的人,比如通过友谊。
[957.122-969.013] SPEAKER_01: 或者任何其他原因。Facebook的世界理念就是状态更新。 比如你朋友在餐馆吃了饭。而讨论论坛... 传统围绕兴趣图谱,比如我热爱电动汽车,具体就是特斯拉。
[969.093-985.291] SPEAKER_01: 比如我喜欢他们处理问题的方式和创始人的风格。我只是 喜欢设计理念,特斯拉有很多优点。那篇漫画他画了一幅 献给特斯拉的漫画,挺酷的,我学到点东西。他在谈论 特斯拉汽车很棒,比如制造方式与众不同。他还深入讲了
[985.371-1005.354] SPEAKER_01: 精彩的细节非常多,很有趣。对我来说,那篇漫画,如果你读过, 几乎是所有兴趣社区的起源。我真的很喜欢这些东西。 所以像我,比如悠悠球,对吧?我热衷悠悠球社区。还有 这些兴趣社区真的很吸引我。我感觉和 和悠悠球社区的联系比跟不常见面的朋友更紧密,对吧?比如,
[1005.434-1018.381] SPEAKER_01: 兴趣图谱。Facebook 涉及一点兴趣图谱,他们有群组, 你可以加入群组。但它主要还是关系图谱。比如, 这是我的同事、亲戚、朋友,而不是兴趣。 所以我觉得这是论坛和社区建立的关键。我个人
[1018.461-1030.305] SPEAKER_01: 非常喜欢。领导力关乎热情,对吧?对事物充满热情是 一种很有效的看世界的方式。我觉得世上很多事情都是这样完成的。 比如有人这样描述我,他说:杰夫,你是个对某些事情
[1030.385-1046.003] SPEAKER_01: 会在一段时间内超级热情,然后深入钻研。我当时想, 哦,有点道理。这确实是我会干的。我会对某事感兴趣,然后超级 投入几年,尽我所能去学,深入钻研。 这就是我体验世界的方式,对吧?不是啥都只试一下。
[1046.083-1060.760] SPEAKER_01: 但我会深入钻研感兴趣的事,论坛能解锁这点。 对吧?而且你不想所有东西都被Facebook控制,至少我不想。 我希望社区能自主,自己定规范,自己设定。 规则,控制体验,因为社区也关乎所有权,对吧?比如你要是
[1060.840-1076.318] SPEAKER_01: 每周四在巴诺书店聚会,而巴诺说,出去, 你们买书不够多,好吧,你就倒霉了,对吧?巴诺拥有 你,对吧?但如果你有自己的聚会空间,自己的会所, 你可以自己定规则,决定聊什么,还能真正产生
[1076.398-1091.679] SPEAKER_01: 比每周四下午三点在巴诺闲逛好得多的信息。 对吧? 所以这就是Discourse的愿景——完全开源的地方。 你可以获取这个软件,到处卖。而且你和你的一群 人能钻研任何感兴趣的事。这对初创公司很适用,对吧?
[1091.759-1108.062] SPEAKER_01: 是一群钻研特定问题的人,对吧?他们想跟社区交流。 就像装Discourse,对吧?这就是我们用Discourse做的。 在Discourse上。我在Stack Overflow上也这样,花很多时间在meta上。 这是我们内部的公共社区反馈网站。而且
[1108.142-1126.792] SPEAKER_01: 亲自感受用户的体验,对吧?因为他们是做 系统所有工作的人。他们有很多有趣的反馈,还有那个9010法则 即你得到的90%反馈因为各种原因并不真正可行。可能是 坏反馈可能很疯狂,你一时搞不定。但 其中一成就像黄金钻石,它就像
[1126.872-1143.836] SPEAKER_01: 真正好的产品改进建议,不难实现,而且 很有意义。我最爱其中5%,完全没想到。 就像,老天,我从没想到过。但这 好主意,对吧?比如Stack Overflow很多功能,我们推动 来自元Stack Overflow反馈和讨论,对吧?完全相同原则
[1143.916-1151.334] SPEAKER_01: 讨论。我们从社区得到点子。当时我想,老天,我从没想过 这点。但这太棒了,对吧?我喜欢这种社区关系。
[1151.634-1165.197] SPEAKER_00: 建立这些社区,你学到了什么?什么是 社区获得关键多数成员?运气、技巧、时机、 毅力?还是像Discourse这样的工具 为社区提供动力?从一个家伙开始的关键?
[1165.277-1169.189] SPEAKER_00: 或一个姑娘,然后到两个、十个、一百、一千?
[1169.489-1183.295] SPEAKER_01: 我认为是从一个人开始的。关键是坚持。而且, 而且要有趣。比如我敬佩的一个人说过 关于写博客我很喜欢的一点:他说写博客必须有东西 有趣地要说,还要有趣地说出来。对吧?对。然后坚持
[1183.375-1197.019] SPEAKER_01: 大概十年。这就是起源。 就像,你得有点有趣的东西要说,这不完全是 别人都在说,还有种说法挺有趣。 用娱乐的方式表达,发展就像一种仪式。 比如开博客,得说每周写博客。
[1197.099-1208.131] SPEAKER_01: 每周三次,还得坚持计划,对吧?不然不行。 持续好几年才有进展,非得花这么久。 达到目标需要自律,有热情就不像工作。 我热爱,能整天聊这个。
[1208.211-1217.789] SPEAKER_01: 每天都聊,得用有趣的方式呈现。 社区发展后,参与模式比如 生成成果,邀请别人协作完成。 比如我博客早期,2004年开始时
[1217.869-1231.838] SPEAKER_01: 那是Stack Overflow的起源,我的博客最终引领 到Stack Overflow。当时博客能量大,约四万人 订阅了我的博客。 我想做点事,遇到Joel,对他说,嘿,我想 把博客能量发挥出来,所有读者
[1231.918-1244.285] SPEAKER_01: 都觉得酷,你让我们参与,说你是社区一部分。 一起建造,比如选名,投票选Stack Overflow。 起名很难,计算机科学最难就是起名,对吧? 是的,但那里可以回到。
[1244.365-1256.755] SPEAKER_01: 我博客投票定名Stack Overflow Stack Overflow早期测试用户 我们是我和Joel的读者,比如从起源看 起源嘛,我就一程序员,爱编程但没渠道 所以写博客,因为没多少人一起讨论
[1256.835-1265.774] SPEAKER_01: 当时我在一家公司,编程不是核心 那是一家药厂,我爱编程爱到不行 所以我就写博客,慢慢找到读者 找到读者和Joel,然后建了Stack Overflow
[1265.854-1275.768] SPEAKER_01: 那就是核心,反复的反馈循环 反馈来自我博客评论、Joel和早期Stack Overflow 社区反馈,别人看你做就会跟着来 酷,你很真诚,不是不听意见
[1275.848-1284.752] SPEAKER_01: 那不可能,但你重视我们的反馈 为啥不呢?谁在做所有工作?我?Joel? 不,是其他程序员做的所有工作 我尊重这个,然后纪律要围绕
[1284.832-1294.816] SPEAKER_01: 在Stack Overflow做一件具体的事 以具体方式解决具体问答问题 不是刻薄,是严格规则帮我们取得好结果 对吧?程序员很容易接受,因为他们早习惯了。
[1294.896-1306.125] SPEAKER_01: 处理荒谬规则,这基本就是他们的工作,所以他们 他们非常喜欢超级严格的规则,能让我得到想要的。那就是 编程,对吧?这就是Stack Overflow的本质。所以。
[1306.425-1313.251] SPEAKER_00: 说起来好像容易,但在2004年,让我们回到那时。 你创办了Coding Horror博客。一开始就这么叫吗?
[1313.551-1330.016] SPEAKER_01: 这是我做的一件聪明事,出自史蒂夫·麦康奈尔的《代码大全》。 这是我最喜欢的编程书之一,可能还是排名第一的。 值得任何人读。当时我聪明,但不是每次开始都聪明。 我联系史蒂夫说,嘿,我特别喜欢这个侧边栏插图。
[1330.096-1347.374] SPEAKER_01: 用于编码,对吧?Coding Horror就像在说小心。我喜欢那幅图因为它 触动了我,看到时,哦,那就是我。就像我总是自己最大的 敌人。编程关键一点是,每次写代码时,思考 我该怎么搞砸自己?因为你总会这样,对吧?所以那图标就像
[1347.454-1365.080] SPEAKER_01: 哦,我需要不断举起那面镜子看,说,看,你很容易犯错。 你会搞砸的。就像,你怎样才能构建它,使得以后不会 搞砸它?就像,你怎么能。 养成那种纪律,确保每一步都仔细思考所有可能 我做错或别人可能做错的事,因为这其实就是你很多时候
[1365.160-1379.291] SPEAKER_01: 成为更好程序员的方法,对吧?所以那幅插图,我特别喜欢。然后我写了 Steve,我写博客前问过他:嘿,能用这个吗?因为真的 很喜欢这插画。Steve很爽快地答应了,并且一直 都给我许可。所以,对。
[1379.591-1388.356] SPEAKER_00: 真的很棒。但2004年你开了博客。你看, 斯蒂芬·金, 那本写作书,或者《艺术之战》。感觉作家们都挺痛苦。 就是说,写作很艰难,对吧?
[1388.656-1403.739] SPEAKER_01: 肯定痛苦。我不骗你,工作本身就是苦的。 对吧?做这些工作,每周你都会想,好吧,那篇博文 不太好。或者别人不喜欢,有人说坏话。 你得有这种态度:不管发生什么,我都想做这事 为了我自己,对吧?不是为你,是为我。
[1403.819-1419.019] SPEAKER_01: 最终是为了大家,因为好作品才能传出去。但是 你得严格要求自己:从某种意义上说,我是自私的,因为必须 为自己做。你提到斯蒂芬·金的写作书,但比如其中 我常做的一件事:写作时大声朗读。最好的建议之一
[1419.099-1434.391] SPEAKER_01: 对任何写作,就是大声朗读,多读几次,让它听起来像你在 说话,因为好写作的目标就是像说话,只是稍微 更好的措辞,因为不想总说“我不擅长这个” 因为你有更多时间思考。但应该听起来自然。 说出来。这是我最好的写作建议。
[1434.471-1437.837] SPEAKER_01: 只要大声读几遍,确保像平时说话。
[1438.137-1442.827] SPEAKER_00: 而且听起来不错。 你的写作过程呢?博客背后常有个好想法。
[1443.127-1454.936] SPEAKER_01: 想法没错,世界上有趣事太多了。 比如,世界太神奇了,你永远无法。 没错。 把所有事写出来,太不可思议。但一天连一件有趣事都 想不出来,就是努力不够。
[1455.016-1469.287] SPEAKER_01: 世界充满有趣东西。好方法就是 翻翻旧书,它们会提出一些依然。 相关老话题。我常读经典编程书。 很多早期博客文章这样来:读编程书,他们提出。 一个酷概念,我想多聊聊。你并不是。
[1469.367-1478.701] SPEAKER_01: 不是据为己有,但给了有趣话题,而且是。 常青内容。你不需要想。 聊什么?就去翻经典编程书,找。 哇,这个有意思。或者今天怎么用?X和Y呢?
[1479.001-1491.403] SPEAKER_00: 或者比较这两个概念? 从书里摘几句,顺着说,就是赞同。 可能有人不认同。2007年,你写道有人出高价要你卖。 那个博客你没卖。当时你考虑了哪些因素?我想带你回顾。
[1491.483-1496.544] SPEAKER_00: 带你回顾一下。 是的。 你一生做了很多非线性决定。那个决定呢? 是怎样的?
[1496.844-1513.181] SPEAKER_01: 对,我喜欢《选择你自己的冒险》这套书,小时候特别喜欢。 我觉得它们是最早的程序员书,都是if-then语句。 对吧?如果这样,就那样。它们很苛刻。很多网站。 绘制了那套书的地图,显示多少坏结局。有很多。
[1513.261-1525.349] SPEAKER_01: 坏结局。游戏就是,哦坏结局,往后退一步,再退。 一步。就像,我怎么到这的,对吧? 就像,一连串决定。生活也是,每个决定都是序列。 个序列,对吧?单独看,每个决定不一定对错。
[1525.429-1539.061] SPEAKER_01: 但它们带你走上一条路。我觉得有道理。这个特别的决定。 决定是,那博客很受欢迎了。有很多RSS阅读器。 然后有个人联系我,来自一个bug追踪公司。他说。 他很想买你博客,大概10万美元。也可能。
[1539.141-1546.281] SPEAKER_01: 8万美元,但很多钱,对吧?而且你知道当时。 就像,一下子拿到一年薪水。所以我必须认真思考,嗯。
[1546.361-1559.703] SPEAKER_01: 我记得当时跟人聊,心里想,哇,好多钱。不过呢... 前几天,我真挺喜欢自己博客的,对吧?我想卖掉它吗?因为... 到那时候它就不是我的了。我有一条准则... 我不爱给人建议,但有一条我给过...
[1559.783-1573.113] SPEAKER_01: 因为我觉得它特别对,还很有用:就是每当你要做决定... 比如,哎呀,我要选A、B还是C,你必须选那个稍微吓人点的选项... 不是跳悬崖那种吓人,而是让你紧张的事... 因为选安稳的,往往没真正逼自己...
[1573.193-1594.572] SPEAKER_01: 没逼自己,就没选能帮自己成长的事。所以对我来说... 更吓人的选择是说“不”,我就想,嗯,不,咱们看看这条路通向哪... 对吧?因为那样我就拥有它了。是我自己的东西。我就能带着它... 走向另一个合理的结果,对吧?想象下如果我说“是”,世界会多不同... 如果我说,好,卖掉博客,卖掉,卖掉...
[1594.652-1607.808] SPEAKER_01: 我答应了,卖掉了,那可能就没有Stack Overflow了。你知道... 很多事都会变。所以对那个决定,我觉得正是那条... 同样的规则:什么让我更怕?去做害怕的事?
[1608.108-1616.432] SPEAKER_00: 说到创业,我想有些具体和普遍的问题... 大家都感兴趣。你创办了Stack Overflow,还有... Discourse。一开始就一两个人,或者三个人...
[1616.512-1623.257] SPEAKER_00: 那个过程是怎样的?是先聊?还是先写代码?还是先... 就像,实际诞生和催化剂在哪呢?
[1623.557-1640.579] SPEAKER_01: 嗯,我结合Stack Overflow和Discourse谈。 最初关键是,有个问题,某种世界状态。 不满到让你烦,对吧?就像那个情况下, 就是Experts Exchange。Joel最初的想法是,我对他说,你看 Joel,我博客背后有这么多能量,想做点什么,想构建点什么。
[1640.659-1663.953] SPEAKER_01: 但我不知道是什么,老实说我不擅长想点子。我真的不是。 我是执行者,擅长执行,但不擅长天马行空地 想点子。这不是我的强项,也是我喜欢社区反馈的原因,因为他们 整天为你天马行空,对吧?所以当我能直接进去挑一个天马行空的想法 从社区中,即使花三个小时读才能得到好点子,也值得,
[1664.033-1683.145] SPEAKER_01: 但无论如何,Joel想,Experts Exchange有很好的数据, 但体验很糟,对吧?它试图骗你,像二手车推销员, 就是很差。所以我想,哦,太棒了。它融入社区,融入像是, 你知道,我们可以做一个知识共享。 所以核心是,最初要有一个你非常认同的好主意,
[1683.225-1699.319] SPEAKER_01: 就像是,世界上有个错误,我们通过建这个东西来纠正不公。 对于Discourse来说,就像,看,没有好的软件让 社区随意交流做事,对吧?无论是解决问题、创业, 无论什么,论坛是线上社区的好基石,但它们很糟。
[1699.399-1712.404] SPEAKER_01: 太糟了,真尴尬。都不好意思说跟这软件有关。 对啊,得做出让自己骄傲的软件。就像—— 这很有竞争力。 能跟Reddit、推特、脸书竞争。 对吧?我会为用这软件而自豪。所以这就是
[1712.484-1721.818] SPEAKER_01: Discourse源于必须有个好社区方案。所以 第一步,你深信的创意起源。然后人们会聚集 围绕创意。乔尔已经超兴奋了。我也对这个
[1721.898-1734.764] SPEAKER_01: 很兴奋。我在推特发帖调研论坛软件, 开始研究这个问题。 对。找到“论坛战争”游戏,戏仿论坛。现在依然非常, 超好笑,像论坛圈子——大概2003年。有些过时了,
[1734.844-1747.896] SPEAKER_01: 推特行为不同,但很棒有趣。 它像RPG游戏,附带论坛。所以这是关于 论坛游戏带论坛。我说太棒了,对吧?太酷了。而那个公司 或者说项目创始人——不算公司——联系我,多伦多的罗宾·沃德
[1747.976-1762.340] SPEAKER_01: 说:嘿,看到你聊论坛,我真的很喜欢那个 问题领域。我想建个好的论坛软件,因为觉得 现有的都不行。我说太棒了。当时就想:开公司吧, 因为不可能有更好的人选主动来说: 我也兴奋,乔尔也是,对吧?他是行业传奇。
[1762.420-1775.959] SPEAKER_01: 他过来说很兴奋,我也心想:我也是。 兄弟,我们能行。这是最重要的一步。好比有一个 超级兴奋的想法,加联合创始人,对吧? 双重领导力,比如怕做错决定,有检查机制好。
[1776.259-1783.097] SPEAKER_00: 这是好主意吗?不知道。这些是关键种子,然后开始 构建东西,无论是否编程,都要做原型。有很多研究。
[1783.397-1796.042] SPEAKER_01: 很多研究。比如别人失败了什么?因为大家总看 成功案例。每个人都看成功案例。那些 很无聊。给我看失败案例,那才有趣。那是实验的地方。 那是人们推动的地方,但他们失败了, 但他们可能。
[1796.122-1811.113] SPEAKER_01: 失败原因不直接和想法质量有关。所以要看看所有 的失败案例。别只看大家都看的,比如‘天哪,看这些’ 成功人士。看看失败案例,研究那些不奏效的, 整个领域。这就是我当初的研究,找到了罗宾。对吧。
[1811.193-1824.500] SPEAKER_01: 就是这样。比如我们做Stack Overflow时,我们想, 我喜欢投票和Reddit的元素。喜欢维基百科, 所有东西都是最新的。不像古老墓碑那样 过时信息。我们知道那有效。维基百科很棒。博客。
[1824.580-1849.384] SPEAKER_01: 所有权概念很强,对吧?就像乔写的好答案。我们揉合概念,研究现有有效做法,然后融合。 Stack Overflow就像弗兰肯斯坦怪物。这有代价,系统张力大。人们抱怨它太严,为啥这么严?为什么? 你们总关我问题。因为我们给系统太多压力,想得到好结果。这有代价,对吧?没人有完美答案,也没人该被伤或踩。 不是吗?事情不是那样,对吧?这是一个有趣的点,小插曲。
[1849.464-1867.334] SPEAKER_01: 你写焦虑。我发问题配图,针对具体事。你说SO目标是为未来社区,难推销。人们只关心自己。公平,平衡:帮你和后来人。 人们抱怨SO太严,对吧?为啥这么严?为什么? 你们老关我问题,那是因为积累太多紧张了。 进入系统,想得到好结果。而且,你知道,
[1867.414-1874.043] SPEAKER_01: 这可不是免费,不是白来的,对吧?又不是我们都有... 完美答案,没人伤心,也没人被踩。
[1874.343-1887.302] SPEAKER_00: 好像不是那样,对吧?比如,这是个有趣的点,小题外话。 是的。你写焦虑。呃,我发了很多问题并写了。 SO问题页的图片,通常指向具体内容。 指向我正在做的一件事。这是你谈的真正SO的目标。
[1887.382-1894.870] SPEAKER_00: SO不是关于写问题,不是关于你,而是关于那个问题。 将来会帮助社区。没错,但很难接受,对吧?因为人们。
[1895.170-1912.889] SPEAKER_01: 就像,嗯,你知道,我不在乎社区,我在乎我的。 问题。我的问题。嗯,然后这也公平,对吧?这又是那种情况。 那种紧张感,那种平衡——我们想帮你,也想帮所有人。 就在你后面,对吧?长长一排人过来说,哦,我有点... 问题也一样。对。没人敢说,我也有这问题。
[1912.969-1921.014] SPEAKER_01: 那问题就不该在Stack Overflow上,太具体了。 这还是种紧张,你怎么判断没人会? 再遇到这问题?系统里紧张因素很多。
[1921.314-1930.416] SPEAKER_00: 提问和回答的焦虑,是程序员固有的吗? 是程序员固有的吗? 是过程固有的,还是能改善?有快乐的地方,那里 那种紧张没那么严酷吗?
[1930.716-1944.627] SPEAKER_01: 我不觉得Stack Overflow能完全变,他们做的一件事是 在改进提问页,这页从2011年没变过,我耿耿于怀。 因为问答系统,核心页面是什么? 首先是问题、答案和提问页面。 特别是当
[1944.707-1959.698] SPEAKER_01: 你是新用户或想提问时,最需要帮助。 网站没与时俱进,但好消息是他们在研究 据我所知,会更向导式,你可以想象一个 在向导式程序里,提问时,想出一个 好标题,放什么好词?不适合的词是
[1959.778-1976.406] SPEAKER_01: “问题”,比如“我有个问题”。你有问题,好的,那真是 太好了,要具体点,所以它想帮你做个好的 比如说,问题标题。 步骤会被拆开,嗯,那些东西。但在提问向导的其中一步里 比方说,嘿,我有点紧张。你知道,我以前没做过。你能把我安排到一个
[1976.486-1993.671] SPEAKER_01: 比如特殊导师队列?对。你可以加入一个特殊导师。我觉得那会 很好。对于这种自愿加入的系统,我完全没意见。 因为有些人就像,你知道,我只想帮他们。我想帮一个人,不管 不管怎样,我想超越常规。我想花几小时和这人在一起。嗯,我,我,
[1993.751-2010.413] SPEAKER_01: 这得看他们的目标是什么,对吧?好主意。我有什么资格评判? 对。所以那没问题。它也不是不行,但有一种特定的大都市精神 我们一开始就有,比如,看,我们是纽约市。你不会来纽约市还指望 他们会说,哦,欢迎来到这座城市,乔。你好吗?进来吧。让我带你四处看看。
[2010.493-2026.517] SPEAKER_01: 那不是纽约市的风格。对。我是说,而且你知道,纽约市有个名声 以粗鲁出名,但最近我去过,其实我不这么觉得。它并不 粗鲁。人们只是忙着各自的事。就像,看,我有事 要做。我很忙。我是个大忙人,你也是。既然你也是个忙人,当然
[2026.597-2044.409] SPEAKER_01: 提问,你会尽量问出最好的问题,对吧?因为你是个忙碌的 专业人士,你不会接受任何写得不够好的问题,带有 大量关于你为什么这么做、你在做什么、你研究了什么、你发现了什么的细节, 对吧?因为你和我一样是专业人士,对吧?但这有时会让人不满。
[2044.489-2048.680] SPEAKER_01: 而且我觉得这样说没错,看,我不想要那种体验。我想要
[2048.760-2063.785] SPEAKER_01: 只是更适合初学者的轻松地方。我还是觉得牺牲不是, 从来就不是给新手设计的,对吧?有这种误解,你知道, 甚至 对。 有时候会说,哦,Stack Overflow适合新手。但我觉得如果你是天才, 那可能吧。
[2064.085-2065.698] SPEAKER_00: 对,但大部分不是。
[2065.998-2081.140] SPEAKER_01: 但这不代表普遍,对吧?我觉得新手需要一套完全 不同的工具。你要实时屏幕共享、实时聊天。你要获取 资源。你要个游乐场,能实验和测试的游乐场 还有这些没提供的,因为从来就不是
[2081.220-2097.685] SPEAKER_01: Stack Overflow设计的受众。这不表示错。我觉得这 如果网上有这样的网站,或者Stack Overflow 说,嘿,我们要开始做这个。也行。我不在那里。 我不做那些决定,但我觉得你描述的压力和紧张是 存在的,让人感受,我有点紧张,因为必须做到最好,对吧?
[2097.985-2108.436] SPEAKER_00: 你提的另一个问题,也有趣,就是重复的 问题或重复问题,这是你强调的非常难的问题。 超级专业,超级难。 比如你拿个小话题,大概能写10、20、
[2108.516-2115.238] SPEAKER_00: 那个话题有30种问法,各不相同。我不知道该不该 有个页面回答所有问题。Stack Overflow能不能帮忙?
[2115.318-2120.728] SPEAKER_00: 消除歧义,比如把重复问题分开或连接?还是说 这完全是无望、困难、不可能完成的任务?
[2121.028-2139.153] SPEAKER_01: 我认为这是个非常非常难的计算机科学问题。部分原因是人们很擅长 用完全不同的词语。在Stack Overflow上我总惊讶。你会看到两个 功能完全相同的问题,两个问题间却无共同词语。 我心里想,天哪,从计算机科学角度看,你甚至怎么
[2139.233-2155.489] SPEAKER_01: 开始解决这个问题?经常发生。人们很擅长,对吧? 嗯,无意中用十种、二十种不同方式问同一件事。还有 复杂的是,我们希望有些重复存在。因为如果有五个不同版本, 让五个版本指向同一个答案,对吧?就像,好吧,
[2155.569-2173.230] SPEAKER_01: 这是重复的,没关系。这里就是你想要的答案。 在这个,这个,你知道,我们想要的典型例子是,嗯, 而不是有十个问题和答案的副本,因为有了十个副本, 这也会降低声誉系统价值,程序员讨厌。正如我之前 提到过,你因为别人已给的答案获得声誉。就像,嗯,
[2173.310-2189.845] SPEAKER_01: 这是一个答案,但别人已给过。那你为什么还要因为 四年前别人给的相同答案而获声誉?人们反感,对吧?所以 声誉系统本身给系统增加了紧张感,嗯,因为那些有…… 大量声誉让人有动力用系统。嗯,而且对于
[2189.925-2208.166] SPEAKER_01: 通常这样挺好,我知道听着怪,但大多数就像,严格的系统。 用Deck Overflow,你得接受严格的系统最终有效。 更好。编程中,你熟悉弱类型和严格 类型对吧?概念是,可以声明变量,也可以不声明, 直接用变量,自动就是整数。啪,太棒了。Duck
[2208.246-2223.933] SPEAKER_01: 等于五。duck 现在是整数五。你会想,酷,更简单, 对吧?我为什么要担心 关于类型?很长一段时间,Ruby 社区会说,是的, 这太棒了。就像只做单元测试,测程序有效性 事后捕获类型本可找出的bug。
[2224.013-2241.906] SPEAKER_01: 的bug。现在有TypeScript,来自微软,来自那位 创建C#的Anders,软件开发最伟大的思想家之一,对吧?就像 语言设计上,他说,不,我们想给 JavaScript加个严格类型系统,因为更好。现在大家都,哦天哪,我们, 部署TypeScript后发现50个隐藏bug。
[2241.986-2254.515] SPEAKER_01: 之前不知道的bug,对吧?很常见。所以我认为有个真理 编程中:严格本身不是目标。不是说超级严格,因为 严格正确?不,是严格带来更好结果。这就是我说的。
[2254.595-2269.353] SPEAKER_01: 对吧?对于变量严格类型,现在几乎已达成共识。 差不多对。每种语言都该这样,对吧?Duck等于5就报错。 一个错误,你没声明duck是整数,对吧? 一个错误?或者你打错,打了deck不是duck,对吧?永远不知道。
[2269.433-2282.578] SPEAKER_01: 这种事常有,对吧?所以系统严格没错。 是对的。但不代表残酷、刻薄或愤怒。它 只是严格。好的,所以误解在于人们会变得暴躁,对吧? 就像你另一个问题:为什么程序员有时有点刻薄?嗯,
[2282.658-2287.545] SPEAKER_01: 程序员整天和谁一起工作?我有个理论,如果你在工作里 整天和混蛋一起工作,
[2287.625-2299.992] SPEAKER_01: 你最终也会变成混蛋。而电脑不就是世界上最大的 混蛋吗?因为电脑没空理你的废话。电脑,在你犯错的那一刻 一切都会崩溃,对吧?一个分号就让太空任务崩溃了,对吧?
[2300.072-2313.321] SPEAKER_01: 所以这很正常。于是你开始内化这点,想,哦,我的同事(电脑) 超级严格,什么都有点混蛋。所以这就是我会 变成那样,因为我和电脑一起工作,必须服从。 它的所有条款。所以你开始吸收这点,开始想,
[2313.401-2326.952] SPEAKER_01: 哦,嗯,无端严格真的很好。一个错误代码56249的错误是 一个完全好的错误信息,因为那是电脑给我的。对吧?所以你有点 某种程度上忘了做人。你知道他们说优秀侦探会内化
[2327.032-2341.639] SPEAKER_01: 罪犯,自己也有点像罪犯,就像那个主角侦探的梗是好的 因为他能像罪犯一样思考。嗯,程序员确实如此。很好。 程序员像计算机一样思考。嗯哼。 因为那是工作。但如果你太内化它, 你就会变成计算机,对谁都像个混蛋。
[2341.939-2347.070] SPEAKER_00: 对。因为你已经内化这一点。 你几乎不算混蛋,但对缺乏严谨性没耐心。
[2347.370-2362.453] SPEAKER_01: 是的。不是恶意。是无意的,但职业性的。 程序员的职业病是像计算机一样。你很不宽容。 你非常简洁。你非常,哦,错了。不对。继续。比如,嗯,你能帮忙 我吗?比如,我能做什么?不。错了。下个问题。
[2362.533-2370.857] SPEAKER_01: 对。就像这对计算机很正常。对。只是失败下一个。对。就像我不知道 你还记得《周六夜现场》里,九十年代,有个角色是
[2371.157-2385.962] SPEAKER_00: IT人员。对。移动的那个。移动。那是吉米·法伦吗?不,记不清了。谁 扮演他的?呃,好吧。嗯。我记得移动。对。他对这没耐心。可能 其实是《疯狂电视》。或者不是。是《疯狂电视》吗?可能吧。但不管怎样,
[2386.262-2389.907] SPEAKER_01: 那就是人们的看法,对吧?你开始像计算机一样。
[2390.207-2397.335] SPEAKER_00: 嗯,你错了,让开。你写了好多编程博客文章, 关于程序、编程,程序员。你觉得什么造就一个好的,我们先从
[2397.635-2412.045] SPEAKER_01: 什么造就好独立程序员?嗯,你不该成为独立程序员。我觉得要 成为好独立程序员,有点像我说过的。嗯,不是Mike上,但其中一个 约翰·卡马克在《毁灭战士之主》里有个很妙的观点。 那本书非常精彩。而且,
[2412.125-2424.759] SPEAKER_01: 如果你还没读过,一定要去读。它厉害的地方是, 那时他们在做《德军总部》《毁灭战士》等游戏。他们没有 今天那些资源,没有Stack Overflow、维基百科。 也没有讨论论坛,无处求助。所以只能
[2424.839-2442.744] SPEAKER_01: 全靠自己。这也解释了为什么需要卡马克这样的天才。 因为要从零发明,你必须是天才。他做的很多事 都是天才级别的,对吧?但现在你不需要 成为天才了。这意味着别单干。你要善于研究 网上资料。还要善于提问,提出好问题,且经过
[2442.824-2455.411] SPEAKER_01: 充分研究。比如,提问前先花三小时研究。 养成这个习惯,能让你变优秀。 没错。这就是八十年代编程和现在的巨大差别。 那时基本靠自己。你想,去哪里找
[2455.491-2470.574] SPEAKER_01: 答案?我早期学Windows的Visual Basic时,会 拨打微软帮助热线。 有编程问题就打热线,因为不知道怎么办。 他们有大本电话杂志。现在想想多不可思议。 现在谁会这么干?太疯狂了。当时根本没别处。
[2470.654-2483.427] SPEAKER_01: 遇到困难时,我有随附的书,全读了。 我认真研读了那些。刚看到萨诺夫斯基的帖子说C++ 第七版附带约一万页书面资料,不然去哪找? 不然你还能去哪找呢?
[2483.507-2488.812] SPEAKER_01: 想弄明白?去图书馆。那时没有维基百科。 也没有Reddit,没地方问这些问题。
[2489.112-2498.446] SPEAKER_00: 你多年说过,没有自负,也不觉得自己世界最佳。 总是想要提高,比昨天更好。 那么,作为程序员和设计师,你如何改变?
[2498.526-2503.808] SPEAKER_00: 作为程序员和设计师,你有哪些变化? 编程过去多久?15年,作为公众人物。
[2504.108-2516.823] SPEAKER_01: 重要领悟:作为程序员,最终得停止写代码。 停止写代码才有效,有点不安,因为你热爱编程。 但你意识到,编程有效并不意味写代码。 很多时候不写代码反而更成功。
[2516.903-2531.986] SPEAKER_01: 解决问题时,写代码就是雇佣优秀的人。 雇佣优秀的人,然后让他们自由发挥。 对,对,对,就是这样。 对,没错,就是这样。 对,对,对,对,对。 很多问题不一定非要用复杂代码解决。 它们靠概念方案解决,再转成代码。
[2532.066-2547.335] SPEAKER_01: 但你解决对的问题了吗?我的关键看法是 你作为程序员,想成功就得停止写代码。这 可能听着沮丧,但我不是那意思。我的 意思是你是在更高层次编码。 语言最终,我们当时用汇编编码,对吧?那是开始,
[2547.415-2561.651] SPEAKER_01: 对吧?你直接硬编码在架构上。后来有了C,哇, 我们可以跨架构抽象。你可以写代码。然后我把代码编译成arm 或者,你知道,x86什么的。然后甚至 更高层次,对吧?比如Python、Ruby这类解释型语言,然后
[2561.731-2577.209] SPEAKER_01: 对我来说,作为程序员,好吧,我想走更远。比那更高。怎么 比语言更高?就像,嗯,你用口头和书面来抽象, 对吧? 对。 你像是激励人们做事,给指导。比如如果我们这样做呢? 如果我们那样做呢?嗯,你在用最高级的语言写作,
[2577.289-2588.901] SPEAKER_01: 对我来说是英语,对吧?不管母语是什么。都关乎 效率对吧?我觉得帕特里克(patio11)在黑客新闻和Stripe工作, 有篇好文章说,称自己为程序员限制职业发展。
[2588.981-2602.277] SPEAKER_01: 离职业足够远时,我深信这点。 再次道歉。 这 听起来很沮丧,我不是有意的,但他说得对,那些事 围绕代码的人,那是另一回事。你看我早期博客 博客讲编程关乎人而非代码,这其实不对
[2602.357-2617.115] SPEAKER_01: 有意义,但问题是他们能合作吗?能理解彼此吗? 你能解释在做什么?解决正确的问题吗? 问题?《人件》是对的,另一本经典,与《代码大全》齐名 请读《人件》,它说软件即人,人是软件
[2617.195-2634.426] SPEAKER_01: 首要的。所以我早期博客学的很多技能都是关于 弄清楚编程中人的部分,这是更难的,编程难点 编程技能到一定水平,几乎能解决任何 面前的合理问题。你不是从头写算法 对吧?根本不会发生。所以任何面前的合理问题
[2634.506-2644.061] SPEAKER_01: 你都能解决,但解决不了的是经理是个混蛋 无法用代码解决。那不是代码问题。然而那会 让你比'哦,我们得用这蠢框架,我不喜欢'等等
[2644.141-2658.412] SPEAKER_01: 知道,萨姆写我讨厌的烂代码,或者戴夫在那边 荒野里写天知道什么,这些不是问题,你的问题是 经理或同事很毒,团队没人能完成任何事 每个人压力大、抓狂,对吧?这些你都得解决
[2658.712-2670.382] SPEAKER_00: 去解决的问题。当然,所以当你 通过更高级别抽象,程序员发展到更高 更高级抽象进入自然语言时,你也有点 宣扬过,构建它,投入去做,还有通过
[2670.462-2678.797] SPEAKER_00: 实践学习,是的。担心达到更高级抽象时 你会忽略底层构建,呃就像 你担心吗?也许不是现在,但十年二十年
[2679.097-2694.703] SPEAKER_01: 不,总有种 paranoid 感,觉得自己没价值了 不再写代码了。但开始 Discourse 项目用 Ruby 我其实不懂 Ruby。你指出过,这很有价值 在 Stack Overflow 上你很精通,比如 C# 我之前 一直用 C# 建 Stack Overflow,还在用,然后切到
[2694.783-2710.969] SPEAKER_01: Ruby,你又成新手了,但你有框架。我知道什么是 for 循环,我知道什么是递归 我知道什么是堆栈跟踪,我拥有所有 程序员的基本概念。只是不懂 Ruby,所以还在更高层次 我不是纯新手。像你说的,只需将我已有的
[2711.049-2714.659] SPEAKER_01: 编程概念用到 Ruby 上。嗯,有个问题
[2714.959-2718.488] SPEAKER_00: 有趣。那Ruby呢?你怎么学到够用直觉的?
[2718.788-2736.948] SPEAKER_01: 嗯,这是自然延续。我是想说,我意识到 刚开始和Robin合作时,我意识到打扰他会付出代价。 对对对,对对对,对对对。 生产力。没错。每次找Robin,而不是构建我们的第一个 Discourse的alpha版,他却在回答我Ruby的蠢问题。这算不算
[2737.028-2753.516] SPEAKER_01: 合理利用他的时间?还是我的?答案非常明确 不,对吧?我们快做出alpha版了,好吧,会再雇 更多程序员。最终雇了尼尔,呃,还有后来的萨姆,他是 作为联合创始人。嗯,哦,其实是萨姆先来,然后是尼尔。但答案,
[2753.596-2768.192] SPEAKER_01: 问题就是雇其他称职的程序员。而不是说,我现在要 靠自己学Ruby。但后来,写代码反而成了 完成事情的负担。项目中有太多其他事在进行, 比如构建原型。就像你说的,嗯,如果你不
[2768.272-2784.191] SPEAKER_01: 写代码,大家怎么保持专注?比如,我们在构建什么?嗯, 首先是基本模型和研究,对吧?我们到底想构建什么?这 会有一点,但很快进入原型阶段,比如 构建原型。让我们快速迭代它。 这就是我们在课程中做的。也是为获得种子资金演示的
[2784.271-2797.915] SPEAKER_01: 就是Discourse的alpha版,嗯,我们已经运行并准备好了。 去做吧。情况真的糟透了。直接说,很差。 我们有截图,现在看都尴尬。但那是个 原型。我们在试什么行,什么不行。因为
[2797.995-2811.917] SPEAKER_01: 想法和实际差很多,无论脑子里的还是纸上的,跟真正跑的完全不一样。一旦沉浸到软件里,花时间 体验它, 差距就大了。所以我主张快速做原型,真正要优化的是 迭代速度,比如多快能转一圈?那是
[2811.997-2826.988] SPEAKER_01: 任何软件项目的核心。我发了条推文,很多人喜欢, 而且这正是我工作的重点:如果你想衡量 任何软件科技公司的核心能力,就是当有人说,“嘿, 我们需要把产品里这个词改成那个词”,对吧?因为对用户更清楚。
[2827.068-2839.237] SPEAKER_01: 比如把“回复”改成“报告”。 “应用”之类,但从想法到那个词能修改并推送给用户,需要多快? 那就是你的周期。 那就是你的健康,你的心跳。如果心跳很慢,你基本就
[2839.317-2853.065] SPEAKER_01: 死了。真的。改一个词要两周甚至一个月, 那就像,“天哪,这个主意好。那个词清楚多了。”我指的是 那种大家都同意的改动,不是随便改玩。 而是那种超级棒的改动。
[2853.145-2866.208] SPEAKER_01: 因为我们无聊。这就像,这是个很棒的变化。 推出要几个月,嗯,你就完了,没法迭代。 做不到?那还做啥?总之,关于心跳,就像... 拿原型来迭代,这就是现代软件开发的核心。
[2866.508-2874.565] SPEAKER_00: 现代软件开发,有意思。你这么说,其实我在做... 我造自动驾驶汽车。比如对比特斯拉和其他车企, 特斯拉的心跳只有几天。
[2874.645-2882.609] SPEAKER_00: 他们能通过空中更新所有车辆软件, 而其他车企要几年才能更新一次。 所以这体现在方方面面,最终产品
[2882.689-2886.021] SPEAKER_00: 体现在他们适应时代有多慢。并不是说
[2886.321-2900.093] SPEAKER_01: 目标就是蜂鸟,心跳太快了。 翅膀乱扑,惊慌失措,但心跳是健康指标。 你应该有健康的心跳,对吧?这由听众决定 那意味什么?但必须健康合理,否则 你会沮丧。构建软件就是这样:犯错,推出,
[2900.173-2914.664] SPEAKER_01: 和它共存,感受它,然后说“天哪,这主意真糟”。 如果把Y做对就更好了。转动曲柄,越这样做, 你就越快领先对手,因为你是变化率, 对吧?ΔV,你移动多快?一年后,你就领先数英里
[2914.744-2928.887] SPEAKER_01: 追不上你,对吧?这就是运作方式。用户喜欢我,作为软件 开发者、用户,我爱软件。它总变,因为我不懂。 人们会很生气:“他们改软件了!怎么敢?”我 就说:“对,改软件,一直改,哥们。”这就是让
[2928.967-2941.473] SPEAKER_01: 这东西伟大:它能迅速变,变得比现在更牛。 当然有些改变很糟,我承认见过多次。 但总之,这就是软件酷的地方,对吧? 就是这样。 它很灵活。抗拒它很奇怪,因为…
[2941.553-2948.379] SPEAKER_01: 你在对抗你造的东西的本质,说不通。 你要真正拥抱它,不是像蜂鸟,而是拥抱到
[2948.679-2955.377] SPEAKER_00: 心跳健康循环,对吧?所以你说人不会改变。 没错,这大概就是你博客很多东西依然正确的原因。
[2955.677-2970.447] SPEAKER_01: 依然正确。但有两面性。人不会变,所以要投资 在理解人上,就像1970年学Unix, 什么都没变,对吧?你学到的关于人的东西 三四十年后还有效。而如果学最新的JS框架, 那大概只管两年,对吧?
[2970.747-2979.802] SPEAKER_00: 没错。但看编程的未来,有人的因素, 也有技术本身。你觉得编程的未来是什么? 它会大变吗?或者,据你所知,人最终在编程。
[2979.882-2983.109] SPEAKER_00: 所以它不会。 这不是你预见会根本改变的事。
[2983.409-2990.769] SPEAKER_01: 嗯,得回顾编程基础。其中一件事 震惊的是源代码控制,我从没学过。 我92年毕业,但记得听说有人直到98年,
[2990.849-3004.098] SPEAKER_01: 99年甚至今天还没学。对我来说,嗯, 怎能不学呢?这对合作至关重要, 避免丢失工作成果。 就像基本软件,开发基石就是源代码控制。 现在看今天,比如GitHub,微软收购了它,
[3004.178-3013.373] SPEAKER_01: 我觉得很明智。 现在任何人都可以去GitHub注册。它是 为你准备好的,有大量指南教程。所以从 这个概念来说,编程有进步吗?嗯,有了GitHub。
[3013.453-3026.911] SPEAKER_01: 天哪,是的,比以前巨大进步。 至于是否? 编程有显著不同吗?我会说没有,但基线 我们视为的基础知识会上升变好。就像源代码 控制。例如,这是进步的基础之一,我的意思是,
[3026.991-3030.160] SPEAKER_01: 比10年20年前好数百倍。
[3030.460-3038.099] SPEAKER_00: 这是基础。我讲两个点,你评论下。第一 手机可能彻底改变编程,嗯, 编程的本质,也可能不会。你评一下。另一个是
[3038.179-3044.843] SPEAKER_00: AI有望在某些方面替你编程 工作,可以这样理解。程序员就是 利用大脑智能做有用的事。呃,
[3044.923-3058.509] SPEAKER_00: AI希望替你完成有用的部分, 你不用思考。那你觉得呢? 智能。 智能。 智能。 智能。 智能。 智能。 手机人手一部,越来越强,可能 改变编程。你觉得AI能改变编程吗?好,这是
[3058.809-3071.071] SPEAKER_01: 很好。智能手机从2010年起改变了很多, 变得特别流行。八年里世界变了很多。 对吧?人人带电脑,很正常。社会巨变。 我们还在应对它的正面和负面影响,对吧。
[3071.151-3085.259] SPEAKER_01: 就像每个人都一直在线,一直盯着电脑, 作为极客,这是我的梦想世界,但愿望成真也得小心,现在 每个人都有一台电脑,但这并非我们想象中的乌托邦, 电脑可以用来做很多不一定好的事,所以对我来说,
[3085.339-3098.553] SPEAKER_01: 智能手机的核心就是把电脑放到每个人面前,当然是一台 小触摸屏,略小的电脑,但编程呢,我不知道,我不 随着时间的推移,我逐渐认同了Unix的 编程世界观,比如你想教基本的命令行操作,
[3098.633-3112.114] SPEAKER_01: 而这就是编程在未来很长时间里会有的样子, 我不认为会有神奇的视觉化编程出现, 嗯,我只是不知道,后来我成了Unix哲学的信仰者, 他们用Unix做得很好,未来很长时间都会这样,
[3112.194-3129.716] SPEAKER_01: 我们会继续,像我说的,提高基准,工具会更好更简单,但 它本质上还是命令行工具, 你知道,花哨的IDE,在可预见的未来就是这样,我没看到任何 视觉化编程的苗头,因为你想,在 智能手机上做什么能直接类比编程呢?我在想,对吧,
[3130.016-3133.684] SPEAKER_00: 其实没太多,所以不一定类比编程,而是那种
[3133.764-3136.457] SPEAKER_00: 你需要编写的程序类型
[3136.537-3141.738] SPEAKER_00: 可能会 语言差异很大,这点我也许赞同。 同理,万物用JavaScript写,哦对,那…
[3142.038-3150.362] SPEAKER_01: 这事已经发生了,Discourse押注了自己。 JavaScript是另一个赌注,我还在努力相信。 所以智能手机主要是文化转变,不是编程转变。
[3150.442-3161.416] SPEAKER_01: 你现在另一个问题是关于AI之类的。 预测你接下来做什么,我觉得有道理。 AI有点夸大它做的事,其实更像… 人是可预测的,总做同样的事,比如…
[3161.496-3170.516] SPEAKER_01: 我们给Discourse加了个检查,大网站都有。 从纽约登录,一小时后从旧金山登录。 很有趣,你怎么一小时内从纽约到旧金山?
[3170.596-3182.591] SPEAKER_01: 你会说,可疑登录,我们会提醒你。 但这不是AI,只是启发式,比如你一小时到… 2000英里?你可能用了VPN之类的。 这只是基于人们一般不会到处移动的预测。
[3182.671-3194.086] SPEAKER_01: 他们可能偶尔旅行,但除非你是旅行… 推销员,否则不会天天跑,但有很多重复。 可预测性,好的软件能预测你的需求。 比如Google Now或别的谷歌产品。
[3194.166-3208.332] SPEAKER_01: 手机会根据你的位置预测通勤,比如你每天去哪。 大概就是你工作的地方。但电脑能做得更好。 但我不确定这叫不叫真正的人工智能,只是电脑更聪明了。 首先,因为现在人人都有智能手机,数据很多。
[3208.412-3225.156] SPEAKER_01: 我们有了以前没有的数据,比如位置和通讯。 把这些数据输入基本算法,再用些复杂算法来处理。 转化成某种东西,比如。 预测你的需求,像朋友一样,比如“嘿,我看到你的 家?你想吃晚饭吗?”比如“我们去吃点东西”因为平时这时候我们
[3225.456-3232.085] SPEAKER_00: 都这么做。编程时,你有没有发现集成开发环境 在改进,让编程更轻松?我觉得有可能,因为
[3232.385-3244.961] SPEAKER_01: 编程有很多重复。Clippy 就是反面例子,比如“哦, 我看到你好像在写for循环。”但代码有模式,对吧? 其实库也类似,对吧?而不是 你自己写HTTP请求库,你会用
[3245.041-3258.023] SPEAKER_01: 现有调试好的库。这不算人工智能,只是 搭更好的乐高积木,更大,功能更多,这样 人们就不用担心底层细节了。比如WordPress 对我来说,它为非程序员提供工具。你可以把
[3258.103-3271.817] SPEAKER_01: WordPress通过插件能变任何东西,挺疯狂的,而且那不是 编程本身 就像搭乐高,堆WordPress模块,再粘合配置。 所以我觉得,从更广角度看,以后更多是粘合工作。
[3271.897-3276.390] SPEAKER_01: 很少真正编程,这是好事对吧,因为大部分东西
[3276.690-3278.385] SPEAKER_00: 已经存在了。
[3278.465-3286.069] SPEAKER_00: 早期诞生时的 编程会长期存在,就像你说的Unix一样。 就本身而言,你最终觉得这些东西只是因为惯性?
[3286.369-3309.396] SPEAKER_01: 我有点这么想。早期我是Windows铁粉,而且,你懂的,我曾经 比如,Unix真是浪费时间,但后来我完全改观了,变得像是,好吧 Unix那些人是对的,微软和Windows基本错了,至少服务器端这样。 服务器端。桌面端呢,你需要图形界面,需要那些东西,还有两种理念。 比如苹果其实建立在Unix上,但我们还没到那步。你得有个非常好的
[3309.476-3327.056] SPEAKER_01: 其实就是Unix的Darwin,嗯,桌面端有点不同,但服务器端 现在编程,问题在于它会在哪里进行。 会有更多客户端编程这类东西,因为技术上,Discourse就是 客户端编程。你得到Discourse的方式是,我们给一个大JS包,然后它被
[3327.136-3343.578] SPEAKER_01: 在本地执行。所以我们很大程度上用本地计算能力。我们还会检索 数据,显然得显示帖子在屏幕上等等,但比如 排序和很多基本操作,我们用主机处理器。但很大程度上,很多 编程领域还是服务器端主导,没错,Unix哲学赢了。
[3343.658-3352.458] SPEAKER_01: Unix之上有不同外壳,但剥开一层或... 两层,它还是Unix式,会持续很久。Unix彻底赢了,这...
[3352.758-3363.511] SPEAKER_00: 听你这么说很有意思,你在微软做了很多杰出工作。 后端开发做得很好,那未来呢? 对杰夫·阿特伍德来说,这意味着什么?也就是Discourse的持续发展。
[3363.811-3377.815] SPEAKER_01: 努力改善网络对话。最初这个项目在我看来是一个 我叫它五年计划,但很快改成了十年计划,所以我们 2013年初开始,发布第一个版本,所以现在还在... 五年过去了,开始变好了,比如有了好产品。
[3377.895-3394.000] SPEAKER_01: 现在的Discourse。任何软件项目,都需要三年才能做出你想要的。 想要的东西。总之v1会复杂一些,但会... 很糟糕,确实,但你还是发布了,因为这样才能不断改进。 关键不断迭代,不是追求v1完美,那很荒谬,关键在
[3394.080-3409.825] SPEAKER_01: v1后,在v1.1、1.2、1.3上做得很好,迭代很快,我觉得我们 在Discourse上疯狂迭代,现在它确实是好产品,我们有了 势头强劲。最初愿景是成为讨论领域的WordPress,意思是 有人找你说,我想开博客,虽然这个问题有点过时了
[3409.905-3430.726] SPEAKER_01: 现在谁还写博客?我说,当你签上名字时,这是个好问题 但你要等着看谁真会写博客,这需要一段时间 但现在不了。我希望答案是WordPress,因为通常都是这样。 多数情况下博客都选它,但要是有人想要一个群组让大家聚在一起做点事, 答案就应该是Discourse,对吧?它应该是默认选项。
[3430.806-3445.170] SPEAKER_01: 因为它是开源免费的,不用花钱,你自己掌控,可以自己运行。 目前Discourse最低服务器成本是每月5美元。 他们实际上降价了VPS,以前1GB内存每月10美元。 我们依赖它,技术栈比较重,里面东西很多。
[3445.250-3461.471] SPEAKER_01: Discourse需要Postgres、Redis、Ruby on Rails,还有Sidekiq用来调度。 这不是小事,因为我们的架构是为未来10年设计的。 我不关心共享PHP主机,那不是我的模式。 我的想法是,最终对每个人都会很便宜,我希望正确构建它。
[3461.551-3470.188] SPEAKER_01: 再使用更高更大的构建块级别,它们有更高的要求。 还有WordPress模式,WordPress.org和WordPress.com,有没有中央托管的Discourse?
[3470.488-3473.762] SPEAKER_00: 不,有的。我们没有严格区分开源和商业方面。
[3474.062-3490.330] SPEAKER_01: 我们有托管业务,Discourse赚钱的方式就是我们托管实例。 我们跟客户关系非常密切,是一种共生关系,他们给我们产品反馈。 我们确实更重视来自客户的反馈,比路过的人给的要重得多。 但那就是我们赚钱的地方,我们没有严格的划分。
[3490.410-3494.194] SPEAKER_01: 客户的反馈,比路人的意见重要得多。
[3494.274-3497.466] SPEAKER_01: 那是我们挣钱的地儿,没分那么清楚。
[3497.546-3508.972] SPEAKER_01: 我们希望大家用Discourse,因为它免费。 对,谁都能搭建,我不想一个人托管,那样 不是目标,但这是我们主要的商业模式,而且 托管业务发展得很好,所以
[3509.272-3517.758] SPEAKER_00: 我以前在谷歌研究公司,那家基本靠 广告赚钱,就像Facebook。你觉得广告最好吗? 所以 你对广告很挑剔,但其实好的广告能
[3517.838-3524.502] SPEAKER_00: 帮你找到想探索的东西,就像相关帖子 或相关内容一样。广告的极致就是这样。Discourse
[3524.582-3532.163] SPEAKER_00: 靠兴趣连接人,似乎很适合做这种广告, 能真正服务用户。你考虑过这个吗? 给平台带来收入?有意思,其实我
[3532.463-3544.354] SPEAKER_01: 反对广告,但同意你。我最近装了广告拦截, 不太情愿,但现在的广告太重了, 性能很差,简直疯了。所以不是说我支持广告, 而是相反。我同意你,如果广告做得好,
[3544.434-3557.079] SPEAKER_01: 会展示你本来就感兴趣的东西。我不介意, 那其实是好事。另外,有人愿意 看广告来支持创作者也合理。不过话说回来,我 我装了广告拦截器,本来不想,被文章说服了。
[3557.379-3563.369] SPEAKER_00: 大量内容只为投广告,广告多如专家交流。 每次用Stack Overflow,就觉得公司太多。
[3563.669-3576.500] SPEAKER_01: 广告技术领域很尴尬,像那些标志图表看不清。 整页都是,看不清,公司太多了。 既然你提到,真正运营的论坛网站非常少。 广告支持模式效果不好,太稀太奇怪。
[3576.580-3587.948] SPEAKER_01: 不赚钱,用户也讨厌,两边都不好。 实际效果不好,理论上同意,广告干净快速就好了。 内容正是你感兴趣的就好了,但差得远。 比如谷歌就不行,好吧。
[3588.028-3595.713] SPEAKER_01: 会重定向什么的,但现实中论坛网站。 广告很少起作用,多种原因不行,但什么管用? 订阅、Patreon,还有亚马逊联盟代码。
[3595.793-3610.633] SPEAKER_01: 一个酷溜溜球,点击进亚马逊,他们拿一小部分。 我觉得公平,你在那网站看到溜溜球,然后点击。 然后你买了,他们拿5%或2%,很公平。 这些确实有效。我以前常参与一个网站,我帮了站长。
[3610.713-3625.460] SPEAKER_01: 其中一件就是让他们换到Discourse,我花钱让他们换。 Discourse,我说你们得换,我不能再来这破地方了。 但当时感觉就是在给用户看他们讨厌的广告 你应该完全转用Patreon,它更适合做这个
[3625.540-3637.988] SPEAKER_01: 亚马逊联盟计划,任何链接都那样做,收益翻三倍 就专注那类东西 这对创作者特别有效,所以那类东西管用 但传统广告肯定不行,至少在这个讨论里。最后一个问题
[3638.288-3645.451] SPEAKER_00: 你创造了代码键盘,我成年后编程基本都用Kinesis 我现在楼上有一个。能说说什么是机械键盘吗
[3645.751-3659.163] SPEAKER_01: 为什么让你开心?其实这是另一个痴迷物品,就像 这不是必需品,任何键盘都能编程,甚至屏幕键盘 键盘?天哪太可怕了。但触摸一下,回顾过去 早期有巧克力键盘,那些很糟糕
[3659.243-3672.213] SPEAKER_01: 对,巧克力键盘是什么?就是薄橡胶膜 橡胶那种?超级糟糕。所以这是个痴迷物品:你看 我真的很关心键盘,因为它是和电脑交流的主要方式 电脑对吧?就像播客要好麦克风,你想要好键盘
[3672.293-3686.320] SPEAKER_01: 对,触感很好,我能确切知道何时按下键 听到小咔嗒声,感觉很好。也是种痴迷物品,哇 我足够关心编程,所以关心主要交流工具 确保它尽可能好用,用着舒服,而且我非常
[3686.400-3699.324] SPEAKER_01: 本是高效工具,现像收藏品,也不错,表明 你认真,感兴趣的话,说明关心基础 因为优秀程序员靠飞快打字,对吧,这确实 真的,核心打字快,能提升想法到新层次
[3699.404-3703.630] SPEAKER_01: 从脑到代码库,多练打字让你更好
[3703.930-3708.771] SPEAKER_00: 它让你享受打字,实际敲击动作 过程中像弹钢琴的触感,最终
[3709.071-3720.924] SPEAKER_01: 滋养热情,开心,对吧,对,有趣的是 手工键盘爆炸增长,Mass Drop 火爆 Mass Drop 上五百个项目,还关注了另一个 推特上,我曾在 Tech Report 写稿,很早,他
[3721.004-3731.418] SPEAKER_01: 每周发键盘色图,各种酷炫键盘 天哪,太酷了,那家伙有多少键盘,这 像我玩悠悠球,问你有几个,嗯,一个足够 但我就爱多,键盘也一样,没错
[3731.498-3739.624] SPEAKER_01: 我建议没机械键盘的人研究看看 你喜欢啥,虽然终是收藏品,但这类物品 这些宗教圣物,是人类一部分,很重要
[3739.924-3742.872] SPEAKER_00: 对吧,让生活值得过,不必须,但
[3743.172-3747.177] SPEAKER_01: 转念一想,什么必需,没错,为啥不呢,杰夫
[3747.477-3750.983] SPEAKER_00: 多谢你今天跟我聊,不客气,也谢谢你邀请我。
[3751.063-3751.736] SPEAKER_00: 你