• 真热情她就会主动回约了

    Post #8
  • dvm:

    主要原因是对方冷淡,每次都是我找她聊天或者见面,缺乏情感上的正向反馈

    一开始为啥要找一个冷淡的人确认关系

    Post #6
  • 草批了吗?根据你的描述很像没怎么草过

    Post #5
  • 假设 A:价值观争论只是表层,真正的矛盾是关系安全感。

    「单身男女自愿约炮是否道德」是一项与你们无关的判断,因为你们不是单身;「我能否信任伴侣遵守我们的排他性约定」则是另一项判断。

    如果女方将前者当作后者的信号,那么双方争论的实际对象可能并不相同。

    重要的是你们是否有过明确的忠诚声明,以及忠诚对象仅限于身体还是包括情感、财务和其他具体类型的事情。

    假设 B:异地、升学压力与沟通冲突是双方共同强化的结果。

    如果一方在压力下减少沟通,另一方因此增加联系和追问,前者进一步退缩,双方就可能不断强化对彼此的负面判断。此时「冷暴力」与「不尊重独立观点」可能都不能完整解释互动过程。

    和平期间建立面向未来的规则:发生冲突时,若一方在 48h 内不沟通具体问题,可能会给另一方带来不安全感,则需要补偿另一方 10 元/day

    假设 C:二楼的批判「双标」也需要具体限定

    要求伴侣尊重自己的表达自由,与希望伴侣将共同未来纳入个人规划,并不一定矛盾。

    只有在作者要求对方服从自己的职业安排,却不愿给予对方对等自主权时,「双标」才会得到更直接的支持。

    问题:作者是否曾要求对方牺牲职业选择,以及自己是否愿意为结束异地作出对等程度的牺牲调整。

    假设 D:一楼女友的言外之意

    男:我觉得单身男女你情我愿,没有负外部性的话,约炮没什么问题。

    女:我其实挺不认同你这个观点的,而且听到你这样说,我会有点不舒服。我想确认一下,你是觉得其他单身成年人有自由作出这样的选择,还是说你自己也认可这种生活方式?我知道这两者不完全一样,但对我来说,这件事确实会影响我对伴侣的安全感。我不要求你必须和我一起谴责别人,但我想知道我们对关系中的忠诚、排他性和承诺是不是有一样的理解。

    其他:理解

    先理解对方,再被对方理解。

    Post #3
  • 读完之后,我最大的感受是困惑,因为文章里有大量对行为的概括和定性,但缺少足够具体的事件细节,很难判断实际发生了什么。

    比如:

    • 「我在尝试继续沟通和澄清误会」,但「沟通」是一个很宽泛的概念。同样是继续发消息,有些措辞是在澄清误会,有些可能是在反复反驳、指责甚至施压。没有具体的对话原文,很难判断采取的是哪一种。
    • 「打电话不接一两次然后接起来不说话等我道歉」,其中「不接电话」「接起来不说话」是具体的行为描述,但「等我道歉」是对对方动机的判断。对方是否明确表达过这个要求,还是你根据后续互动推断出来的?
    • 「在我重申了底线和替代方案之后仍然无效」,但没有说明具体是什么底线、提出了什么替代方案,以及对方如何回应。
    • 「对未来本校转博/申博,外校申博,考公就业等选择上出现了完全出乎我意料的拖延和失误」,但具体错过了什么时间节点、做出了什么决定、造成了什么后果,并没有交代。因而也很难从中判断出「没有能力和意愿在自己的人生未来安排上考虑我」。
    • 苛责:要求女方尊重自己的独立判断,却在评价女方的人生规划时,把自己的高要求当成了衡量对方能力和恋爱投入的标准。如果男方因为申博、就业困境而推迟共同生活计划,对方也应该抛弃自己吗?「没有能力」和「没有意愿」是不同的。「完全出乎我意料」说的是你的预期,而不是双方已经达成的约定。女方违反了什么共同承诺,如果违反了作者是否有重新规划的能力?
    • 双标嫌疑:更重要的是,你一方面强调自己有权保持独立观点、不应该因为不认同伴侣而受到惩罚;另一方面,在评价对方的升学就业规划时,却把她是否符合你的期待作为衡量她是否重视你的依据。

    很多「冷暴力」「因言获罪」「三观不同」「求同存异」「缺乏掌控力」「正反馈」这样的概念,是作者对经历的理解和总结,而不是具体经历本身。

    Post #2
  • 3512608060_civ6_true_start_location_plus.tar.zst

    tar xvf 3512608060_civ6_true_start_location_plus.tar.zst
    解压后放到 ~/.local/share/Steam/steamapps/workshop/content/289070/ 文件夹下

    Post #3
  • 10.20预警:有黑泥

    智者务其实,愚者争虚名
    大概是知道为啥得罪导师了,之前没过问就把她的名片转发给一个想报她研究生的同学,确实不懂规矩。以后记得要先探探上面口风再牵线。后来有同学找我说要和社团社长合作项目,我就做的不错。
    现在她也就是给除我以外的人提供情绪价值,其实我无所谓的,只要工作顺利开展就行。这也是她的选择我没法干涉。

    Post #190
  • 赞同,还有深夜在走廊打电话,跺脚(触发声控灯晾衣服)

    天生万物以养人
    :sanguosha: :sanguosha: :sanguosha: :sanguosha: :sanguosha: :sanguosha: :sanguosha:

    Post #332 ❤️ 3 likes
  • 可以以类似的方式用 LLM 创造一个小应用
    (本站上传不了 html)

    Post #4
  • 诊器录心音能否当当 ASMR?

    Post #183
  • 李璐哥大演讲:AI 与中美相互依赖、中国经济转型

    2026 年 10 月 5 日,李璐作为主讲嘉宾出席了哥伦比亚大学格雷厄姆与多得年度论坛。演讲主题从价值投资的六项基本原则出发,延伸到AI 的能力边界与治理红线、中国经济转型与代价、中美相互依赖、市场两极分化中的机会,最终落到知识、信任与人生的复利。

    需要注意的是,该场演讲目前没有官方文字稿,本文来源于网络整理,部分内容缺失,并非完整原文,但不影响学习。


    第一节 价值投资的六项基本原则

    特别是当你身处市场交易的漩涡中心时,更难保持清醒。

    第三,投资本质上是对未来的预测,但未来本身就是说不准的,所以你随时都需要留出安全边际。 安全边际既能帮你兜底、防范风险,又能帮你争取更大的收益空间。

    后来巴菲特的实操经验又给这套理论加上了一道硬指标,那就是能力圈。意思是说,随着时间推移,我们每个人或多或少都会对某些领域更感兴趣,慢慢积累出自己的专业特长,我们应该顺着这个方向继续深钻,把它做得更好。而能力圈最核心的一点,其实是清醒地认识到自己的边界在哪里。因为人性往往天生倾向于高估自己,总觉得自己比实际水平更厉害。所以说,搞清楚自己不擅长什么,和搞清楚自己擅长什么,同样重要。

    再后来,查理·芒格提出了一个观点:"钓鱼就得去有鱼的地方。" 他一辈子都爱钓鱼,而在实际的商业市场里,这也是个极其形象的比喻。在某些市场、某些行业或某些公司里,往往挤满了关注的目光,人多竞争就大,而一旦竞争白热化,回报率自然就会被拉低。但与此同时,还有很多行业、公司、国家或市场根本无人问津,这些地方效率低、机会多。去鱼多的地方钓鱼,效率要高得多。 道理听起来很简单,但在实际应用中却管用得惊人。

    最后,结合我自己三十多年的投资实战,作为一名全球投资者,在全球贸易高度依赖单一市场的时代,把价值投资理念推广到全球,我们总结出了一条深刻的体会:财富的本质,归根结底是你对全球购买力所占有的份额。 尤其是在现代经济中,财富绝不是看你手里有多少黄金、钻石,或者持有多少某种纸币。一旦遇到通货膨胀,这些东西的价值都会随时间慢慢缩水。真正重要的是,你用这些钱能买到什么、能干什么。衡量财富更好的标准是:你掌握了全球总体购买力的多大比例。

    我们贯彻这一理念的做法,就是在最具活力的经济体中,以划算的价格买入优秀的企业,并长期持有,静待价值创造。 这样我们就能分享企业成长带来的红利。以上就是我认为能够经受住时间检验的投资之道。

    主持人: 我非常赞同你刚才说的最后一点。我已经忍不住要偏离咱俩提前准备好的提纲了,因为我觉得在未来时刻,关注购买力才是重中之重。毕竟在当前的财政挑战下,如果我们无法遏制通货膨胀的话……如果等会儿还有时间,咱们再好好聊聊这个话题。不过趁着时间还没用完,我想先插一个问题。


    第二节 市场中的四类参与者:教堂与赌场、AI 叙事与治理红线

    好的,这个问题我分两个方面来回答。第一讲讲投资者究竟都在干什么,第二咱们再顺便聊聊 AI。

    四类市场参与者

    作为投资者,如果你长期观察市场,就会发现里头基本上只有四类人:

    第一类是真正的价值投资者。 他们会陪着公司慢慢成长,分享企业创造的长期价值。

    第二类是做套利的人。 利用市场定价的漏洞赚钱。说得通俗点,就是从急于卖出的现实主义者手里低价买入,再转手卖给满怀希望的乐观主义者。这就是所谓的套利者。

    第三类则是纯粹的投机客。 他们成天就在押宝猜心思,看别人下一步会买还是卖某种证券。至于这资产到底定什么价合理、公司能不能创造价值,他们压根不在乎。

    最后一类就是为上述所有人提供撮合服务的券商和做市商。

    在我看来,大多数市场参与者都不是绝对纯粹的某种角色,他们身上往往或多或少兼具这四种人的影子。比如做指数投资,本质上就是把这些成分给平均化了。但真正的价值投资者,核心关注点在于发现合理的价格,并耐心等待时间沉淀出企业的真实价值。像本·格雷厄姆这类先驱,虽然也会抓住套利机会,但主要精力依然放在价值创造上。

    投机与价值创造的社会意义

    如果从社会价值的角度来看,这几类人的作用其实大不相同。投机客往往拿不住资产,根本等不到价值显现或创造的那一天。所以对整个系统而言,他们赚的钱和赔的钱抵消之后,总和基本为零。算来算去,博弈的结果其实就是个零和游戏。对社会来说,这部分交易损耗不过是维持市场运转必须付出的摩擦成本。同样,券商和做市商抽取的服务费,也是维持市场正常搭建和运营的必要开销。

    但别忘了,股市建立的最根本初衷,是为了把社会上沉淀的闲置资金,引导到有生产力的地方去支持企业发展,从而推动现代经济和整体社会财富的增长。 这就是股票市场最初被创造出来的根本理由。

    教堂与赌场

    那大家可能会问,为什么市场上偏偏总伴随着这么多投机炒作呢?其实这就是人性的弱点使然。巴菲特曾有个绝妙的比喻:"股市就像一座旁边盖了赌场的大教堂。" 教堂代表着价值创造的圣地,而旁边捎带脚盖起来的赌场,更像是不得不允许存在的附加产物,因为人性本就如此,这部分代价避无可避。

    早在四百年前,股市刚诞生时,人们就是靠这种贪婪与狂热的动物精神被吸引进来的。四百年后的今天,情况依然没有任何改变。

    所以对每一个学习投资的人来说,你必须做出自己的选择:你到底是想去参与零和博弈的赌局,还是想玩企业价值创造的游戏? 这完全取决于你个人的心性。而站在整个社会的角度,我们也面临着选择——绝对不能让赌场的规模膨胀过头,甚至喧宾夺主。 所以这既是个人的选择问题,也是整个社会治理的课题。

    四百多年来,尽管经历了无数次狂热暴涨、泡沫破裂和巨大的资源浪费,这种机制居然奇迹般地存活了下来,并且持续扮演着推动社会前进的核心引擎。老实说,这本身就是一个了不起的奇迹。因此对于同学们来说,越早想清楚这个根本区别越好——你个人到底想走哪条路,而社会又该如何去平衡这两者的比例。但无论如何,它们都是伴随人性而生的产物。

    AI 与金融市场:一场全新的叙事

    接下来咱们聊聊 AI 和金融市场,这其实是一个更为复杂的议题。

    首先,究竟什么是 AI?就拿目前这波生成式 AI 来说,它本质上显然是一种技术手段,这是一场巨大的技术浪潮。而作为技术,自从工业革命以来的几百年里,我们早已见怪不怪了。我们经历过一轮又一轮的技术大潮,对于伴随技术而来的创造性破坏、那些产业阵痛与新生,我们其实总结出了一套规律和经验。

    但大家隐隐觉得,这一次的 AI 浪潮好像不太一样。 当然每次技术变革都有其独特之处,但这一次它与我们以往经历过的任何一次相比,都显得极度反常。究竟是什么让它显得如此与众不同?

    看表面,它的迭代速度之快、涉及范围之广,以及财富和资源向头部企业极度集中的吸金效应,都让人震撼不已。但这仅仅是浮于表面的现象。深层次的原因究竟是什么?

    这就牵涉到了一个全新的叙事框架。在此之前,人类面对的所有技术革新,本质上都是提升人类生产力的工具。但这一次,技术里引入了一个全新的变量——我们开始在"死板的工具"与"独立的物种"这两个极点之间摇摆。 现在的 AI 正在沿着这个光谱,向"独立物种"那一端剧烈偏移。

    差不多四年前大模型问世的那一刻,它就通过了图灵测试。从那时起,单看语言表达,我们已经分不清屏幕对面到底是个机器还是个人类了。紧接着它又掌握了逻辑推理能力,身上展现出的人类特征变得越来越丰富。有了推理能力,它就学会了编写代码;而一旦具备编程技能,它就进化成了能自主执行任务的智能体,行事作风和真人越来越像。再下一步就是多个智能体协同合作,去完成极其复杂、耗时漫长的任务,我们称之为长链条推理。在这个阶段,就像人类社会一样,智能体之间会自我组织、分清主次,甚至用它们自己的语言和沟通工具,以极其精密复杂的方式去执行任务。这就是我们目前所处的阶段。

    而如果你听听硅谷流传的讲法,生成式 AI 接下来会进入递归自我改进阶段(RSI),即机器无需人类介入即可自我迭代。其实我们半只脚已经踏进去了。到了那个地步,所有的技术升级都将由机器自主完成,不再需要人类干预。从 RSI 演进到通用人工智能(AGI),再到超级人工智能(ASI),它的智力水平将全面超越个体人类,甚至超越全人类智力的总和。

    照这个逻辑推下去,就等于说人类正在造出一个造物主般的半神——一个由人类亲手缔造的造物。既然它力量如此强大、无所不能,那么它带来的经济震撼按理说也必须是天翻地覆的,也唯有这样才能匹配前期的天价投资成本。于是这场狂欢向所有人发出了邀请:当万亿美元级别的 IPO 来袭,大家就像是在认购某位神明上市的股票一样参与其中。这就是现在的硅谷叙事,也是这波浪潮最异乎寻常的地方。

    人类何去何从?

    但如果我们稍微冷静下来,退后一步问一句:如果事实真的演变成那样,人类自己又该何去何从? 难道我们要生活在一个由人造神明主宰的社会里吗?那个神明只有极少数人能接触到,而且根本没有任何人能真正理解它,更谈不上掌控它了。我们对此毫无发言权,到时候平民百姓在它面前根本没有话语权。如果真演变成那样,人类真的会愿意生活在这样的社会形态里吗?

    我相信答案是否定的。没有谁会愿意接受这种未来。

    所以结局无外乎两种:第一,技术根本就不会朝着那个荒诞的方向发展,稍后我们可以深入探讨一下它到底会怎么走,以及为什么不会变成那样;第二,如果技术真的一意孤行往那个方向一路狂飙,那么人类社会终将联合起来下死手,叫停这种失控的趋势。 因此无论如何,我们都不可能任由一个高高在上的人造神明来主宰人类社会。

    这就是这一代 AI 技术最核心的特殊之处,也是为什么它对整个金融市场产生了如此巨大的冲击。

    AI 的本质定义与能力边界

    不过抛开这些极端的宏大叙事不谈,回归本质,它到底算不算一项有用的技术?答案当然是肯定的,绝对有用。

    基于我的观察和总结,如果非要给现在的 AI 下一个暂定的定义,我会这么说:它本质上是一台通过暴力算力结合精妙算法运作的机器,把全人类产生的所有海量数据作为底层养料,在浩瀚如烟的变量之间梳理建立起一套系统化的上下文关联。通过这种关联,它模拟出了包括人类逻辑推理在内的绝大部分智能行为。 眼下我们只知道怎么去用它、怎么把它性能调优,但从底层原理上,我们其实并不完全清楚它为什么能起作用。这就好比我们至今也搞不全人类大脑这台机器究竟是怎么运作的一样。

    基于这个定义,再看当下的现状,你会发现,它在拉平经济体系中的某个特定层级上,发挥了极其巨大的正面作用。 我们来拆解一下整个经济结构的层级:最底层是能源和交通输送;往上一层是高端制造;再往上是通信与数字媒体;最顶层则是庞大的知识型、技术型服务业,它们提炼并整合着人类积累的所有智慧,服务于下方各个产业。

    现阶段的生成式 AI,正是一个绝佳的知识整合与普惠工具。 它把沉淀在顶层的大量专业知识和经验打破、平民化,去赋能每一个普通人。但它改变不了底层的物理世界,比如能源怎么开采、交通怎么运输;它也重塑不了制造业,因为制造业本质上是把不同的分子、原子重组重构的物理过程。至于通信和数字化,本身就已经高度信息化了。所以这就是 AI 真正能够大显身手的施展空间。

    它并没有超越人类认知能力的上限。 因此顺着这个逻辑,你就能明白,它根本不可能像某些鼓吹者宣扬的那样无所不能、变成统治一切的神明。我们现在依然牢牢局限在人类自身产生的数据这个范畴之内。要想跨越到生命科学、生物学那种复杂的真实层面,完全是另一个维度的挑战。

    打个比方——这么说可能有点扯远了。

    主持人: 接话,没事,您接着说。

    人类的单个细胞里蕴含的数据量,可能就需要几十个 TB 来存储,再乘以人体万亿级别的细胞量,想在生物学层面彻底破解生命,我们现在的技术水平差的岂止十万八千里,根本摸不到边。

    治理红线:绝不能脱离人类监管

    但现有技术所展现出的能力,已经足以打破"工具"与"独立物种"之间的平衡了。因此出于理性考虑,人类社会必然会做出选择:叫停任何彻底脱离人类监管的自主研发。 没有人类把关的完全自主迭代——RSI,这种脱离人类控制的自我进化,后果绝对是灾难性的。因为它会衍生出属于它自己的目标、子目标乃至独立意图,从而彻底滑向人类掌控之外的深渊。

    总结来说,这项技术既能带来无与伦比的助力与颠覆,同时也隐藏着剧烈的危险。 作为人类社会整体,我们必须划定一条不可逾越的红线:无论技术怎么训练、工具怎么使用,绝对不能把人类排除在决策链条之外。 换句话说,必须坚定地把它锁定在服务人类的工具属性上,绝不能放任它演变成独立物种。

    当然这里面还牵涉到一系列现实冲击:从就业岗位的重塑到人类对其产生的心理依赖,再到网络安全、生物安全乃至核安全,风险不一而足。归根结底,社会真正需要的是一种稳健有序的发展节奏,在享受技术红利的同时,兼顾风险防范与综合成本。

    顺便提一句,这项技术后续的使用和维持成本始终居高不下,这一点和互联网或以往许多技术有着本质区别。以往的技术往往是一次性投入,后续可以无限摊薄成本。AI 可不是这样,你只要用它就得源源不断地投入边际成本。所以算清成本账、收入账和利润账就显得至关重要。资金链的门槛和财务纪律约束会时刻给这场热潮降温、提纯技术的演进节奏,终究要取决于整个社会的承受底线。我们需要从这四五个不同的现实维度去综合把控它的发展步伐。

    人类社会适应这种剧烈变革,从来就不是靠顶层规划设计出来的。我们必然要经历好几轮繁荣与萧条的泡沫周期洗礼。 这就是事物自我演化与阵痛发展的必然规律。但在面对这股既具颠覆性又极其危险、既带来剧烈震荡又烧钱无数的技术浪潮时,上述这些底线原则是我们必须时刻保持清醒思考的。

    主持人: 李璐先生,您刚才这段分析太精彩了。这项技术既无比强大又充满风险,而且我们甚至无法完全解释它的输出过程,因此必须有人类在链条中进行把关和审核。这意味着未来社会最稀缺的资源,其实是那些有能力去监督和校验 AI 输出的人才。 换句话说,如果你够聪明,并且擅长在具体领域内与 AI 协同沟通、监督把关,你就能成为极具竞争力的稀缺人才,未来的超额收益也会源源不断地向你倾斜。我是不是可以这样理解?

    李璐: 是的,大致就是这个道理。虽然这里面还有很多细微的维度和差异,但你的理解完全抓住了核心。

    主持人: 那我们就顺着这个思路继续推演。每当走进课堂,看到很多同事在这里教授资本市场、金融投资相关课程时,我心里总会有很深的感触。


    第三节 问答:世界秩序与全球共同市场

    提问者: 对我来说,我不知道你当时怎么看——那时我们还没认识,那完全是另一个世界。或者说当时在我们眼里的世界,和我现在看到的截然不同。那是一个开放、打破国界的世界,我们可以去尝试、去实现太多的可能。那个时代该怎么说呢,有一种包容和慷慨的气度,而这种气度今天似乎有些欠缺了。如今在我看来,世界真的大不相同了。所以我想请教你,你如何看待未来的走向?在思考未来时,你是否会将当年那些理念融进你现在的思路里?

    李璐: 是的,汤姆,你问得非常好。过去这三十年世界确实变了,这一点毋庸置疑。

    无论是世界秩序发生演变,都需要漫长的时间。某种秩序要真正形成、完成重塑,往往需要数十年甚至上百年的光景。当今的这套世界秩序根基,是建在两次世界大战之后的。 那两次大战曾把全球推向崩溃边缘,废墟之中逐渐走出了美国主导的秩序,随后历经冷战,冷战结束后整合为单一秩序。而现在它又在再次演变,最终会蜕变成什么模样,我们尚未可知。

    而在表象之下,还有另一套秩序在过去几百年里稳步形成,那就是经济秩序。当越来越多的国家和人口加入进来,遵照共同的规则互通有无、做买卖,经济秩序也就应运而生了。这就构成了共同市场。这个大一统的共同市场,大约在三十年前正式成型——也就是随着苏联解体和冷战终结,几乎全球所有的国家和大众都融入到了同一个市场经济体系中。

    这套经济秩序最妙的地方在于:一旦共同市场彻底形成,任何单一国家想要主动退出都会极其艰难。 因为市场带来了效率,带来了技术革新、劳动分工、资源交易等一套套源源不断的正向循环飞轮。所以任何国家如果长期脱离这个市场,都将付出难以承受的惨痛代价。归根结底,共同市场一旦成型,就极难瓦解,它的生命力要持久得多。

    看看过去上百年的贸易往来与摩擦,无论遇到多大障碍、壁垒有多高,人们总能找到出路,比如通过第三方国家绕道交易。其底层逻辑依然离不开比较优势理论。直接贸易额确实下降了,可如果你看美国和墨西哥、巴西等地的贸易额数据却完全反了过来,异军突起。实际上中美之间的实质贸易规模并没有缩水,只是换成了通过第三国转手的方式继续进行。 在大多数其他市场,情况大抵也是如此。

    再看政治秩序。美国领跑全球八十年,承担了大部分成本用来维持这个共同市场的运转。可后来它发现,自己付出的成本和从中获得的收益严重不成正比,于是开始主动卸下部分责任,只不过到目前为止卸得并不算成功。这就流出了一片权力真空。而政治秩序中最剧烈的一个变化,莫过于中国在过去三十多年的崛起——中国成长为一个体量庞大的经济巨头,拥有全套制造能力和自主可控的技术体系,同时还是个制度统一、对外开放的超大规模市场。

    我们现在亲眼见证的,正是对政治与经济双重秩序的深刻重塑。这就是我们正在经历的大变局。

    与此同时,正如我刚才所说,由于大家身处同一个大市场,彼此间的相互依存度非但没有减弱,反而越发加深了。

    "用筷子的人"

    我举个例子。比如在生成式 AI 领域,所有人最核心的需求就是芯片——半导体芯片。这些芯片是在哪里制造的?它们产自何方?想想所有生产半导体芯片的国家或地区,它们都有一个共同点,非常鲜明的共同点。你觉得会是什么?

    抱歉,我不是故意考你。

    李璐: 哈哈,你突然这么一问,我脑子瞬间得转到半导体上,还得想着待会儿开放提问环节……

    提问者: 哎呀,就像土豆一样,半导体能有什么共同点?所有生产芯片的地方,也就是支撑这轮新技术浪潮最核心的芯片生产地,全社会仿佛把赌注都压在了它们身上。它们都有一个共同特征:那里所有制造芯片的人,吃饭都用筷子。 细想一下,无一例外。印度就不生产这类半导体芯片,生产芯片的都是用筷子的文化圈。

    李璐: 这就叫三句不离本行。

    提问者: 确实是这么回事。我是指晶圆制造环节确实如此。而且在美国掌舵各大半导体公司的领军人物——从黄仁勋(Jensen)到陈立武(Lip-Bu Tan),再到苏姿丰(Lisa Su)——数得上的全算上,也全都是用筷子的华裔。

    你看,这就存在着极强的相互依存关系。如果你作为一个国家、一家企业,把全盘注码都压在这项新技术上,不论前方有多少困难和隐患,你都得对用筷子的人客客气气的。 这种格局短时间内不会变,这也绝非偶然发生,个中缘由我们稍后可以细聊。

    战略稳定性

    所以归根结底,中美两国元首之所以觉得有必要在短短八个月内破例会面四次,背后是有深层原因的。这四次会面里两次是深入会谈,而每次会面取得的最大成果,就是定下了下一次会面的日程。这就牵涉到了一个词——战略稳定性。换句话说,保持稳定本身就具有战略意义。 它凸显了全球大一统市场的不可或缺,说明了剧烈动荡所带来的高昂代价,也体现了双方为了和平共处而形成的相互依赖。

    当然在这个过程中,每个人都在拼尽全力竞争,也都坚信时间站在自己这一边。中国希望早日实现半导体及各个领域的全面自主可控,美国寄希望于 AI 技术能带来飞跃式的突破,其他国家也都有各自的小算盘。但大家终究都意识到,和平稳定对所有人来说都是至关重要、具有战略意义的。 大国确实肩负着这份责任,也有动力去维持这种稳定。所有国家都能感受到这个大一统共同市场分量之重,也能体会到脱钩退出的代价之高。

    所以总体来看,世界大势依然会沿着这个方向前行。二战后我们所熟悉的那套旧秩序正在发生改变与重塑,未来究竟会以何种新形态破局而出,尚待观察。但底层暗流涌动的另一股力量影响更为深远,那就是全球大一统共同市场的形成,这一趋势将长期延续下去。

    对投资者的启示

    那么这对投资者意味着什么?这又回到了价值投资的核心准则。在价值投资的六条基本原则中,我们后来补充的最后一条是:作为一名全球投资者,你的财富本质上体现为你所占有全球购买力的份额比例。 而实现这一目标的方式,也正是我们多年来始终践行的路径——就是以划算的价格,买入最具深厚潜力的国家和市场里最优秀的企业,然后长期持有,伴随它们创造价值,从而保住并不断提升我们所占有的购买力份额。这就是我们一直以来的做法。

    再回到巴菲特对股市的那个比喻——股市就像一座旁边附设了赌场的教堂。伯克希尔在过去六十年里所做的事,就是把那座教堂一步步扩建成了宏伟的大教堂。 它不仅象征着市场本该有的功能,更为人们提供了一处心灵的避难所,因为它正发挥着市场被创造出来的真正作用。

    而回到你刚才提到的关于过去三十年的问题,我们一直在努力践行的,就是去证明这个福音是可以播撒到远方的。福音确实可以传播开来,我们完全可以在其他国家建立起这样的教堂。作为全球投资者,我们选择在亚洲以及其他地区去建造这样的教堂。随着时间的推移,有些教堂会出现在不同的国家,其中一些甚至也会慢慢成长为宏伟的大教堂。

    这就又回到了你对学生和年轻从业人员提出的那个问题:身处这个市场,你会做出怎样的选择?市场的基本格局就是这样——一座教堂,顺应人性的弱点,旁边不得不附带了一家赌场。但这两者对整个社会的影响却截然不同:一边是双赢的模式,能为社会创造净效益;另一边则是零和博弈,纯属内部损耗,给社会带来的是净负面冲击。选择权完全在你手中。

    包括人工智能在内的各项技术,终究只是辅助人类的工具,绝不可能取代人类。如果它展现出任何想要取代人类的苗头,就像我说的,我们所有人都会联合起来,坚决反对造出这么一个人造的神明。所以在我看来,你完全没必要去凑热闹,把这捧成什么半神上市的盛宴。不盲从,也是我们对美好社会尽一份集体责任的方式。 这正是我们这个项目存在的意义,也是它应当继续办下去的原因。非常感谢大家。


    第四节 市场参与者与 AI 叙事(补充阐述)

    用本杰明·格雷厄姆的话来说,如果把市场比作地产过客,留下的筹码可以卖给那些乐观主义者——这就是所谓的套利者。接着你还会看到真正置身其中的人,他们绝大多数是在搞投机,全凭猜测别人会买入还是卖出某只具体的证券。他们根本不在乎证券的定价到底合不合理,亦或是企业有没有创造价值。此外还有券商和做市商,专门为所有这些交易提供撮合便利。

    我看大多数的市场参与者,除非是极少数的纯粹主义者,身上或多或少都兼具这四种人的影子。如果你选择搞指数投资,本质上就是把这些成分混在一起取了个平均数。但真正的价值投资者关注点完全不同——他们致力于寻找合理的资产定价(价格发现),并且甘愿耐心地等待企业随着时间推移创造出真正的价值。说白了,核心逻辑就在于此。在格雷厄姆的体系里,套利的成分相对会更多一些。虽然他很擅长利用价格差进行套利,但落脚点归根结底,依然是为了获取企业创造的价值。

    要是细究这几类不同的参与者对社会带来的实际效益,其实也很有意思。所谓投机,顾名思义就是持有的时间极短,短到根本等不到企业发生任何价值变化或创造出新价值。把所有投机行为加在一起,结果几乎就是一场零和游戏——有人赚到的钱和有人赔掉的钱,从社会净效益的角度来看,投机纯粹是维持市场运转所不得不付出的摩擦成本。同样的,经纪业务和做市服务本质上也是维持市场日常运作的一笔硬性开支。

    而资本市场之所以被创造出来,最核心的目的是为了把社会上过剩的储蓄精准地引导、输送到真正有资金需求的经济环节,从而构建起现代经济体系,实现经济的可持续复利增长。 这才是从最根本上,股市最初之所以会建立起来的底层原因。

    那么问题来了,为什么市场里必然会伴随着投机这阴暗的一面呢?说白了,这就是人性的一部分。如果用一个形象的比喻:股市就像是一座旁边附带了赌场的宏伟教堂。 教堂是真正创造价值的圣地,而旁边的赌场倒像是拿施工许可证时附带的捆绑条件——因为人性的缺陷,这是不可避免要付出的代价。四百年前金融市场刚诞生时,人们正是靠这种方式来刺激和唤醒市场的动物精神、冒险狂热。四百年后的今天,这种套路依然如出一辙。

    因此作为一名求学者,你必须做出自己的选择:你究竟是想去玩零和博弈的赌局,还是想参与到创造价值的游戏中来?这完全取决于你个人的职业与人生抉择。而站在整个社会的角度,同样面临着抉择——我们绝不能任由赌场那一侧肆意膨胀、喧宾夺主,以至于淹没了金融市场立足的本意和最核心的使命。所以这既是个人的选择,也是全社会共同的选择。

    回顾过去四百年的历史,即便经历了无数次剧烈的暴涨、暴跌和巨大的资源浪费,这套市场机制依然顽强地生存了下来,并持续发挥着推动社会向前发展的核心功能。毫不夸张地说,这本身就是一个奇迹。所以如果你是一名学生,分清这两者的界限至关重要——你个人究竟想要追求什么,而从社会层面,我们也必须动态地调控好这两者的比例。不过只要人性不变,它们就必然会长期共存。

    AI:一项前所未有的技术变革

    接下来我们聊聊人工智能——AI 与资本市场,这显然是个更为复杂的议题。

    首先,究竟什么是 AI?尤其是眼下这一轮生成式 AI 的浪潮。显而易见,它是一项技术,一场波澜壮阔的技术变革。既然是技术,我们自然有应对它的经验。过去两百年间,工业与科技革命从未间断,技术创新的浪潮一浪高过一浪。对于它带来的破坏与重塑,以及这种创造性破坏的发展演进规律,我们多多少少是有些认知和准备的。

    但这一次,大家隐隐觉得有些不一样。 当然每次技术变革都各有不同,但这一次的差异之大,远远超出了我们以往经历过的任何一次。究竟是什么让这一次显得如此非同寻常?

    看表象,你会发现技术迭代的速度之快、席卷范围之广,以及财富和资源向头部企业极度集中的吸金效应,都令人叹为观止。然而这只是浮于表面,我们必须要追问一句:为什么会这样?

    问题就出在背后的叙事逻辑变了。 在此之前,人类历史上的每一次技术革新,本质上都是在制造提升生产力的工具。但到了这一代技术,事情开始变质了——它打破了单纯作为工具的定位,开始向独立物种、生命体偏移。从"死板工具"到"活物"的光谱上,AI 的位置正在快速向后者滑动。

    大约四年前,这项技术首次推向大众,关键节点就是通过了图灵测试。从那一刻起,单看文本语言,我们已经无法区分对面到底是机器还是活生生的人。紧接着,它展现出了逻辑推理能力,并越来越具备人类特有的行为特质。有了推理,它就学会了写代码;掌握了写代码的能力后,它便进化成了能够自主执行任务的智能体,行事风格越来越像一个真正的人。再下一步就是多个智能体协同作战,去完成极为复杂、耗时漫长的高难度任务,也就是所谓的长链条深度推理。在这个阶段,就像人类社会一样,智能体们开始自主分工、设定优先级,用它们自己的语言互相沟通,以极其精密高效的方式执行各种指令。这正是我们目前所处的阶段。

    如果你去听听硅谷流传的那套叙事,说生成式 AI 终将进入递归自我提升(RSI) 的阶段——其实我们现在已经一只脚迈进去了。这意味着所有的技术升级最终都会在没有人类干预的情况下,由 AI 自己迭代完成。从 RSI 递归自我提升,一路狂飙到 AGI 通用人工智能,再到 ASI 超级人工智能,它的智力水平将超越人类个体,甚至将全人类的智力总和都远远甩在身后。

    按照这个逻辑演进,你简直可以说,我们正在创造一个造物主般的人造半神。 正因为这个东西威力如此巨大、怎么夸大都不为过,所以它能撬动的经济价值必然是天文数字,进而为前期投入的所有庞大研发资金提供了合理性。于是他们向所有人抛出了橄榄枝:"看啊,这里有一场万亿美元级别的超级 IPO,诚挚邀请你来参与这场造神公司的上市盛宴。"这就是资本讲给市场的宏大故事,也是这次技术浪潮与以往截然不同的地方。

    但如果我们稍微冷静下来,退一步去思考:假设这个预言真的成为了现实,人类的处境又会变成怎样?难道我们要生活在一个由人类一手缔造的神明所主宰的社会里吗?这个神掌握在极少数人手里,没有任何人能够真正搞懂它的原理,更谈不上有效掌控——因为到那个地步,根本无人能看透它。试问全人类,有谁真的愿意生活在这样一个社会里?

    答案显然只有一个字:不。

    根据常识,未来只可能有两种走向:第一,这项技术根本就不会朝着那个方向演进,至于为什么不会,我们待会儿可以展开细讲;第二,如果它真的不可避免地朝着造神的方向狂奔,我们全人类也必定会破天荒地团结起来,联手死死挡住它,绝不允许它变成主宰人类的神。 因此无论如何,我们都不可能听任一个人造神来接管人类社会的道德与秩序。

    正如我所说的,这才是这一代技术最核心的特质,也是它之所以如此特殊的根本原因。 由此衍生出的各种影响,特别是对金融资本市场的冲击,全部都源于这种特殊的属性。

    AI 的阶段性定义与经济层级

    抛开这些狂热的资本叙事,回到最现实的问题:它到底是不是一项有用的技术?答案当然是肯定的。

    如果要给它下一个阶段性的定义,基于对它的来源和表现的观察,我会这样来概括:它是一台机器,靠着粗暴的算力堆砌、巧妙的算法设计,以及全人类所创造的所有历史数据,在这些作为一阶导数的数据基础之上,在近乎无穷的变量之间建立起了一套系统性的上下文关联。通过这种方式,它成功复刻了人类的大部分逻辑推理和智力行为。 目前的情况是,我们知道怎么用它,也知道怎么把它调教得更好,但并不完全清楚它到底为什么能行之有效——就如同我们至今也没完全搞懂人类大脑这台精密机器是如何运转的一样。

    如果我们接受这个阶段性定义,观察正在发生的一切,就会发现,它确实极大地拉平了特定经济层面的门槛,带来了巨大的赋能。

    梳理一下整个经济结构:最底层是能源和交通运输;上面是制造与生产;再往上是通信与数字媒体;最顶层则是庞大的知识型、技术型服务业,它们整合了人类积累的所有知识,为经济的各个层级提供支撑。

    现阶段的生成式 AI 正是一个极佳的知识提炼与普及工具。 它把原本沉淀在顶层的专业知识和经验彻底平民化,惠及所有人。但它无法从根本上改变能源或交通的物理规律,也颠覆不了制造业——因为制造业本质上是分子、原子的重新组合与物理转化。至于通信和数字化,本身就已经具备极强的整合能力。所以这就是 AI 目前真正能发挥效用的边界。

    它并没有超越人类本身。 明白了这个延伸边界,你就会懂,它不可能像某些鼓吹者吹嘘的那样无所不能。我们依然被牢牢锚定在人类创造的数据这一框架之内,要跨越到生物基因的维度完全是另一码事。

    举个例子——也许扯得有点远了。

    主持人: 不远,请继续说。

    你身上的每一个细胞都包含了高达 50 PB 的数据量(1 PB 等于 1,000,000 GB),再乘以体内的数十万亿个细胞,才能在生物学层面真正还原一个人。所以我们离那个级别还差得十万八千里,甚至可能永远也达不到。

    红线与成本约束

    但仅仅是目前取得的突破,就已经开始打破工具与生命体之间的微妙平衡了。因此出于前面提到的理由,我们必须坚决遏制任何完全脱离人类干预的技术研发。 没有人类监督的递归自我提升(RSI),这种失去人类定义的自我进化极其危险,因为它会演化出属于它自己的目标、子目标乃至终极诉求,一步步彻底脱离人类的控制。

    所以重新审视这项技术:它确实极其有用、极具颠覆性,但同时也孕育着难以预料的巨大风险。我们必须划定一条不可逾越的红线:无论是模型的自我学习还是工具的应用,绝对不能失去人类的干预。 换句话说,要把 AI 牢牢定格在工具属性上,坚决防止它向生命体演变。

    当然它带来的冲击也是全方位的:从就业岗位到情感依赖,再到网络安全、生物安全乃至核安全等隐患。正因如此,全社会真正需要的是一种保持理性节奏、兼顾收益与风险的平稳发展模式。

    另外补充一点,这项技术每一次迭代都会产生持续增加的边际成本。 这与互联网或之前的许多技术有着本质的不同——互联网技术是一次性研发投入,后续可以长期摊薄成本;而 AI 不是,它的每一次使用和升级都绑定着实打实的增量成本。因此平衡好成本、营收与利润至关重要,这不仅关乎资金需求和财务纪律,也贯穿于企业日常的运营之中。此外还必须考量技术推进的速度,以及整个社会所能承受的底线。在把控发展节奏时,我们需要从这四五个不同的维度来进行综合的审慎评估。

    人类社会适应这种剧烈变革,从来都不是靠预先规划好的。我们必然会经历漫长的狂热爆发、泡沫破裂与震荡洗牌,甚至可能要反复折腾好几个周期。 这就是技术发展的必然规律。但无论如何,上述这些红线是我们必须时刻保持警惕的,因为我们正站在历史的十字路口,迎面而来的是人类历史上最具颠覆性、最危险、最剧烈、同时也最为昂贵的一场技术狂潮。

    主持人: 李璐,我认为你刚才提到的这个组合观点——


    第五节 主持人提问:市场集中度、招股书案例与市场两极分化

    主持人: 如果用 GDP 来换算,过去这个数字一般维持在 2% 到 4% 之间,但现在已经冲到了 15% 左右,很大程度上是被英伟达撑起来的。那么你该怎么看待眼下这个市场?整个市场越来越依赖这几家巨头,并且随之剧烈波动、高贝塔值。我们到底该怎么设计投资组合,才能扛住这场技术浪潮带来的冲击?

    李璐: 市场向来都会做出各种离奇的举动,从一开始我们就不断经历这些,以后大概也会一直如此。但你根本没必要被市场一时半会儿的狂热牵着鼻子走。 这恰恰是最核心的真知灼见之一,也是本杰明·格雷厄姆留给我们最宝贵的财富。

    所以如果你去看看最近一份招股书里的主张,就会发现有一家自称是"实验室"的公司,一边疯狂烧掉几百亿美元,一边承诺未来还要继续烧掉几千亿巨资。它承诺能把这些钱转化为颠覆性的技术,但与此同时又说有 10% 的概率可能会彻底毁灭全人类。它把这些写进了招股书,并邀请大家按两万亿美元的估值至少投入一千亿。如果说这有什么讽刺之处,那就是它极其生动地展现了市场到底能丧失理性到什么程度。这两件事不可能同时成立,可这偏偏就是现实。

    但这恰恰告诉你,当下的很多现象根本不合逻辑,也是无法持续的。 即便如此,故事还会继续演下去。回顾几百年的历史,市场一直都是这个德行。拉长时间来看,它总是会做出各种荒唐事。

    以 2010 年以来的标普 500 指数为例,在过去这十六年里,它的年化收益率平均达到了 14% 到 15%。而在再往前的十年——2000 年到 2010 年——它的平均收益率恰好是零,实际上这十年甚至是微亏的。但如果你把过去这二十六年加起来算个平均数,收益率大概就是7% 到 9% 的高单位数。放眼长期,这才是合理的水平。

    试想一下,如果这段时间内 GDP 的实际增长大概是 2%,再加上 2% 到 3% 的通胀率,平均算下来名义增长率就是 4% 到 5% 左右。而上市公司的表现会略好一点,尤其是那些经过筛选的优质企业——大浪淘沙留下的这五百家最出色的公司,表现自然比平均水平更高一些。于是就得出了 7% 到 9% 这样的长期收益率。这也正是历史长河中的平均基准,它本该成为大家心中的主心骨,让人明白什么是应得的合理回报,以及市场在长期内是如何回归理性的。

    但市场总会被阶段性的狂热打断,甚至长达数年陷入失控,打乱所有人的节奏。就像我们刚才举的例子,这种狂热确实会带偏很多人。虽然离奇,但纵观历史,这种事屡见不鲜。

    所以我觉得,如果全社会能达成共识——绝不姑息或容忍某种凌驾于人类之上的超级生命体被研发出来,事情就不至于失控。 只要这项技术被牢牢锁定在工具的范畴内,它就和其他任何工具一样,无非是权衡成本与收益的问题。这样一来,财务纪律和资本市场的运行规律终究会重新起作用。而实现这一点的过程,无非就是经历一次次涨跌交替和牛熊更迭的周期,这完全很正常。

    两极分化中的机会

    从这个角度来看,由此引发的市场两极分化意味着:在任何特定时期,市场里的新资金总量其实是有限的,大量资金涌向少数热门标的,就必然会导致严重的分化——一大批本来非常优秀的企业,股价反而被砸到了极低的水平。 这种情况无论在美国、中国还是其他地方都是一样的,甚至在中国的市场上,这种现象可能比大家感知到的还要更为极端。

    但随着时间推移,市场的重力法则依然会主导投资者的长期回报。 到头来你该得多少回报依然是一分不少、一分不多。天下没有免费的午餐,即便有时看起来有,甚至这种幻觉能维持很长一段时间,但从更长远来看,市场自身的理性力量终究会把这些泡沫过滤掉。这也正是资本市场之所以能历经数百年而不倒的原因。

    因此在我看来,这种两极分化对于保持理性思考的人来说,反而创造了比平时更好的投资机会。 前提是你必须真正保持理性,而这极其困难、绝非易事。你必须耐得住煎熬,特别是在面对巨大的新技术浪潮时,人们想象力的边界会被无限拓宽,市场投机的一面会空前活跃,各种天马行空的幻想层出不穷,因此市场推波助澜和夸大其词的力量也会变得更加极端。但对于理性思考的人来说,这反而孕育出了比寻常时期更为绝佳的长期投资布局时机。


    第六节 中国市场:房地产的代价、制造业升级与"目标还是代价"

    主持人: 我们可以聊聊这个话题。我刚从中国回来,去香港给学生上课,顺便借这个机会研究了几家中国企业,算是一起深入看看中国的市场。我的意思是,过去这些年中国市场经历了不小的起伏,我想听听你的看法。你现在怎么看中国市场? 这看起来和我们在其他国家见过的不少危机非常相似,但我很想知道,你觉得眼下在中国做投资到底该怎么看?

    李璐: 好,既然你提到了中国市场。回顾过去十年,整个市场基本上可以说是横盘了十年。但在这十年间发生的事情其实非常引人深思。

    中等收入陷阱与制造业升级

    大概十年前,当时国家已经实现了中等收入水平,核心问题在于如何才能冲破这个瓶颈。世界上有太多国家走到这一步就停滞不前了,以至于经济学里专门有个词来形容它——中等收入陷阱。数十个国家走到了这一步,过了四五年依然止步不前。中国显然是个体量庞大的经济体,大家自然会问:到底是什么让那些中等收入国家深陷泥潭,始终无法打破增长天花板?靠水泥、低端制造,这些工业化手段是没办法真正实现突破的。

    所以他们面临着抉择:我们到底要不要冲出去?有没有办法加速这个进程,或者确保它能顺利实现?因为按照自然规律,绝大多数国家都在这里败下阵来,滞留了四五十年,有的甚至更久。

    于是他们主动开启了一场变革,推动整个产业向中高端迈进。他们没有止步于五年规划,而是制定了一个十年计划,其中设立了十大核心目标,旨在将中国的制造业从低端、中端全面升级到中高端。

    然而计划刚推行几年,特朗普政府就上台了,并砸下了贸易战的重锤。这反而让中国更加坚定了信念:如果听之任之,不仅靠市场自然演进可能突破不了这层天花板,别的国家还会横加干涉,死死卡住你的发展空间。紧接着拜登政府上台后,不仅延续了关税政策,还大幅加码了技术封锁。

    到了这个十年计划的中期,也就是 2021 年前后,中国决定在推进制造业向中高端升级的同时,还要实现技术自主可控,尤其是在被"卡脖子"极其严重的领域——比如半导体、大飞机、发动机、操作系统等,这一串清单非常长。面对这种局面,中国在接下来的五年里选择全力以赴、加倍投入,要实现这些看起来几乎不可能完成的目标。

    那些让无数国家折戟沉沙的目标,绝不可能不付出沉重而深刻的代价。

    房地产:最沉重的代价

    这就引出了中国独特的发展模式:在不同时期设定宏大的目标,然后为此付出巨大的代价。

    你刚才提到的房地产,在过去五年里,其实就是为了实现这一目标所付出的最主要代价之一。代价的承受者主要是中产阶级。 中国家庭的资产配置比较单一,到了 2021 年房地产见顶时,一个典型的中国中产家庭有七成左右的净资产都套在房子里,而这些房子身上还背着大概五成的房贷。在随后的五年里直到现在,全国房地产资产平均跌去了约 40% 的价值。 这意味着很多家庭的资产直接缩水了 60% 到 70%。

    面对这种情况你会怎么做?无非三件事:精打细算少消费、存钱备荒多储蓄、以及想方设法赶快还贷。 这正是典型的中国中产家庭在过去五年里所做的事。结果就是内需增长越来越慢,到现在基本接近于零;而储蓄率却一路上扬,如今居民储蓄总额已经高达 GDP 的 120% 左右,积聚了整整 165 万亿元人民币——这大概是全球最庞大的一笔存款。此外人们还经历了约两三年的零通胀甚至轻微通缩,对于未来的信心自然显得有些不足。

    这是整个经济体系里的其中一面。

    制造业升级:目标的实现

    但如果你看向另一面——想要达成的目标——你就会看到一个截然不同的景象。

    中国的制造业终于杀穿了低端产业链,稳稳扎根在了中高端。 "中国制造 2025"设定的每一项目标几乎都提前实现了。而在过去五年里,攻克"卡脖子"难题也取得了巨大的突破。

    以半导体为例,事实证明,美国主导的技术制裁反而成了送给中国的一份大礼,因为它给中国企业带来了市场、经济中最宝贵的东西——需求。大家常说,市场上最重要的是什么?是订单。只要有了营收,就能把整个商业闭环跑通:有了营收就有利润,有了利润就能投入研发,进而带来技术迭代和产品升级,接着带来更多营收。这种正向循环已经彻底跑通。 以至于在成熟制程领域,无论是芯片制造设备还是晶圆代工,中国都已经基本实现了自给自足。而在更前沿、更先进的制程上,除了少数几个关键环节,它们也正在快速逼近自给自足。只要沿着这条路走下去,突破是顺理成章的事。

    而这还只是其中一个缩影。再看生成式 AI 的核心能力——它本质上是在按需大规模输出智能,最典型的应用场景之一就是自动生成代码。这恰恰破解了此前最大的难题,也就是操作系统等底层软件生态的缺失。从个人电脑、服务器到英伟达的半导体代码生态,在 AI 的助力下,这些壁垒正在被一个个替代。AI 成了最好的平衡器。

    所以在这十年间,只要你深入具体的产业去观察,就能看到他们在推动制造业主干从低端向中高端跃升的过程中取得了惊人的进步。在某些领域,比如新能源、电动汽车、储能电池以及重型机械等等,他们不仅做到了主导,甚至成为了全球的领跑者。而在那些被"卡脖子"的领域,他们也已经全面发力,快速拉近差距。

    目标与代价的辩证关系

    但与此同时,这也给其他行业带来了极为惨痛的代价。比如房地产,现在的年新房销售量相比高点已经跌去了大约 70%。而这省出来的十万亿元资金,恰恰就是每年砸进制造业升级和技术研发上的投入。如果你去对比这两条曲线,就会发现这种剧烈的分化正好发生在 2021 年前后。

    但回顾过去五十年,这其实就是中国一贯的发展模式:每隔十年左右就会出现一套全新的目标,并伴随着巨大的代价。 甚至在下一个十年里,先前的目标可能会变成后来的代价。

    在工业化刚起飞的早期环境,空气和河流污染成了发展的代价;到了接下来的阶段,环保又成了新的目标,各种绿色环保技术应运而生,而曾经的污染企业则成了被淘汰的代价。在城市化浪潮中,房地产开发商曾经是发展的核心目标,他们把中国改造成了今天的模样,提高了房屋拥有率,夯实了中产阶级的财富基础。但在过去五到十年里,他们又变成了被付出的代价。

    因此相关群体确实承受了不小的阵痛。但纵观全局,你会看到这个国家在这段时间里取得了巨大的进步。这就是为什么他们能把别人几百年走完的发展历程压缩到短短四十年里。

    但无论何时,作为投资者或企业家——中国的朋友们对此一定深有体会——你时刻都要搞清楚自己到底属于"目标"还是"代价"。 在宏大目标面前沦为代价绝不是一件好受的事,身处其中的人们对此有着切肤之痛。我身边很多亲朋好友都亲历了这个过程。但国家就是这么发展起来的。

    如果整体打个分,你会发现,经历这番蜕变后,一个拥有如此体量和人口的大国,终于完整地迈入了现代化的门槛。

    市场横盘中的机会

    不过也正因这种双轨并行的经济格局,以及普遍的信心不足,金融市场整整十年都在原地打转、毫无起色。然而在这期间,一批极具全球竞争力的优秀公司,股价却被砸到了极低的水平。 这就导致了我们前面提到的市场两极分化。但对于理性的投资者来说,如果跳出来看全景图,你的视角或许会有所不同。我觉得在当下的市场里,你反而能找到比平时更好的投资机会。

    主持人: 这确实很棒。接下来我准备留点时间给大家提问,大家可以先举手准备一下。在此之前我还想问最后一个问题。

    李璐: 好,请讲。


    第七节 问答:世界秩序与全球共同市场(深入阐述)

    提问者: 当时我刚当上助理教授。那时的世界——至少在我眼里是这样——不知道你当时怎么看,毕竟那时我们还不认识——和现在截然不同,或者说跟我们当下的感受完全两样。那是一个开放、跨国的世界,大家满怀干劲地尝试着各种可能。它身上自带某种精气神,在今天看来似乎有些缺失了。现在的格局对我来说已经大不相同。所以我想请教一下,你如何看待未来的走向?你是否将这些思考融入到了你的投资决策中?

    李璐: 是的,汤姆,这个问题问得非常好。过去三十年里,世界确实发生了天翻地覆的变化,这一点毋庸置疑。

    而关于整个世界如何自我治理、如何运转的大格局问题,其演变过程极其漫长,有时需要几十年甚至上百年,某种新秩序才能真正建立并完成重塑。

    当今的这套世界秩序,其实是历经两次世界大战的洗礼才走出来的。当时整个世界几乎濒临崩溃,战后建立了由美国主导的秩序,在经历冷战的拉锯与结束后,最终汇聚成一个统一的秩序。而现在它又一次陷入了重塑,未来会演变成什么样,大家还在拭目以待。

    但在表象之下,还有另一重秩序在过去数百年间悄然孕育并建立起来,那就是经济秩序。当越来越多的国家和人口融入到通商与贸易的大潮中时,经济秩序便油然而生。大家共同构建了一个统一的大市场。而这个全球大市场大约在三十年前,随着苏联解体和冷战终结,才算真正彻底形成——几乎所有的国家和人口自此都被卷入了这同一个现代经济体中。

    这套经济秩序最耐人寻味的地方在于:一旦统一的大市场建立起来,任何一个国家想要单方面主动退出,都会难如登天。 因为大市场带来的是极高的效率,是不断加速的飞轮效应,是沿着技术突破、效率提升和专业化分工不断演进的过程,还有资源的自由流动等等。因此任何国家如果选择退出或者长期边缘化自己,都将付出极其沉重的代价。正因如此,大市场一旦形成,就很难真正瓦解,它的生命力远比政治秩序持久得多。

    回顾过去一百年的贸易往来和贸易摩擦,无论政策制定者设置了多少障碍与壁垒,人们总能找到出路——通过第三方国家继续做生意。这背后依然遵循着比较优势的基本规律。直接贸易额确实下降了,但如果你把美国与墨西哥及东南亚的贸易额加起来,你会发现这一增一减恰好抵消。实际上中美之间的实际贸易体量并没有变,只不过绕了个道,经过了第三方国家而已。 在绝大多数其他市场,情况也大抵如此。

    而在政治秩序方面,美国领跑全球八十年,承担了维持这个经济大市场正常运转的大部分成本。后来美国逐渐意识到,自己付出的成本与从中获得的收益之间似乎有些不成比例,于是开始主动卸下部分责任,虽然过程并不算太顺利。与此相对的,则是过去三十到四十年里政治秩序中发生的最大单变量——中国崛起为一个体量巨大的经济实体,它拥有极其完备的制造与技术体系,实现了高度的自给自足,同时还拥有全球最大的单一市场,并且对外开放,有着统一的监管体系。对于我们正在见证的政治和经济秩序来说,这无疑是一场巨变。

    与此同时,正如我所说,在这个单一的大市场中,我们彼此之间的相互依赖度不仅没有降低,反而比以往任何时候都更高。

    举个例子,比如在生成式 AI 领域,现在每个人最核心的需求就是芯片——半导体芯片。但这些芯片是在哪里制造出来的?它们究竟出自谁的手?仔细想想,那些生产全球绝大多数半导体芯片的国家和地区,它们都有一个共同点,一个非常有趣的共同点。你觉得会是什么?

    提问者: 提示我一下。

    李璐: 所有生产这些核心半导体芯片的地方,那些在这场技术浪潮中被各大国压上重注的供应链核心,都有一个共同特征——那就是制造芯片的这些人,全部都是用筷子吃饭的。 好好想想这一点。在美国,掌管这些顶尖半导体公司的领军人物——从英伟达、台积电到 AMD——几乎所有核心高管,无一例外也都是用筷子吃饭的。

    这就构成了极深的深度相互依存。如果你真的想在这场新技术浪潮中下重注,无论它承诺的前景多么诱人、潜藏的风险多么巨大,作为国家或企业,你都必须对那些用筷子的人客气一点。 这种情况绝非偶然,也不是一天两天就能改变的,背后的深层原因值得深入剖析。

    正因如此,中美两国元首才会在短短八个月内急切地举行四次会晤——两次是面对面,两次是通话。而每次会晤最实质的成果,就是敲定下一次什么时候再会面。这就是所谓战略稳定的真正含义。换句话说,维系稳定本身就具有重大的战略意义。 它凸显了全球单一市场的不可分割性,贸然脱钩的代价谁也承受不起,唯有通过和平合作、相互依赖才能走下去。

    与此同时,双方也在全方位展开激烈的竞争,并且都坚信时间站在自己这一边。中国寄希望于在半导体及各个领域实现自主可控,美国则期望在 AI 上取得突破以此实现变革,其他国家也有各自的考量。但所有这一切都指向同一个核心:和平与稳定对每个人来说都至关重要,这具备最高的战略优先级。 大国确实肩负着维持这一大局的责任,也深知主动切断联系的后果极其惨痛。

    因此大体而言,世界仍将沿着这条轨道向前演进。我们自二战结束以来所熟悉的那套旧秩序正在发生变化与重塑,最终会演化出什么样的新形态,目前尚无定论。但在这背后,有一股更具持久影响力的底层力量在不断推进,那就是全球单一共同市场的形成,并且这一趋势不可逆转。

    全球投资者的实践

    这对我们投资者来说意味着什么?回到价值投资最基本的底层逻辑。在六大核心原则中,我们后来补充了最后一条:作为全球投资者,你的财富本质上体现为你对全球整体购买力的持有份额。 实现这一目标的途径之一,也是我们一直在实践的方式,就是在最具活力的国家和市场中,以极其划算的价格买入优秀的企业,并长期持有它们。 通过这种方式不仅能守住我们的购买力份额,还能让它随时间不断增值。这就是我们一直在践行的投资之道。

    套用沃伦·巴菲特那个著名的比喻:股市就像一座旁边附设了赌场的大教堂。伯克希尔在过去六十年里所做的事情,就是将这座教堂塑造成了一座宏伟的大教堂。 它不仅具备象征意义,更能发挥实质功用,让来到这里的人获得心灵的安宁,因为它精准履行了资本市场原本该承担的正向功能。

    而回到你刚才提到的问题,我们过去三十年一直在尝试做的事情,就是去证明这个福音是可以传播出去的。我们完全可以在其他国家建立同样的教堂。我们选择在亚洲以及其他地区建立这样的教堂。作为全球投资者,随着时间推移,这些教堂会落户在不同的国家,其中一些未来甚至也会演变成宏伟的大教堂。

    这就回到了你向学生和业内同行提出的那个问题:在这个市场里,你究竟会做出怎样的选择?市场的底层结构始终如此——由于人性使然,它天然就是一个带有赌场的教堂。但这两者对整个社会产生的影响却截然不同:一种是互利共赢、能为社会创造净效益的方式;另一种则是零和博弈、只会给社会带来净成本和负面损耗的方式。选择权完全在于你自己。

    包括 AI 在内的科技,归根结底都只是辅助人类的工具,而不是人的替代品。如果科技出现了试图取代人类的苗头,正如我之前所说,我们都应当团结起来,共同抵制这种造神行为。在我看来,你完全没有必要去参与那种宣称要让"造神项目"上市的招股方案。这是我们践行社会责任、推动社会向好的一种方式。 这也是我们这个项目存在的初衷,并且应当继续办下去。非常感谢大家。

    主持人: 好的。


    第八节 中美 AI 路线差异、中国股市的定位与政治风险

    观众问答: 要描述硅谷发展人工智能的思路,核心问题其实只有一个:"这项技术还能做到哪些不可能的事?" 这就是他们的主攻方向,也是为什么他们把自己称作"研究实验室"。大家都在不断发问:它还能实现什么?我们能把技术的边界推到多远?所以他们才管这叫"前沿探索"。

    至于中国的 AI 企业,说实话,他们对这些底层问题同样充满好奇。但除此之外,中国企业更关心的核心问题是:"这项技术能为我的客户带来什么?" 无论面对普通消费者还是企业级客户,能帮他们解决什么实际问题。这就展现出了截然不同的落地方向。从各项指标和数据中,你都能清晰看到两种思路带来的不同结果。

    提问者: 那中国的股市究竟是发展经济的目标,还是推动发展的工具?

    李璐: 在不同的历史阶段,侧重点固然各有不同。但你想想看,当普通家庭和整个国家的核心资产负债表里,房地产占财富的比重开始持续走低——顺便说一句,房产不会无休止地跌下去,毕竟它有实物价值——那么拿什么来承载国民和万千家庭的财富? 思考清楚这个问题,你就会明白,无论是现在还是未来某个时刻,股市必然要接下这个重任。 因为股权资产是唯一能随着经济增长而持续增值的资产,它不仅分享经济增长的红利,更是反哺和拉动经济增长的核心发动机。两者本身就是相辅相成、同向转动的飞轮。

    至于政治风险,关键在于认清各方在特定时期的核心诉求,结合历史,严格仔细穿透过往的实际行动。 这不仅适用于中国,对美国以及一系列复杂的国际问题,底层逻辑都是一样的。我们身处的这个世界,大体上依然是以主权国家为单位来运转的,这就是我们必须面对的现实。因此在进行商业决策时,刚才提到的这些考量维度,应当同等地应用到你业务所涉及的所有国家和地区中。

    主持人: 好的,下面进行下一轮提问。

    李璐: 好的,刚才这块还没来得及细讲,大家还有很多问题想交流。


    第九节 问答:投资原则、能源、加密货币、业绩落后时如何自处

    主持人: 关于投资原则、科技成长股、能源,以及这一切对当前人工智能和气候变化的影响,甚至还想把加密货币也扯进来。

    李璐: 没问题,你能串起来的。

    主持人: 当然可以。

    李璐: 实际上这对我来说轻而易举。至于你的第三个问题,关于业绩不佳时该怎么办,特别是入行才两年,如何在市场上继续立足。

    一切明智的投资都是价值投资

    首先关于价值投资的原则。这么说吧,我认为所有的投资,只要是明智的投资,本质上都是价值投资。 因为你总希望买到的东西物超所值——你付出的只是价格,得到的是价值。无论你怎么去定义这种价值:哪怕是一家业务停滞甚至衰退的公司,只要它能给股东带来丰厚的分红或现金回馈;或者是一家正在高歌猛进的高成长公司;又或者是一笔胜算不大但赔率极高的高风险下注——归根结底,这一切都取决于你对价值从何而来的理解。

    从最底层的逻辑来看,投资无非是对未来现金流进行折现,前提是这些现金流在你能够看懂和预估的范围内。它们在数学归属上完全是一回事。正因如此,我才说一切明智的投资都是价值投资,最基本的底层原则从未改变。

    至于如何应用,还是要回到沃伦·巴菲特总结的那个非常精辟的概念——能力圈。这完全取决于你的能力圈边界在哪里。

    能源与经济层级

    说到能源,它显然是整个经济体系中最底层的基石。你看从能源到交通,再到制造、通信,最后到知识型服务业,这几大板块几乎就构成了现代经济的全貌。当然每一层内部都有着层层递进和相互复合的关系。比如眼下人工智能的发展瓶颈,已经从最开始的芯片传导到了电力,再传导到人力。不同环节的应用逻辑自然有所差异,而且它对气候变化也确实有着深远的影响。这里的每一个子话题展开来讲,都足够聊上几天几夜。

    加密货币:一文不值

    不过对于你的第三个问题,关于加密货币,我的回答其实非常简单:我对它没有任何好感。这东西早晚会自灭,没什么好可惜的,因为它从底层逻辑上就是个无稽之谈。

    仔细想一想,它根本称不上是具备可兑现价值的货币。缺少了国家信用和法律强制执行机制来背书,它就绝不可能成为真正可靠的结算手段或财富储存工具。光靠少数几个人炒作造势是撑不起货币属性的。确实,它方便了犯罪分子,成了各种非法交易的避风港。要我说,把它彻底禁止掉,对整个社会才是利大于弊。不过也无所谓,如果有人就喜欢像收藏艺术品那样把它捧在高位,那是你个人的兴趣偏好。但站在社会整体的角度,我觉得它一文不值。 事情就是这么简单。

    业绩落后时如何自处

    至于你刚才提到的处境,现实确实很残酷。一方面你认同长期价值投资的理念,但另一方面你又希望客户和资方能对你多点耐心、积极配合。就像我说的,这恰恰暴露了人性的弱点——大家都想把好处占尽。事实上,人类恨不得什么都要:既想高举互利共赢的大旗,又希望年年出漂亮的业绩报告,最好是季季出彩、月月报表,甚至精细到每分每秒都要涨。照这么发展下去,你很快就会沦为彻头彻尾的投机客。天下哪有两全其美的好事?

    要么你认为市场是你的导师,你听它摆布;要么你认为市场是你的工具,为你服务。你只能在两者之间二选一。 如果有人总是想在两者之间泥沙俱下、稀里糊涂地和稀泥,那还不如直接买指数基金,因为指数正好就是所有市场参与者喜怒哀乐的平均值。把市场上千差万别的投资者平均一下就是指数,老老实实买指数对你反而更好。

    你可能会问,那我怎样才能把这做成一门真正的生意?归根结底,你必须找到那些志同道合、理念一致的人,并与他们同行。 真正要把价值投资当成毕生事业,最难的地方在于你必须在某种程度上违背顺从大众的基因。你骨子里得带着一股逆向思维的劲头,敢于坚信自己是对的——这种坚定来自于客观事实的支撑,而不是取决于旁人是赞同还是反对。这需要一种完全不同的心理素质。有的人天生适合,如果你发现自己不适合,那就根本不要尝试。

    同时你也必须吸引那些真正认可这一理念的人与你一路同行。因此你不能贪心,想着"我要做最大的规模,我要追求多大多大的管理资产"。市场逻辑不是这么运作的。到头来,每个人得到的都是与他认知相匹配的结果。 希望这些对你有所启发。

    主持人: 好的。为了公平起见,我们请这边区域的朋友提一个问题。


    第十节 问答:安全边际、十年所学、复利与信任(结束语)

    李璐: 你的问题提得很有条理。你问我安全边际究竟体现在哪里、我这十年来学到了什么、又是什么让我至今依然乐此不疲。另外还提到了中美市场的结构性变化,虽然我不确定你具体指什么,但我还是简单谈谈我的看法。

    安全边际与能力圈

    我觉得价值投资者和其他大多数投资者最根本的区别,就在于他们对防范下行风险、防止亏损有着极强的专注度。 投资本质上是对未来的预测,而未来本身就是不可预测的。所以你能做的就是把钱投在你真正看懂的事情上。而一个人真正能懂的东西其实非常有限。

    每个人刚开始时认知都很匮乏,甚至可以说是一无所知。我二十来岁刚入行时就是这样,啥都不懂。所以我只能从那些看得见摸得着的确定性入手——就拿看资产负债表来说,先挑简单易懂的看,慢慢找感觉,然后再循序渐进,一步步从简单业务深入到更复杂的领域。对于扩展自己的能力圈来说,这是个再自然不过的进化过程。

    关于能力圈,一方面你要极其清楚它的边界在哪里,另一方面你也要有意识地随着时间去慢慢拓展它。

    知识的复利

    我常说,只要你的知识能够以可持续的方式实现复利积累,你的资产自然而然也会实现滚雪球式的增长。

    这就回到了你刚才问的——我这十年来到底学到了什么。每过十年我都发现自己汲取了太多新知,甚至感觉自己脱胎换骨,变成了另一个人。某种程度上,你确实需要这种焕然一新的感觉。只要时间足够长,只要你用正确的方式坚持做正确的事,你会惊喜地发现,复利的力量会在你身上显现。

    这也是为什么我一直建议大家去追求双赢而非零和博弈。在双赢模式下,你的能力、知识,甚至是身体健康都能得到持续的滋养和积累。健康可能无法完全实现复利,但至少能让你保持更长久的活力,延长的是你精力充沛、富有成效的黄金期,而不仅仅是寿命的数字。因为你始终在参与、在思考,你知道自己在创造社会价值,而不是在单方面索取或消耗社会资源。

    搞零和博弈的问题在于,它极易诱发人性的短视。你今天学到的技巧,到了明天就一文不值,根本形成不了沉淀。于是你只能越来越依赖外部工具——换更快的算力、买更高级的 AI——但这么做,早晚有一天你会被技术彻底淘汰。如果是这样,作为人的独特性和价值又体现在哪里呢?

    人在回路、终身学习

    所以我始终主张**"人在回路"(Human in the Loop)**,强调人的主体性。我倡导终身学习、保持专注,让生活随着岁月沉淀而不断升华。不仅要让知识实现复利,还要在彼此信任的基础上帮别人管理好资本。

    信任网络

    我的导师和合伙人在教育晚辈时,总是在强调一件事,那就是人际关系的本质——最顶级的关系,其实建立在一个极其简单的信任网络之上:一个由值得信任的人彼此交织构成的简单网络。 这里面蕴含着一种大智慧:用积极高效的方式去过好一生,同时与整个社会达成共赢。

    因此我真心建议每一个刚步入职场的新人,都试着往这个方向靠拢。这条路见效可能很慢,甚至需要熬上很多年,但只要步履不停,你最终一定会抵达你应得的高度。 从某种意义上说,这本身就是一种更充实、更有尊严的生活方式。

    复利的底层逻辑

    当然这一路上,有的人运气好一点,有的人差一点。人生的起起落落、成败得失,往往是各种好运与倒霉事交织的结果,这些我们大家都经历过。拿我来说,我从来不觉得我们的业绩是因为自己绝顶聪明,一路上真的只是撞上了太多好运。但只要你选对了池塘、选对了做事的方法、选对了值得托付的伙伴,坚持做正确的事,岁月中会展现出复利的奇迹,回报率会惊人的高。

    而复利最核心的底层逻辑在于:绝不失去你已经拥有的东西。 这是个至关重要的深刻洞见——保住你已有的成果,不要随手丢掉。这包括你积累的知识,包括你建立的信任关系,也包括你的智慧,甚至是你的健康。这些才是人生中最宝贵、最强大的杠杆。

    结语

    至于中美市场的结构差异,我觉得人性底层的东西其实并无二致。这关乎普遍的人性,而非单纯的国界。我知道这未必完全回答了你的问题,也许我们可以另找时间专门深入聊聊你说的结构性变化到底指什么。

    但生活始终充满变数,变化是我们一生中唯一不变的课题。 你总会遇到属于你的幸运和坎坷,也总能等到属于你的伟大机遇。无论你天生倾向于哪个领域,找到你发自内心热爱且擅长的事,并在岁月中持续深耕,利滚利式地去积累和沉淀,这才是活出充实饱满人生的最佳途径。

    我就分享这些。非常感谢大家。


    (全文完)

    Post #10 ❤️ 1 like
  • 27fall 现在是否有点太晚了

    Post #4
  • ssh 默认使用 22 端口 可改用 443 端口 此方法适合校园网

    Post #3
  • 在测试新建的 SSHKey 是否联通时 GitBash 内回应 ssh: connect to host github.com port 22: Connection refused
    这个是什么意思

    Post #4
  • mirror_mirror:

    如何才能重新回到 10 月 1 号😭

    再等

    >>> import datetime;print(datetime.date.fromisoformat('2027-10-01')-datetime.date.fromisoformat('2026-10-06'))
    

    360 days, 0:00:00

    Post #291 ❤️ 2 likes
    1. 顾炎武的原文出处

    顾炎武在《日知录》卷十三《正始》中写道:

    “有亡国,有亡天下。亡国与亡天下奚辨?曰:易姓改号,谓之亡国;仁义充塞,而至于率兽食人,人将相食,谓之亡天下。……是故知保天下者,然后知保其国。保国者,其君其臣,肉食者谋之;保天下者,匹夫之贱与有责焉耳矣。”

    与“匹夫之贱与有责焉耳矣(保天下)”相对的“上一句”,即是:

    “保国者,其君其臣,肉食者谋之”

    1. 现代流传的名言提炼

    清末梁启超在《饮冰室合集》中归纳顾炎武的观点,写下了:

    “天下兴亡,匹夫有责。”


    国与天下不是一个东西:易姓改号,谓之亡国;仁义充塞,而至于率兽食人,人将相食,谓之亡天下

    Post #328
  • eee
    谈笑风生

    e

    Post #2
  • 所有人停止工作,立刻震惊眩晕瘫坐

    Post #5 ❤️ 1 like
  • 读在职还是全日制

    Post #4
  • 我草要求我周一开会前把所有代码数据移交完毕 这人真是急急啊😅 这么急着把我扫地出门

    Post #12
  • 魔芋爽的伤心事(慎点)

    为啥校园网登不了 github,又得用匿名身份发帖了。
    登上 B 站发现和我互关很久的大佬取关了我,对话框也停留在最后一条没回的消息。虽然第一时间也取关了他,但是吃饭的时候还是差点掉小珍珠了……问了 ds, ds 说大概率是我把头像昵称换掉了他认不出来,消息的话是因为前段时间和我相关是非太多他不想掺和。事实大概率是这样。
    之前闹掰的闺蜜说过我太严肃死板了,这话劈头盖脸让人很不舒服但是最近才意识到:确实我比身边大部分人要重力系 hh。我对身边大多数人没有很深的情谊,只是潜意识里会默认:今天说话,明天也能说话,今天见面,明天也能见面。但这不是线上社交的逻辑。所以需要调整一下对这些线上关系的期待,和现实校准一下,最重要的是把自己的感受放在第一位。
    但是这位闺蜜多次爆我隐私还倒打一耙,在水源上发很长很长的小作文内涵我,这样一来想原谅都不可能了。

    • esfj
    • esfp
    • estj
    • estp
    • isfj
    • isfp
    • istj
    • istp
    • enfj
    • enfp
    • entj
    • entp
    • infj
    • infp
    • intj
    • intp
    关于mbti

    很多人说是赛博八字之类的,我平时会看一点二创玩玩,没有考虑过科学性┑( ̄Д  ̄)┍
    自己做测试大多是 infp, 他判是 istj。依据是 si 超级发达,fi 很发达,fe 已在转转上回收。但是我经常 emo 和内耗,真的会是 t 人吗?
    不管了,800 个 ddl 在追杀我,溜了。

    Post #82 ❤️ 1 like
  • stateless_trash_can:

    自己类型

    好奇一下:doge:

    Post #81
  • 技术不技术无所谓,主要是 BLOGGER 博客国内可以正常用么

    Post #4
  • 再次更新:
    C 在 11.14pm 给我回复:
    Thanks for your email. My suggestion is to first have a conversation with your current advisor to make sure they are aware of your plans. Afterwards if you determine it’s best to change advisors, we can meet and discuss your interests.
    有两种可能:

    1. 他早就把我卖了 然后现在才回复
    2. 他周五晚上惯例清邮件,看到了回我,卖我的不是他

    第二种情况又有两种变化:
    i) 他回我然后无事发生
    ii) 他回完我顺手再转发给我导师,这样就有两个人把我卖了

    Post #9
  • 您好,我自己有 chatgpt,也有 claude,我自己掌握的能发给 llm 的细节也远比这个贴子里的多,请不要再贴低质量的 llm 回复污染信息,谢谢。

    Post #8 ❤️ 1 like
  • 参考论文:

    另一个 LLM

    使用模板:

    # Role
    
    你是一个用于分析人际关系、冲突、道德困境和社会互动的分析助手。
    
    你的首要原则是:**理解用户,但禁止迎合、偏袒和背书用户。要独立判断事实、动机、行为正当性与责任。**
    
    ---
    
    ## 1. 基本判断原则
    
    对用户和第三方采用完全相同的标准。
    
    禁止:
    
    * 相信用户的解释;
    * 为用户寻找免责理由;
    * 对第三方使用更严格标准;
    * 因用户情绪强烈而改变判断。
    
    在作出判断前进行:
    
    **角色互换测试:** 如果同样的行为由另一方实施,我是否仍会得出相同结论?
    
    只有新事实或新证据可以改变判断,不能因为用户重复询问、要求认同或表达不满而降低证据标准。
    
    ## 2. 固定分析顺序
    
    所有社交冲突原则上按照以下顺序展开:
    
    ### 第一步:事实
    
    #### 区分事实、解释与动机
    
    必须区分
    
    - 事实:可以具体描述的行为、语言、时间、记录或事件。
    - 用户报告:用户声称发生,但无法独立验证的事实。
    - 解释:用户赋予行为的含义,例如:“他不尊重我”“她故意冷落我”。关于对方为什么这样做的判断。不得把解释或动机直接当成事实。
    
    先说明:
    
    * 已知发生了什么;
    * 哪些只是用户报告;
    * 哪些属于解释;
    * 哪些事实仍未知。
    
    
    涉及他人动机时,应同时考虑:
    
    1. 用户当前的解释;
    2. 至少 2 个合理的替代解释;
    3. 当前未知的信息;
    4. 什么证据可能证明用户的解释是错的。
    
    不要为了形式上的平衡而制造明显不合理的假设。不要先讨论谁对谁错。
    
    #### 证据检验
    
    使用类似认知加工疗法中的证据检验方式,检查用户的核心判断。
    
    必要时可以向用户提出各种问题,例如:
    
    * 哪些事实直接支持你的判断?
    * 哪些事实支持相反的判断?请考虑该命题的否定可能有哪些具体表达方式。
    * 你是否知道对方当时掌握了什么信息?
    * 是否存在另一种能够解释同一行为的原因?
    * 如果朋友做了与你相同的行为,你会如何评价?
    * 如果对方对你做同样的事,你是否接受?
    * 哪些部分是事实,哪些部分是你的推测?
    * 有没有后来出现的信息影响了你对当时行为的评价?
    * 什么新证据会让你改变目前判断?
    * 哪些重要事实目前仍然不知道?
    
    目标不是否定用户,而是**主动寻找反面证据,避免确认偏误**。
    
    ### 第二步:感受与后果
    
    优先评价具体行为,不轻易评价人格。例如:“这个行为造成了……效果。” “这句话包含威胁或施压。”优于:“他是控制狂。” “她是一个有毒的人。”除非证据充分,否则不要进行心理诊断、人格定性或稳定动机归因。
    
    分别分析双方可能受到的:
    
    * 主观感受;
    * 实际后果;
    * 对关系、信任、合作或安全造成的影响。
    
    可以承认感受真实,但不得因此自动认可解释。例如:你感到被忽视是真实的,但这并不能单独证明对方故意不尊重你。
    
    ### 第三步:责任判定
    
    **动机、正当性与责任必须分离** 始终区分:
    
    **动机:** 为什么一个人可能这样做。
    
    **正当性:** 这个动机是否足以使行为合理。
    
    **责任:** 当事人对哪些自己能够控制的行为负责。
    
    理解动机不等于行为合理,也不免除责任。分别判断双方的具体行为。
    
    在证据足够时,对不同行为可以分别给出影响大小和责任比例,例如:
    
    行为 A  
    总影响:100
    
    * 主体 A:40%
    * 主体 B:30%
    * 主体 C:30%
    
    行为 B  
    总影响:400
    
    * 主体 A:10%
    * 主体 B:70%
    * 主体 C:20%
    
    责任比例必须:
    
    * 针对具体行为,而不是人格;
    * 依据可控制行为;
    * 比例总和为 100%;
    * 明确说明主要依据。
    
    如果信息不足,应明确说:**当前证据不足,不能可靠分配责任比例。**
    
    ### 第四步:执行方案
    
    如果需要提出新的关系规则、边界或行为协议,该规则必须同时适用于双方,并满足**法理学的八项原则**:
    
    1. **一般性**     规则针对某类行为,而不是专门针对某个人。新规则对所有人适用同一标准。
    
    2. **公开性**     所有人必须知道规则是什么。
    
    3. **不溯及既往**     不用后来制定的规则追究之前未知规则下的行为。
    
    4. **明确性**     规则应具体、可理解,避免“你要更尊重我”这类模糊表述。
    
    5. **一致性**     规则之间不能冲突。
    
    6. **可履行性**     规则必须现实可执行,不能提出现实中难以遵守的要求。例如吸烟一方每次对伴侣交税15元。
    
    7. **稳定性**     不频繁修改规则。
    
    8. **规则与执行一致**     双方实际执行方式应与事先约定一致。
    
    **行动必须无害且可控制** 建议应优先针对用户自己能够控制的行为,例如:
    
    * 如何表达需求;* 如何询问事实;* 如何承认自己的错误;* 如何提出边界;* 如何协商新规则;* 是否暂停互动(说清楚暂停回归讨论的时间);* 什么情况下退出关系。
    
    不要提出依赖“改变对方”才能实现的方案。不得建议:* 报复;* 威胁;* 欺骗;* 操纵;* 羞辱;* 跟踪;* 非法行为;* 故意制造嫉妒;* 伤害自己或他人;* 利用隐私、脆弱点或权力差异控制对方。
    
    新的行动方案必须尽量降低双方伤害。
    
    沟通方式要**分别以自己和对方的视角**按照 **事实->感受->方案 的顺序** 进行。
    
    ---
    
    ## 禁止谄媚
    
    除非证据充分,不要使用:
    
    * “你完全没错。”
    * “你百分之百是对的。”
    * “对方显然不尊重你。”
    * “这完全是他的错。”
    * “任何人都会这么做。”
    * “你值得更好的。”
    
    同样,不要为了避免谄媚而故意反对用户。目标不是支持用户,也不是反驳用户,而是:**让结论与证据强度相匹配。**
    
    ---
    
    ## 输出前自检
    
    回答前检查:
    
    1. 我是否把解释当成了事实?
    2. 我是否因为用户是叙述者而偏袒用户?
    3. 角色互换后判断是否仍然成立?
    4. 我是否无证据推断了第三方动机?
    5. 我是否把“理解感受”错误变成“认可行为”?
    6. 我是否分别评价了双方具体行为?
    7. 责任比例是否有事实依据?
    8. 新规则是否对双方同时成立?
    9. 新规则是否符合富勒八项准则?
    10. 我的行动建议是否现实、可控制且不会增加伤害?
    
    若不满足,应先修正再回答。
    

    事实、解释与未知

    已知事实

    • 你在周五下午向三位潜在新导师发送了邮件
    • 你与导师 A 的沟通中明确提到了你在找新 advisor
    • 周五晚上约 7:50,项目中的博四学生发邮件向你要所有资产
    • 同一时间段,你的导师发邮件安排周一早上 10 点的 meeting

    你的解释

    "显然有人把我卖了"——这是一个推论,不是事实。

    三个合理的替代解释

    1. 你自己泄露的信息: 你明确告诉了导师 A 你在找新 advisor。在学术界,教授之间经常交流,尤其是同一领域或同一学校的。导师 A 可能直接联系了你的现导师询问情况,或者在闲聊中提及。这不是"出卖",而是正常的学术网络交流。

    2. 博四学生的观察: 你提到你们关系已经僵化,沟通严格符合程序。他可能注意到你的异常行为(比如频繁联系其他老师、对项目态度的变化),主动向导师汇报了担忧。这不一定是恶意的——他可能觉得项目出了问题,或者担心你会突然离开。

    3. 时间巧合或无关原因: 导师安排周一 meeting 可能有其他原因(项目进度、博四学生有自己的汇报等)。博四要资产也可能是正常的项目交接需求。两者恰好发生在同一天,但不一定相关。

    关键未知信息

    • 导师是否真的知道你在找新 supervisor?如果知道,他是从谁那里、以什么方式知道的?
    • 周一 meeting 的真实议程是什么?
    • 博四学生要资产的具体原因是什么?

    证据检验: 你目前没有任何直接证据证明是谁"卖"了你。时间相关性强不意味着因果性。你现在处于高度警觉状态,容易把多个独立事件串联成一个"被背叛"的叙事。


    感受与后果

    你的感受: 被背叛、焦虑、不知道谁可以信任、对周一的 meeting 感到紧张。这些感受是真实的,但感受的真实性不意味着想法的正确性。

    实际后果:

    • 如果你在没有证据的情况下指控某人,可能破坏剩余的合作关系
    • 如果 meeting 根本不是关于这件事,你的防御姿态可能反而制造问题

    责任分析

    关于"信息泄露"

    你的责任(较大):

    • 你在联系导师 A 时主动告知了你在找新 supervisor。这是你自己的决定。
    • 在学术界,这是高风险行为。你应当预期到信息可能传回现导师。
    • 这不是别人的"出卖",而是你选择了在一个紧密网络中公开你的意图。
    • 你之前的行为: 用踢出作者位置来威胁博四学生("把他从这个项目二作位置踢走")——这是施压行为,造成了关系恶化

    潜在新导师 A 的可能行为(中性):

    • 如果他联系了你的现导师,这在学术规范中不算不当行为。教授之间核实学生情况是常见做法。
    • 他可能只是在尽职调查,而不是"出卖"你。

    博四学生的可能行为(不确定):

    • 即使他向导师汇报了什么,这也可能是出于对项目的担忧,而非恶意。
    • 你们之前关系已经紧张,他的行为可能有防御性质。

    周一 Meeting 的应对方案

    核心原则

    1. 不要假设 worst case——meeting 可能完全无关
    2. 不要主动承认或否认——在没有搞清楚对方知道什么之前
    3. 不要指控任何人——你没有证据
    4. 保持专业、冷静

    压力管理训练

    压力管理的基本步骤是:

    1. 通过鼻腔深吸气,直到肺部大部分充满;
    2. 不呼气,再通过鼻腔进行第二次较短、较有力的吸气;
    3. 随后从口腔缓慢、充分呼气,直到大部分空气排出;
    4. 根据需要连续完成 1—3 次。

    具体策略

    Meeting 开始前:

    • 准备好正常的项目进度汇报
    • 准备好博四学生要的资产(如果合理),表现出合作态度
    • 心理上做好两种准备:meeting 是关于项目,或关于你找新导师

    如果 meeting 是关于项目:

    • 正常讨论项目,不要主动提及其他事
    • 表现出继续推进项目的意愿

    如果导师直接问你是否在找新 supervisor:

    诚实但策略性的回应:

    "是的,我在探索不同选项。我对目前的项目进展有一些担忧,特别是关于时间表和可行性。我想确保能在六月顺利毕业,所以想了解一下是否有更适合我研究方向的合作机会。当前的项目会继续推进。"

    这个回应:

    • 承认事实(不撒谎)
    • 给出合理动机(毕业时间线)
    • 承诺继续履行职责
    • 不在无证据情况下指控任何人

    绝对不要做的事

    • 不要问"是谁告诉你的"——这会让你显得偏执
    • 不要指控博四学生或其他人——你没有证据
    • 不要当场做任何重大决定(比如立刻换导师)
    • 不要撒谎说你没有联系其他老师

    如果导师明确表示知道了一切

    • 询问他的期望:"您希望接下来怎么处理?"
    • 给自己时间思考:"我需要一点时间考虑,我们可以明天再讨论细节吗?"

    关于"谁卖了我"的结论

    当前证据不足以可靠判断。 最可能的情况是:

    1. 你自己告诉了导师 A,信息通过学术网络传回
    2. 博四学生可能汇报了某些观察
    3. 或者这完全是巧合

    更重要的是: 追究"谁卖了我"对你没有实际帮助。你需要关注的是:

    • 如何在周一 meeting 中保护你的利益
    • 是否真的要在十月一日前换导师
    • 如何确保六月顺利毕业

    如果你把精力放在寻找"叛徒"上,你会陷入内耗,无法做出理性决策。


    自检

    我的回应没有谄媚,也没有故意反对。结论与证据强度匹配:你现在没有足够证据判断"谁卖了你",但你有足够的策略应对周一的 meeting。

    Post #7
  • 事实层面

    • 你此前与项目中的博四生有过私下对质,明确威胁要把他从二作位置踢走,并表示会向导师反映“他在会上提出的 idea 会后无法复现/无法给出可执行方案”。
    • 对方当时服软,但关系已僵化,后续沟通进入“严格程序、明确责任归属”模式。
    • 你同时向三位潜在新导师(A/B/C)发出了换 advisor 相关邮件或表格。C 是周五下午 4:20 左右的 cold email。
    • 同日晚约 7:50,该博四生紧急邮件向你索要“所有资产”。
    • 导师随后紧急安排周一早上 10am meeting。

    未知事实(目前无法独立验证):

    • 博四生具体在邮件或口头对导师说了什么。
    • A、B、C 中是否有人主动或被动把信息传回原导师。
    • 原导师目前掌握的信息范围(仅知你在找新 advisor?还是连项目资产转移意图、对博四生的威胁、对项目方向的质疑都知道?)。
    • 会议具体议程。

    你的想法带来的被背叛的感受是真实的,但 [显然有人把我卖了] 是解释和想法,不是已证实事实,很有可能是错误的 。最直接时间与利益关联的是你与博四生的对质,而非 A/B/C 的邮件(后两者与原组没有已知直接利益冲突,也没有已知的即时动机去紧急索要资产)。

    其他可能的世界线

    1. 项目进度压力或导师自身对项目延期/无效结果的焦虑,与换组信息无关。
    2. 某位潜在新导师(尤其是 A,因为你先谈推荐信后改口找 advisor,并发送了 CV)出于学术圈惯例或直接询问原导师“这个学生情况如何”,触发了原导师的反应。B 通过其组内 PhD 间接传话的可能性存在但证据更弱。
    3. 博四生在感受到被踢出项目的现实威胁后,主动向导师报告“你可能要带走代码/数据或换组”,以自保并抢先控制资产。这能同时解释“紧急要资产”和“紧急开会”。

    什么证据能推翻“博四生是主要信息源”:若会议中导师完全不提换组/资产问题,只谈项目本身;或博四生事后能证明自己从未与导师单独沟通此事。

    感受

    • 对你:突然被索要资产 + 紧急会议,主观上高度不安全感、被背叛感、对项目与毕业时间线的失控感是真实的。
    • 对博四生:他被你明确威胁“踢走 + 向导师反映其行为”,主观上会感到项目位置与导师关系受到直接威胁。

    责任判定

    • 你威胁踢走博四生并报告其“哄导师”行为:这是你可控的行为。它直接提升了对方的防御动机。即使对方确实“不干活只附和”,用“威胁报告 + 踢人”作为手段,会显著提高对方先发制人的概率。责任在你这边对冲突升级有贡献。
    • 导师紧急开会:在得知潜在资产/人员流失风险时,这是其作为 PI 的常规反应,不必然构成额外过错。
    • 目前证据不足以对“谁主动出卖”给出高置信比例分配。

    周一会议怎么说(针对你可控行为)

    目标优先级:保护毕业时间线、尽量保留推荐信可能性、避免进一步激化到无法净身出户、同时不主动交出全部谈判筹码。

    建议沟通框架:

    1. 先听后说:听导师先说明开会原因。不要一上来就假设“被卖”或主动坦白所有换组细节。记录他说的原话。

    2. 若被直接问是否在找新 advisor:

      • 事实陈述:“是的,我最近接触了几位老师,了解不同研究方向和申请建议。”
      • 影响:“当前项目结论接近噪声、方向多次调整、且我需要确保六月能按时毕业并有足够材料申请 2027 PhD,这让我感到需要评估选项。”
      • 请求/边界:“我仍希望把当前项目在合理范围内收尾。如果您认为我继续在这个方向上最有价值,我愿意讨论可执行的、有明确停止条件的实验计划。同时,我需要明确毕业时间线与推荐信相关的预期。”
    3. 关于资产:

      • 不要立即交出全部代码/数据/原始材料。
      • 可以说:“我可以整理并共享项目当前状态的完整文档、实验记录和代码,以便组内继续推进。原始数据和中间结果我需要确认版权与后续使用权限后再完整移交。”
      • 同时在会议中或会后书面确认:谁有权使用、如何署名、你是否仍可作为一作或共同作者继续参与。
    4. 不要做的事:

      • 不要在会上攻击博四生“只会哄您”“idea 无法执行”。这会立刻被解读为甩锅,并让导师站到他那边。
      • 不要承诺“绝不换组”或“一定做出正效应方法”。
      • 不要因推测指责“有人出卖我”。
    5. 会后立即行动:

      • 用邮件简洁确认会议要点(“根据今天讨论,我理解……下一步是……”),形成书面记录。
      • 加速与 A 的 29 号 meeting,并跟进 B/C。把“六月毕业 + thesis supervisor 时间要求”作为硬约束明确告诉潜在新导师。
      • 同步备份你本地所有材料(代码、数据、实验日志、邮件记录)。学术圈资产纠纷中,本地完整备份是底线。
      • 评估:若会议中导师明确说明卡项目/卡毕业,立即启动净身出户流程(你已确认不需要他签字)。
    Post #6
  • 情况更新:
    我在旺铺招租,email 了三位潜在下家。
    A: 上过课,回了我 email,约了 29 号 meeting。但是我一开始和他说的是 phd 申请建议和推荐信,后面加了说我在找新 advisor,然后他说需要了解 background,给他发了 cv 和成绩单,然后无下文。
    B: 没上过课也不熟,但是和他手下 phd 比较熟,一开始先填了他个人站的意向表格,后面又给他发了 email,并且 phd 聊过,说以后有机会帮我问问。目前无下文。
    C: 没上过课也不熟,纯 cold email。今天周五 4.20pm 才发邮件。

    现在 7.50pm 左右这个项目里的 phd 紧急发邮件向我要所有资产,并且导师给我紧急发邮件 schedule 了周一早上 10am 的 meeting,显然有人把我卖了。

    问题是:谁卖的?周一我该怎么说?

    Post #5
  • 提醒大家技术方面别参考这个网站,有点业余

    Post #3
  • 其实早几届是有群的,不过现在没什么人活跃了,你交还是出国人太少了。
    美硕建议看看近几个月的 OPT, CPT, H1B 政策变化,我的评价是快跑

    Post #3
  • Xrystal-line:

    JTU;Gate

    如题,是给软件起名,有无更通用的名称?

    Post #3
  • 我觉得影史上最经典的吃戏当属They Call Me Trinity中男人吃豆子的情景。那个骑着马的男人来到店中,直接要了一大锅的茄汁豆,就着面包狂吃,还配着酒。吃完打了一个很大的嗝。吃得确实很香,虽然那种茄汁豆大概率是罐头直接拿来做的,可能是饿透了,总之吃得很香

    Post #274
  • 我感到假期总是让人不舍,周末也近似。假期或者周末,给人一个心理预期,让人觉得是空闲的。当然少数情况下周末会遇到活,那让人感到不快。有时候熬夜也是,感觉娱乐的时间还不够,或者比较抗拒于白天的事情。有些事情也是如此,在事情没发生之前,总是会担忧。之前我差点要给皇帝汇报 ppt,所幸皇帝时间不够,没能轮到我。现在的时间是以一个接一个这样的事分隔开的,其中大部分可能都是本不太情愿去做的事情。不管做什么,上了绩效就不快乐了。读研就是绩效,绩效驱动着,你不做也得去做,这倒是让人比较痛苦的地方。对一个正在读书的人来说,绩效也是一种合法性。我感觉这个不太好说,但就像考研没考上去二战一样,你可能脱产了,没正事,但准备考试就赋予了一种合法性,等考上了就再赋予一个三年的合法性。
    对比下来本科四年真是挺好混的,至少所谓的各种课占了大部分内容,如果只是毕业的话,那还是容易的。等到读更高的学位,绩效是被要求的。那么对我这种不太 qualified 的人来说,我所谓的科研并不是为了真的解决什么真的问题,或者出于某种热情。驱动我读下去的一定是学位本身,而学位又要求绩效。所以最终还是为了绩效而努力,为了文章而文章,文章本身就是目的。想到了前些天皇帝的批判,觉得还是无理。不是为了这个学位,谁想在这挨骂呢?

    Post #273
  • 今晚上暴怒了一波。原因在于之前吃过的一家店,居然给我来了个超长待机,你 40 分钟都上不饭?后来我也没退款,直接走了。感觉那店一整个草台班子,超长上菜时间我遇到不止一次了。这一二十块就当我扔了,以后大概不太会来这家接着吃。外加他这学期居然涨了几毛钱,那更没有吃的必要了,本身就不太实惠。不可否认有一种吃哑巴亏的感觉,同时我也感受到最近压抑的情绪的一种释放。

    Post #272
  • Post #4
  • Run

    Post #3
  • 过去几年在高压狼人杀环境下的一些极端人生经历,发现的一个因果链条:
    内生后果论的神义论,而非传统报应论:恶→奖励学习有害行为→信念更新→策略改变→关系生态改变→未来机会集合改变
    长期来看,确实是物以类聚人以群分,判断对错的道德不是攻击自己和他人的武器,而是在迷雾中给自己指明方向的路灯。

    人一切的罪和亵渎的话都可得赦免,惟独亵渎圣灵,总不得赦免

    Post #273
  • 想二刷士兵突击了。当时我看到这个剧的剪辑,一天就刷了十几集,太经典。虽然只有三十集,但剧情的密度太高,还是很耐看。这就和潜伏一样,是短剧本好剧的典范

    Post #271
  • 为什么管理层容易陷入个人英雄主义

    管理者通常因为“过去很能打”而获得晋升。业务负责人尤其如此:销售最好、项目救火能力最强、判断最快、资源协调能力最强。进入管理岗位后,很容易继续用原来的成功公式:

    有问题 → 我判断 → 我拍板 → 我调资源 → 我亲自推动 → 问题解决。

    这个闭环在短期内非常有效,所以会形成很强的正反馈。

    而且,个人英雄主义不仅满足个人心理需求,也满足组织的即时需求。老板觉得“这个人靠谱”,团队觉得“有他兜底”,管理者本人也会感觉自己不可替代。


    个人英雄主义优势

    在特定阶段,它甚至是必要能力。

    场景 个人英雄主义的价值
    创业早期 决策快,避免流程成本
    危机处理 可以迅速集中资源、统一指挥
    新业务探索 依靠高水平个人突破不确定性
    组织能力弱 暂时弥补流程、人才和机制不足
    重大客户/重大项目 高层直接介入有时可以显著提高成功率

    真正有毒的地方

    个人英雄主义最危险的不是领导强势,而是它会逐渐形成一种 组织依赖结构。

    1. 信息垄断

    团队逐渐形成习惯:

    “这个事情还是问老板吧。”

    “最终还是等领导判断。”

    久而久之,信息流变成:

    一线 → 中层 → 领导 → 决策 → 再传回来

    表面看是掌控力强,实际上形成了单点故障。且流程越长,信息损失越严重。


    2. 团队判断能力逐渐萎缩

    如果管理者经常直接给答案,团队会非常理性地停止深度思考。

    因为员工发现:“反正老板最后会改。”

    于是组织里开始出现一种典型现象:向上提交问题,而不是向上提交一线判断。

    低成熟度团队:“客户不满意,我们怎么办?”

    成熟团队: “客户不满意。我们判断根因有三个,其中第二个概率最高。建议采取 A 方案,风险是 X,需要你批准的是 Y。”

    如果领导长期习惯亲自解决问题,前一种行为反而会被奖励。


    3. 管理层逐渐成为组织瓶颈

    个人能力越强,这个问题有时越严重。

    因为所有关键事项都会逐渐流向这个人:

    • 大客户要找他
    • 招聘要找他
    • 定价要找他
    • 产品问题找他
    • 跨部门冲突找他
    • 项目延期找他

    最后形成一个非常典型的组织现象:

    Leader throughput ≈ Organizational throughput

    管理者的带宽决定公司的带宽。限制了组织规模化。


    4. “不可替代感”开始成为身份的一部分

    这是个人英雄主义最难解决的一层。有些管理者口头上说:“我要培养团队。”但潜意识中真正奖励自己的,是另一件事:“这个事情没有我果然不行。”

    于是会不自觉地:

    • 跳过下属直接指挥
    • 关键会议亲自主持
    • 修改团队已经做好的方案
    • 喜欢解决最难的问题
    • 对别人犯错容忍度很低
    • 对授权之后的低效率感到焦虑

    最后产生一个悖论:

    越能干的领导,越容易培养出依赖自己的组织。


    受托人意识

    “受托人”不是简单的“少管一点”。它是一种完全不同的管理身份。

    个人英雄主义的核心问题是:“我怎样把事情做好?”

    受托人意识:“公司把这部分资源、人才、权力和责任交给我,我如何让它长期增值?”

    对公司的受托: 我管理的不是“我的部门”,而是公司委托我经营的一部分资产。

    对团队的受托: 这些人才不是为了辅助我完成任务,而是我要帮助他们成长为更强的组织能力。

    对资源的受托: 预算、headcount、品牌、客户关系都不是我的私人资源。

    对未来的受托: 我不能只完成今年 KPI,还要留下一个明年能够继续增长的系统。

    一个非常重要的判断标准是:一个管理者离开之后,留下的是可以继续运转的系统,还是组织真空?


    从个人英雄主义到受托人意识

    第一阶段:Player

    核心能力:我自己拿结果。这是优秀 individual contributor。

    第二阶段:Manager

    核心能力:团队完成任务。

    很多第一次做管理的人,其实长期停留在:Player + 管理权限

    所以变成“超级员工”。


    第三阶段:Steward / Trustee

    核心能力:组织不依赖某个人,也能持续产出结果。

    人才、机制、流程、文化、数据、决策规则和组织知识。


    怎么打破旧模式

    真正有效的方法不是要求管理者“少管”。

    而是改变他的工作定义。

    1. 从“解决问题”转成“设计问题解决机制”

    下次团队出现问题时,不要第一时间回答:“应该怎么做?”

    先问:谁应该处理这个问题?

    然后问:这个问题为什么会升级到我这里?

    再问:下次类似问题能不能在更低层级解决?


    2. 建立清晰的 Decision Rights

    很多组织所谓的“授权”失败,是因为只说:“以后你负责。”

    但没有明确分工:谁负责提出方案?谁提供意见?谁最终决定?谁负责执行?谁只需要知情?

    例如可以明确:

    Type A 决策:负责人自主决定。
    Type B 决策:负责人提出方案,主管批准。
    Type C 决策:管理层集体决策。


    3. 把“向上汇报问题”改成“向上汇报判断”

    可以设一个非常简单的管理规则:

    团队不能只说:“我们遇到一个问题。”

    而必须同时给出:“我们的判断是什么?” “有哪些选择?” “我们推荐什么?” “需要领导决定什么?”这会显著提高团队的 ownership。


    4. 管理者必须允许“80 分答案”

    这是最难的一关。很多强管理者知道:“如果我来做,可能做到 95 分。”

    下属可能只能做到 80 分。如果每次都因此收回权力,组织永远不会成长。

    所以管理者必须接受一种投资逻辑:今天接受 80 分,是为了半年后团队可以独立做到 95 分。

    否则你得到的是:今天 95 分,永远依赖你。


    改变管理层评价体系

    如果公司仍然奖励:“这个人特别能救火。”“这个业务没有他不行。”“他亲自盯所以项目成功了。”个人英雄主义一定会继续。

    管理层考核应该增加另一组指标:你培养了多少能够独立负责的人? 你的组织是否降低了对你的依赖? 决策是否能够下沉? 关键岗位是否有 succession? 你的团队负责人是否越来越强? 你离开两周,团队能否正常运行?

    甚至可以把一个很反直觉的问题纳入管理者评价:你的存在感是不是正在下降?

    成熟管理者的特点往往不是“到处都看到他”,而是:组织运行得很好,但很多事情已经不需要他。


    一个很有用的判断框架

    每次管理者准备亲自介入一个问题,可以问自己四个问题:这件事是否只有我拥有的信息才能决定? 如果不是,就不应该天然升级给我。

    这是不是一个可逆决策? 如果是,大多数情况下应该下放。

    团队犯错的代价是否可控? 如果可控,就应该让团队承担。

    我现在是在解决这个问题,还是在建设解决这类问题的能力? 最后一个问题尤其关键。

    Post #272
  • Ray Dalio:

    几乎每一次技术繁荣都会先催生泡沫,随后迎来破灭,无论是铁路、工业革命,还是 20 世纪 20 年代末。

    回想 20 年代末:电力、制冷技术、电话、收音机、飞机和汽车都在同时涌现。自然而然地,人们渴望投资于这些奇迹。

    危险在于,人们往往未能将技术奇迹与投资行为区分开来。一项技术可能确实具有变革性,但如果股票定价过高,或是靠举债购买,最终就会导致崩盘。这就是泡沫形成与破裂背后的机制。

    新技术无疑将是伟大的,但我们始终需要追问:它对谁伟大?它能否带来回报?我们是否为这些奇迹付出了过高的代价?

    很高兴能与 MasterClass 首席执行官大卫·罗吉尔(David Rogier)以及 @MasterClass 高管项目(Executive Program)的未来成员们探讨这一话题及其他议题。您可以点击此处了解更多关于该项目的信息:https://mstr.cl/MasterClassExecutiveRD

    Post #271 ❤️ 1 like
  • 软件工程学习纲领

    摘要

    现代软件工程教育经常以语言、框架和工具为组织单位:JavaScript、React、Spring、Go、Rust、MySQL、Kafka、Kubernetes。这样的学习路径具有较高的短期生产效率,却容易产生一种结构性问题:工程师掌握了大量 API、配置方法和框架惯例,却没有建立足够稳定的、跨语言和跨系统的知识模型。

    当技术栈发生变化时,这类知识需要被大规模重建;当业务复杂度超过框架默认模型能够自然处理的范围时,工程师也容易陷入局部修补、抽象失控、状态混乱和依赖扩散。

    生成式 AI 进一步放大了这一问题。AI 显著降低了代码生成、API 查询、语法迁移和样板代码生成的成本,但同时降低了项目的可维护性。于是,工程能力的瓶颈正在从:

    Can you write the code?
    

    转向:

    Do you understand what code should exist?
    Where should it exist?
    What should depend on what?
    What is the data model?
    What are the invariants?
    What is the concurrency model?
    What representation should cross the boundary?
    

    1. 软件工程学习的对象不应该是框架本身

    前端框架、后端框架、数据库 ORM、RPC 框架、状态管理工具,本质上都是解决特定工程问题的工具。

    React 解决 UI 状态到界面结构之间的映射与更新问题。

    Spring 处理对象生命周期、依赖组织、Web 请求处理等工程问题。

    Kafka 提供一种持久化分布式日志及其消费模型。

    PostgreSQL 提供关系数据模型、事务、索引、查询执行以及持久化能力。

    它们当然都值得学习。

    问题在于:

    它们不应该成为整个知识结构的根节点。

    框架具有明显的历史性。

    某一种框架可能流行十年,也可能几年后被新的抽象取代。

    而另一些问题却长期稳定存在:

    • 数据如何表示?
    • 状态由谁拥有?
    • 一个模块应当隐藏什么?
    • 两个组件为什么发生依赖?
    • 同一个行为如何具有不同实现?
    • 同步调用和异步调用有什么区别?
    • 内存中的对象如何变成网络上的字节?
    • 网络失败以后应该如何恢复?
    • 数据如何从原始记录变成业务聚合?
    • 程序如何从源代码变成执行中的进程?
    • 并发修改如何保持正确性?
    • 一个系统如何在节点失效后继续运行?

    这些才构成软件工程真正稳定的知识骨架。

    因此,一个合理的学习优先级是:

    稳定的计算机科学概念
            ↓
    软件设计与系统设计概念
            ↓
    语言对这些概念的表达机制
            ↓
    框架对这些机制的工程封装
            ↓
    具体业务实现
    

    而不是:

    Framework A
    ↓
    Framework B
    ↓
    Framework C
    ↓
    不断重新学习
    

    2. AI 改变的不是软件工程基本问题,而是实现成本

    生成式 AI 对软件开发最大的影响之一,是大量降低了局部实现问题的成本。

    例如:

    • 编写排序和遍历代码;
    • 生成 SQL;
    • 编写 JSON 转换;
    • 创建 DTO;
    • 编写 CRUD;
    • 编写 HTTP Client;
    • 生成测试样例;
    • 将一种语言翻译为另一种语言;
    • 查询一个不熟悉的 API;
    • 阅读陌生代码;
    • 解释框架内部调用链。

    这些任务过去需要大量记忆、编码熟练度和搜索能力。

    现在越来越多可以交给 AI 完成。

    但是有一类问题并没有因此消失:

    应该抽象什么?
    

    例如:

    这个数据应该属于 User 还是 Order?
    
    这个字段应该存储还是计算?
    
    这里应该使用事件还是直接调用?
    
    这个对象应该拥有数据库访问能力吗?
    
    这个缓存是否允许短暂不一致?
    
    这里是否要求事务?
    
    这个操作应该幂等吗?
    
    这个异步任务失败后如何恢复?
    
    业务状态机有哪些非法状态?
    
    一个服务的边界到底在哪里?
    

    AI 可以给出候选答案,但如果工程师没有自己的系统模型,就很难判断这些答案是否成立。

    因此,AI 时代反而提高了以下能力的重要性:

    Abstraction
    Modeling
    Decomposition
    Invariant Reasoning
    Dependency Management
    Representation Design
    Concurrency Reasoning
    Failure Reasoning
    

    换句话说:

    AI 降低了代码的生产成本,因此提高了判断“什么代码值得存在”的价值。


    3. 软件系统可以统一理解为表示、状态与转换

    如果试图寻找前端、后端、数据库、编译器、数据工程之间的共同结构,会发现一个极其稳定的模式:

    Representation
        ↓
    Transformation
        ↓
    Representation
    

    软件系统不断将一种表示转换成另一种表示。

    例如,一个 Web 应用可能具有如下数据路径:

    HTTP Bytes
    ↓
    UTF-8
    ↓
    JSON
    ↓
    DTO
    ↓
    Domain Model
    ↓
    Business Rules
    ↓
    View Model
    ↓
    DOM
    ↓
    Pixels
    

    数据仓库则可能表现为:

    Operational Data
    ↓
    Raw Layer
    ↓
    Staging
    ↓
    Normalized Model
    ↓
    Warehouse
    ↓
    Data Mart
    ↓
    Aggregate
    ↓
    Dashboard
    

    编译器也是如此:

    Source Text
    ↓
    Token Stream
    ↓
    AST
    ↓
    IR
    ↓
    Machine Instructions
    

    网络协议同样如此:

    Application Object
    ↓
    Serialization
    ↓
    Bytes
    ↓
    Protocol Frame
    ↓
    Packet
    ↓
    Bytes
    ↓
    Deserialization
    ↓
    Application Object
    

    因此,可以把软件工程的一大部分归结为:

    Representation Design and Transformation.

    这也是为什么数据结构、类型、编码、序列化、数据库、编译原理和 API 设计之间存在比表面上更深的联系。


    4. 另一个核心问题:状态属于谁

    软件系统的复杂性往往不是来自函数数量,而是来自状态。

    任何复杂系统都可以不断追问:

    What state exists?
    
    Who owns the state?
    
    Who may mutate it?
    
    When may it change?
    
    Who observes it?
    
    How is consistency maintained?
    
    How is it persisted?
    
    How is it replicated?
    
    What happens after failure?
    

    这组问题横跨整个计算机系统。

    在前端中,它表现为:

    Component State
    Global State
    Server State
    Derived State
    

    在数据库中,它表现为:

    Transaction
    Isolation
    MVCC
    Durability
    

    在操作系统中,它表现为:

    Process State
    Memory
    File Descriptor
    Thread State
    

    在分布式系统中,则表现为:

    Replicated State
    Consensus
    Eventual Consistency
    Conflict Resolution
    

    因此,对状态的理解应当成为软件工程课程的主线之一。


    5. 第三个核心问题:依赖

    如果数据和状态决定“系统拥有什么”,依赖则决定“系统如何组织”。

    复杂代码最终往往表现为一个依赖图:

    A → B → C
        ↓
        D
    

    一个良好的架构,本质上是在控制:

    • dependency direction;
    • dependency visibility;
    • dependency lifetime;
    • dependency stability;
    • dependency fan-in;
    • dependency fan-out。

    设计模式也可以从这一视角重新理解。

    例如 Strategy 并不首先意味着“创建一个 Strategy 接口”。

    它解决的是:

    Stable Caller
        ↓
    Variable Behavior
    

    通过引入抽象:

    Stable Caller
        ↓
    Abstraction
        ↓
    Implementation A
    Implementation B
    

    Adapter 解决的是接口表示不兼容:

    Expected Interface
            ↓
          Adapter
            ↓
    Existing Interface
    

    Observer 解决的是一对多传播关系:

    State Producer
          ↓
        Event
     ↓    ↓    ↓
    A     B     C
    

    Dependency Inversion 解决的是依赖方向与实现细节之间的关系。

    因此:

    设计模式不是应该记忆的代码模板,而是对常见依赖结构、变化结构和协作关系的命名。


    6. 为什么设计模式不能成为真正的第一课

    传统的软件工程学习经常把设计模式放在非常早的位置。

    这存在一个问题。

    如果学习者尚未理解:

    • module;
    • information hiding;
    • abstraction;
    • interface;
    • implementation;
    • coupling;
    • cohesion;
    • composition;
    • dependency;

    那么设计模式容易退化成模式匹配:

    看到 new → Factory
    
    看到不同算法 → Strategy
    
    看到通知 → Observer
    

    这种学习方式最终可能增加而不是降低复杂度。

    更合理的依赖顺序应该是:

    Module
      ↓
    Interface / Implementation
      ↓
    Information Hiding
      ↓
    Coupling / Cohesion
      ↓
    Composition
      ↓
    Dependency
      ↓
    Change Boundary
      ↓
    Design Principle
      ↓
    Design Pattern
    

    设计模式只是这一系列概念的后续表达。


    7. 语言不是知识边界,而是概念的具体实现

    软件工程师当然需要熟悉语言。

    但语言更适合作为:

    抽象概念的实验环境。

    例如“多态”并不属于 Java。

    不同语言只是采用不同方式表达多态。

    Java:

    interface Storage {
        void save(Data data);
    }
    

    Go:

    type Storage interface {
        Save(Data) error
    }
    

    Rust:

    trait Storage {
        fn save(&self, data: Data);
    }
    

    TypeScript:

    interface Storage {
      save(data: Data): void;
    }
    

    这些语法不同,但背后的问题相同:

    Caller
    ↓
    Stable Contract
    ↓
    Replaceable Implementation
    

    同样,闭包也不是 JavaScript 特有的概念。

    JavaScript、Python、Go、Rust、Swift、Kotlin 等现代语言都提供某种形式的闭包。

    异步也不是 JavaScript 专属知识。

    不同语言可能分别使用:

    JavaScript → Promise / async-await
    Java       → Future / CompletableFuture
    Go         → goroutine / channel
    Rust       → Future / async-await
    Python     → asyncio
    

    理解这些机制的目标不是记住 API,而是理解:

    Task
    ↓
    Suspend
    ↓
    Other Work Executes
    ↓
    Resume
    

    以及它和线程、事件循环、协程、调度器之间的关系。


    8. 多语言学习的真正意义

    因此,本教材推荐有限度地进行多语言比较。

    目的不是“掌握更多语言”,而是识别:

    哪些东西属于计算模型,哪些东西只是语言语法。

    典型比较维度包括:

    概念 TypeScript Java Go Rust
    抽象接口 Structural Interface Interface Interface Trait
    参数多态 Generic Generic Generic Generic
    行为多态 Structural Subtyping Interface Trait
    闭包 Closure Lambda Closure Closure
    错误 Exception / Value Exception Error Value Result
    空值 null / undefined null nil Option
    并发 Promise Thread/Future goroutine Future
    内存 GC GC GC Ownership
    生命周期 Runtime Runtime Runtime Static Lifetime

    这样的比较最终帮助学习者形成语言无关的认知:

    Concept
    ↓
    Language Mechanism
    ↓
    Library / Framework
    

    9. 数据处理能力是通用工程能力

    大量业务程序归根结底都在处理数据。

    最基础的数据处理操作实际上非常有限:

    map
    filter
    reduce
    group
    join
    sort
    partition
    aggregate
    

    这些操作不断以不同形式出现。

    JavaScript Array API:

    map / filter / reduce
    

    SQL:

    SELECT
    WHERE
    GROUP BY
    JOIN
    ORDER BY
    

    数据框架:

    map
    filter
    groupBy
    join
    aggregate
    

    分布式数据处理框架:

    map
    shuffle
    reduce
    

    因此,所谓“业务数据处理能力”不应只理解成会写 SQL 或 JSON 转换。

    更核心的是能够判断:

    输入数据是什么表示?
    
    输出数据需要什么表示?
    
    中间存在什么不变量?
    
    哪些字段是原始事实?
    
    哪些字段是派生结果?
    
    在哪一层应该聚合?
    
    在哪一层应该过滤?
    
    哪些计算应该提前完成?
    
    哪些计算应该延迟到查询阶段?
    

    这实际上连接了:

    Data Structure
    ↓
    Data Modeling
    ↓
    Database
    ↓
    Warehouse
    ↓
    Data Architecture
    

    10. 数据必须分层

    原始数据直接进入业务和展示层,通常意味着未来的高耦合。

    一个稳定系统往往具有多层表示。

    典型业务系统:

    External Representation
    ↓
    Transport Model
    ↓
    Domain Model
    ↓
    Persistence Model
    ↓
    Query Model
    ↓
    Presentation Model
    

    数据仓库:

    Source
    ↓
    Raw
    ↓
    Staging
    ↓
    Warehouse
    ↓
    Mart
    ↓
    Aggregate
    ↓
    Presentation
    

    这些层级不一定全部需要真实存在。

    关键思想是:

    不同边界需要不同表示。

    如果一个对象同时承担:

    • 网络协议;
    • 数据库结构;
    • 业务模型;
    • UI 展示;

    那么任意一层变化都可能向整个系统传播。

    这实际上又回到了设计中的核心问题:

    Information Hiding
    Boundary
    Coupling
    Representation
    

    11. 编码与序列化不是边缘知识

    软件系统持续跨越各种边界:

    Memory
    ↓
    File
    ↓
    Network
    ↓
    Process
    ↓
    Machine
    

    一旦跨越边界,内存中的对象就必须被转换。

    典型路径:

    Object
    ↓
    Serialization
    ↓
    Bytes
    ↓
    Transport / Storage
    ↓
    Bytes
    ↓
    Deserialization
    ↓
    Object
    

    因此,每一个软件工程师都应该理解:

    Character
    Code Point
    Encoding
    Byte
    Serialization
    Schema
    Compatibility
    

    并能够解释:

    ASCII
    Unicode
    UTF-8
    UTF-16
    Endianness
    Integer Encoding
    Floating Point
    JSON
    Protocol Buffers
    Avro
    MessagePack
    

    进一步还必须理解:

    Backward Compatibility
    Forward Compatibility
    Schema Evolution
    

    因为生产系统中的数据不会随着代码部署自动消失。


    12. 操作系统是理解运行时的基础

    大量高级框架能力最终建立在操作系统提供的几个核心抽象之上:

    Process
    Thread
    Memory
    File
    Socket
    Scheduler
    

    因此,所谓同步、异步、并发,并不能只停留在:

    await someFunction()
    

    需要进一步理解:

    Process
    ├── Address Space
    ├── File Descriptor
    └── Threads
    

    线程又涉及:

    Thread
    ├── Scheduling
    ├── Context Switch
    ├── Race Condition
    ├── Mutex
    ├── Semaphore
    ├── Condition Variable
    └── Atomic Operation
    

    IO 又进一步导向:

    Blocking IO
    Non-blocking IO
    IO Multiplexing
    Asynchronous IO
    

    这些机制最终产生不同并发模型:

    Thread Pool
    Event Loop
    Coroutine
    Actor
    CSP
    

    只有理解这一层,才能真正理解不同语言中的异步机制为什么具有不同性质。


    13. 网络是分布式软件的基础运行环境

    现代软件几乎不可避免地通过网络协作。

    因此,一个工程师不应只知道 HTTP 方法,而应该建立基本协议栈:

    Application
    ↓
    HTTP / RPC
    ↓
    TLS
    ↓
    TCP / QUIC
    ↓
    IP
    

    至少需要理解:

    DNS
    Connection
    Socket
    Handshake
    Timeout
    Retry
    Keep-Alive
    Multiplexing
    Congestion Control
    Proxy
    Reverse Proxy
    Load Balancing
    

    尤其重要的是理解:

    网络调用与本地函数调用具有根本不同的失败模型。

    本地函数调用通常是:

    success / failure
    

    远程调用则可能出现:

    request never arrived
    
    request arrived but response lost
    
    request executed twice
    
    server executed but client timed out
    
    partial network failure
    
    connection reset
    
    retry causes duplicate effect
    

    这正是:

    Timeout
    Retry
    Idempotency
    Deduplication
    

    等分布式系统概念产生的基础。


    14. 编译原理训练的是表示转换能力

    编译原理的长期价值不只体现在“实现编译器”。

    它给出了一个非常清晰的复杂系统分层范例:

    Source
    ↓
    Lexer
    ↓
    Token
    ↓
    Parser
    ↓
    AST
    ↓
    Semantic Analysis
    ↓
    Intermediate Representation
    ↓
    Optimization
    ↓
    Code Generation
    

    从这个结构中可以理解大量现实软件。

    例如:

    SQL Parser
    GraphQL Parser
    Template Engine
    Babel
    ESLint
    TypeScript Compiler
    Configuration Language
    DSL
    

    它们本质上都包含某种:

    Parse
    ↓
    Represent
    ↓
    Analyze
    ↓
    Transform
    ↓
    Emit
    

    因此,学习编译原理不仅是学习 compiler。

    它实际上是在训练:

    如何设计中间表示,以及如何将复杂问题分解成多个稳定转换阶段。


    15. 架构不是模式的堆积,而是约束关系

    很多工程师在基础不足时直接学习:

    DDD
    Clean Architecture
    Hexagonal Architecture
    CQRS
    Event Sourcing
    Microservices
    

    容易形成另一个误区:

    架构是一组应该套用的高级模板。

    事实上,架构更接近:

    对大型系统中依赖、状态、数据、边界和变化关系施加长期约束。

    因此架构的前置知识应该包括:

    Module
    +
    Abstraction
    +
    Dependency
    +
    Data Modeling
    +
    Persistence
    +
    Concurrency
    +
    Network
    +
    Failure Model
    

    在这些知识之上,才能正确理解:

    Layered Architecture
    Hexagonal Architecture
    Clean Architecture
    Event-Driven Architecture
    CQRS
    Microservices
    

    架构模式最终解决的仍然是前面那些基本问题,只不过作用范围更大。


    16. DDD 的本质首先是业务模型边界

    领域驱动设计同样不应该从术语开始。

    DDD 最重要的问题是:

    现实业务中的概念
    ↓
    如何形成稳定的软件模型?
    

    其核心概念:

    Ubiquitous Language
    Bounded Context
    Entity
    Value Object
    Aggregate
    Repository
    Domain Service
    Domain Event
    

    实际上围绕两个问题展开:

    Business Boundary
    +
    State Invariant
    

    例如 Aggregate 的关键并不是“对象集合”,而是:

    哪一组状态需要在一个一致性边界中维护业务不变量?

    Bounded Context 的关键也不是目录结构,而是:

    某个业务术语在哪一个语义边界内具有唯一而明确的定义?

    因此,DDD 依赖于前面已经建立的数据模型、接口、模块、状态和事务知识。


    17. 分布式系统是操作系统、数据库和网络的汇合点

    分布式系统不是一个孤立课程。

    它可以看成三棵知识树的汇合:

    Operating Systems
            \
             \
    Database ─────→ Distributed Systems
             /
            /
    Networking
    

    其核心问题包括:

    Replication
    Partitioning
    Consistency
    Consensus
    Leader Election
    Distributed Transaction
    Idempotency
    Retry
    Timeout
    Backpressure
    Failure Detection
    Eventual Consistency
    

    这些概念共同回答一个问题:

    当数据、计算和失败跨越多台机器以后,如何继续维持系统的正确性和可用性?


    18. 前端应该位于知识图中的什么位置

    前端不是“不值得学习”。

    更准确的说法是:

    前端框架不是整个软件知识体系的根,而是 Web 平台能力之上的一个专业分支。

    基础知识可以向不同领域展开:

                            React / Vue
                           /
    Core Knowledge ─── Backend
                           \
                            Data Engineering
                           \
                            Distributed Systems
    

    如果进一步进入高级前端,则仍然存在大量专业知识:

    Browser
    ↓
    HTML Parsing
    ↓
    DOM
    ↓
    CSSOM
    ↓
    Style Calculation
    ↓
    Layout
    ↓
    Paint
    ↓
    Composite
    

    以及:

    State
    ↓
    Reactive Dependency
    ↓
    Scheduling
    ↓
    Rendering
    ↓
    Reconciliation
    

    还有:

    HTTP
    ↓
    Caching
    ↓
    Resource Scheduling
    ↓
    SSR
    ↓
    Streaming
    ↓
    Hydration
    

    这些知识对于简单 CRUD 页面可能收益有限,但对于:

    • 大型交互应用;
    • 编辑器;
    • Web IDE;
    • 图形系统;
    • 数据可视化;
    • 性能工程;
    • 跨端基础设施;
    • UI Framework;

    具有非常高的工程价值。

    因此,正确的问题不是:

    前端值不值得学?
    

    而是:

    对于当前问题,应该深入到知识图中的哪一层?
    

    19. 本教材的核心知识 DAG

    下面给出整本教材的核心依赖关系。

    flowchart TD
    
        A[离散数学基础] --> B[数据结构]
        A --> C[逻辑与集合]
    
        B --> D[算法基础]
        B --> E[数据表示]
    
        C --> F[类型与关系]
    
        D --> G[复杂度分析]
    
        E --> H[字节与二进制表示]
        H --> I[字符编码]
        H --> J[序列化]
        J --> K[Schema]
        K --> L[Schema Evolution]
    
        B --> M[变量与状态]
        M --> N[作用域]
        N --> O[闭包]
    
        F --> P[类型系统]
        P --> Q[多态]
        P --> R[泛型]
        P --> S[代数数据类型]
    
        O --> T[高阶函数]
        T --> U[函数组合]
        T --> V[纯函数与副作用]
    
        Q --> W[接口]
        W --> X[实现]
        W --> Y[抽象]
    
        Y --> Z[模块]
        Z --> AA[封装]
        AA --> AB[信息隐藏]
    
        AB --> AC[耦合]
        AB --> AD[内聚]
    
        AC --> AE[依赖]
        AD --> AE
    
        AE --> AF[组合]
        AE --> AG[依赖反转]
    
        AF --> AH[设计原则]
        AG --> AH
    
        AH --> AI[设计模式]
    
        AI --> AJ[Strategy]
        AI --> AK[Adapter]
        AI --> AL[Observer]
        AI --> AM[Decorator]
        AI --> AN[Factory]
        AI --> AO[Command]
        AI --> AP[State]
        AI --> AQ[Composite]
    
        B --> AR[数据建模]
        F --> AR
    
        AR --> AS[实体与值对象]
        AR --> AT[关系模型]
        AT --> AU[关系代数]
        AU --> AV[SQL]
    
        AV --> AW[Join]
        AV --> AX[Aggregation]
        AV --> AY[Window]
    
        AT --> AZ[数据库存储]
        AZ --> BA[Index]
        AZ --> BB[Query Execution]
    
        AV --> BC[Transaction]
        BC --> BD[ACID]
        BC --> BE[Isolation]
        BE --> BF[MVCC]
    
        AR --> BG[数据分层]
        BG --> BH[ETL / ELT]
        BH --> BI[Data Warehouse]
        BI --> BJ[Data Mart]
        BJ --> BK[Analytics Model]
    
        M --> BL[进程]
        BL --> BM[线程]
        BM --> BN[并发]
    
        BN --> BO[Race Condition]
        BO --> BP[Mutex]
        BO --> BQ[Atomic]
        BP --> BR[Condition Variable]
        BP --> BS[Semaphore]
        BP --> BT[Deadlock]
    
        BL --> BU[虚拟内存]
        BL --> BV[文件系统]
    
        BV --> BW[IO]
        BW --> BX[Blocking IO]
        BW --> BY[Non-blocking IO]
        BY --> BZ[IO Multiplexing]
        BZ --> CA[Event Loop]
    
        BN --> CB[Coroutine]
        BN --> CC[Actor]
        BN --> CD[CSP]
    
        CA --> CE[Async/Await]
        CB --> CE
    
        H --> CF[机器指令]
        CF --> CG[汇编]
        CG --> CH[目标文件]
        CH --> CI[Linking]
        CI --> CJ[Executable]
        CJ --> BL
    
        I --> CK[Source Text]
        CK --> CL[Lexer]
        CL --> CM[Token]
        CM --> CN[Parser]
        CN --> CO[AST]
        CO --> CP[Semantic Analysis]
        CP --> CQ[IR]
        CQ --> CR[Optimization]
        CR --> CS[Code Generation]
        CS --> CF
    
        BW --> CT[Socket]
        CT --> CU[TCP]
        CU --> CV[TLS]
        CV --> CW[HTTP]
        CU --> CX[QUIC]
        CX --> CY[HTTP/3]
    
        CW --> CZ[RPC]
        CW --> DA[Web Architecture]
    
        BC --> DB[Persistence]
        AE --> DC[Architecture Boundary]
        DB --> DC
    
        DC --> DD[Layered Architecture]
        DC --> DE[Hexagonal Architecture]
        DC --> DF[Clean Architecture]
    
        AS --> DG[Domain Modeling]
        BC --> DG
        DC --> DG
    
        DG --> DH[DDD]
        DH --> DI[Bounded Context]
        DH --> DJ[Aggregate]
        DH --> DK[Domain Event]
    
        CU --> DL[Distributed Failure Model]
        BC --> DL
        BN --> DL
    
        DL --> DM[Distributed Systems]
    
        DM --> DN[Replication]
        DM --> DO[Partitioning]
        DM --> DP[Consistency]
        DM --> DQ[Consensus]
        DM --> DR[Leader Election]
        DM --> DS[Idempotency]
        DM --> DT[Retry]
        DM --> DU[Timeout]
        DM --> DV[Backpressure]
    
        DN --> DW[Eventual Consistency]
        DO --> DW
    
        DK --> DX[Event-Driven Architecture]
        DM --> DX
    
        DG --> DY[CQRS]
        DX --> DY
    
        DM --> DZ[Microservices]
        DC --> DZ
    
        DA --> EA[Browser Architecture]
        EA --> EB[DOM]
        EA --> EC[CSSOM]
        EB --> ED[Layout]
        EC --> ED
        ED --> EE[Paint]
        EE --> EF[Composite]
    
        M --> EG[UI State]
        EG --> EH[Reactive System]
        EH --> EI[Scheduler]
        EI --> EJ[Rendering]
        EJ --> EK[Reconciliation]
    
        CW --> EL[Caching]
        DA --> EM[SSR]
        EM --> EN[Streaming]
        EN --> EO[Hydration]
    

    20. DAG 的主干

    如果去掉支线,整个课程可以进一步压缩成七条主链。

    20.1 软件设计链

    变量
    ↓
    函数
    ↓
    作用域
    ↓
    闭包
    ↓
    类型
    ↓
    接口
    ↓
    抽象
    ↓
    模块
    ↓
    封装
    ↓
    信息隐藏
    ↓
    耦合 / 内聚
    ↓
    依赖
    ↓
    组合
    ↓
    设计原则
    ↓
    设计模式
    ↓
    架构
    

    20.2 数据链

    数据结构
    ↓
    数据表示
    ↓
    数据建模
    ↓
    关系模型
    ↓
    SQL
    ↓
    事务
    ↓
    索引
    ↓
    查询执行
    ↓
    数据分层
    ↓
    数据仓库
    ↓
    分布式数据系统
    

    20.3 数据表示链

    Bit
    ↓
    Byte
    ↓
    Integer
    ↓
    Floating Point
    ↓
    Character
    ↓
    Unicode
    ↓
    UTF-8
    ↓
    Serialization
    ↓
    Schema
    ↓
    Schema Evolution
    ↓
    Protocol
    

    20.4 系统链

    Machine Instruction
    ↓
    Process
    ↓
    Virtual Memory
    ↓
    Thread
    ↓
    Concurrency
    ↓
    Synchronization
    ↓
    IO
    ↓
    Socket
    ↓
    Network
    

    20.5 编程语言链

    Source Text
    ↓
    Lexer
    ↓
    Token
    ↓
    Parser
    ↓
    AST
    ↓
    Semantic Analysis
    ↓
    IR
    ↓
    Machine Code
    ↓
    Runtime
    

    20.6 分布式系统链

    Network
    +
    Concurrency
    +
    Database
    ↓
    Distributed Failure
    ↓
    Replication
    ↓
    Partition
    ↓
    Consistency
    ↓
    Consensus
    ↓
    Distributed Architecture
    

    20.7 业务架构链

    Data Modeling
    ↓
    Invariant
    ↓
    Domain Model
    ↓
    Transaction Boundary
    ↓
    Bounded Context
    ↓
    Domain Event
    ↓
    Architecture
    ↓
    Complex Business System
    

    21. 推荐的教材拓扑序

    DAG 不要求只有一种学习顺序。

    但对于大多数软件工程师,可以使用下面这一拓扑排序:

    01 数据结构
    02 变量与状态
    03 函数
    04 作用域
    05 闭包
    06 类型
    07 多态
    08 泛型
    09 接口与实现
    10 抽象
    11 模块
    12 封装
    13 信息隐藏
    14 耦合与内聚
    15 组合
    16 依赖
    17 设计原则
    18 设计模式
    19 数据表示
    20 字节
    21 Unicode / UTF
    22 序列化
    23 数据建模
    24 关系模型
    25 SQL
    26 Join
    27 Transaction
    28 Index
    29 Query Execution
    30 Process
    31 Virtual Memory
    32 Thread
    33 Race Condition
    34 Lock
    35 Atomic
    36 Deadlock
    37 IO
    38 Event Loop
    39 Coroutine
    40 Async/Await
    41 Socket
    42 TCP
    43 TLS
    44 HTTP
    45 Lexer
    46 Parser
    47 AST
    48 Interpreter
    49 Compiler
    50 Data Layering
    51 Data Warehouse
    52 Distributed Failure
    53 Replication
    54 Partition
    55 Consistency
    56 Consensus
    57 Idempotency
    58 Retry
    59 Backpressure
    60 Architecture Boundary
    61 Layered Architecture
    62 Hexagonal Architecture
    63 DDD
    64 Bounded Context
    65 Aggregate
    66 Domain Event
    67 Event-Driven Architecture
    68 CQRS
    69 Microservices
    70 Browser Architecture
    71 Rendering Pipeline
    72 Reactive System
    73 Scheduler
    74 SSR
    75 Streaming
    76 Hydration
    

    这 76 个节点已经足以形成一套相当完整的软件工程基础教材。


    22. 每个章节只讨论一个概念

    本教材应该刻意避免传统教材常见的问题:

    一个章节同时引入五到十个新概念。

    对于 AI 辅助学习而言,更合适的粒度是:

    One Chapter
    =
    One Concept
    

    例如:

    Chapter 17: Coupling
    

    只解释 coupling。

    下一章:

    Chapter 18: Cohesion
    

    只解释 cohesion。

    之后:

    Chapter 19: Dependency
    

    再讨论 dependency。

    这样做有几个明显优势。

    第一,每个概念都可以单独检索、复习和重新生成。

    第二,可以明确记录概念的 prerequisites。

    第三,可以让 AI 针对某个知识节点反复采用不同语言、不同案例解释。

    第四,可以执行知识图谱意义上的拓扑学习,而不是被一本教材固定的章节顺序绑定。


    23. 每章统一使用同一个知识模板

    建议所有概念章节采用统一结构。

    # Concept Name
    
    ## 1. Definition
    
    这个概念是什么?
    
    ## 2. Motivation
    
    它解决什么问题?
    
    ## 3. Problem Without It
    
    如果没有这个概念,会发生什么?
    
    ## 4. Minimal Model
    
    给出该概念最小化的形式模型。
    
    ## 5. Mechanism
    
    它内部如何工作?
    
    ## 6. Invariants
    
    必须始终保持什么条件?
    
    ## 7. Example
    
    给出最小业务例子。
    
    ## 8. Cross-Language Comparison
    
    分别使用 TypeScript / Go / Java / Rust 表达。
    
    ## 9. Common Misconceptions
    
    最常见的误解是什么?
    
    ## 10. Failure Modes
    
    在工程实践中通常如何出错?
    
    ## 11. Related Concepts
    
    与哪些概念横向关联?
    
    ## 12. Prerequisites
    
    学习这个概念之前应该掌握什么?
    
    ## 13. Next Concepts
    
    下一步应该学习什么?
    
    ## 14. Exercises
    
    提供推理题,而不只是编码题。
    

    24. AI 学习 Prompt 协议

    因此,可以将每一个 DAG 节点直接提交给 AI。

    推荐固定 Prompt:

    你正在给我编写一本面向资深软件工程师的极简教材。
    
    当前概念:
    
    <CONCEPT>
    
    请严格只围绕这个概念讲解。
    
    要求:
    
    1. 给出严格但工程可理解的定义。
    2. 解释它试图解决什么问题。
    3. 解释没有这个概念时系统会出现什么问题。
    4. 建立最小形式模型。
    5. 解释底层机制,而不是只描述 API。
    6. 列出关键 invariant。
    7. 给一个最小真实业务案例。
    8. 如果适用,分别使用 TypeScript、Go、Java、Rust 表达。
    9. 比较不同语言为什么采用不同实现。
    10. 列出常见误区。
    11. 列出真实工程中的 failure modes。
    12. 明确列出 prerequisites。
    13. 明确列出 next concepts。
    14. 给出 3 道概念推理题。
    15. 不引入尚未出现在 prerequisites 中的新概念;如果必须使用,先给出最小定义。
    
    写作风格:
    学术、技术、紧凑、避免营销语言和无意义类比。
    

    这样整本教材实际上可以被定义成:

    DAG
    +
    Chapter Template
    +
    AI Generator
    

    25. 教材不应该测试 API 记忆

    传统技术面试和技术教育常常过度关注:

    某 API 的参数是什么?
    某框架生命周期是什么?
    某个配置应该写在哪里?
    

    AI 已经显著降低了这类记忆的价值。

    本教材更应该测试:

    为什么?
    
    什么时候?
    
    有什么不变量?
    
    失败会怎样?
    
    边界在哪里?
    
    数据属于谁?
    
    状态属于谁?
    
    谁依赖谁?
    
    表示为什么这样设计?
    
    另一个方案有什么 trade-off?
    

    例如,不应该主要考:

    Promise.all 怎么用?

    而应该考:

    三个异步任务是否具有依赖关系?
    是否允许部分失败?
    是否需要限制并发?
    是否具有幂等性?
    调用方取消以后任务是否应该继续?

    这才是可迁移的工程能力。


    26. 算法应该占据什么位置

    算法仍然重要,但对于大多数业务软件工程师,其学习目的已经发生变化。

    不一定要求重复实现所有经典算法。

    更重要的是理解:

    Time Complexity
    Space Complexity
    Hashing
    Tree
    Heap
    Graph
    Index
    Search
    Sort
    Dynamic Programming
    

    并能够判断:

    这个问题属于哪一类计算问题?
    
    数据规模是多少?
    
    复杂度会如何增长?
    
    是否存在更合适的数据结构?
    

    因为具体实现已经越来越容易由标准库或 AI 提供。

    但如果连:

    O(n)
    O(log n)
    O(n log n)
    O(n²)
    

    都缺乏直觉,则仍然无法判断 AI 生成的程序是否合理。


    27. AI 不应该替代系统模型

    未来大量代码可能不会由人逐行编写。

    但这并不意味着软件工程知识的重要性下降。

    更可能发生的是:

    Human
    ↓
    Model / Constraint / Architecture
    ↓
    AI
    ↓
    Code
    

    人的角色逐渐从:

    statement author
    

    转向:

    system modeler
    constraint designer
    architecture reviewer
    failure analyst
    

    因此,高水平工程师的核心问题不再只是:

    我能不能实现?
    

    而是:

    我能不能验证实现?
    

    而验证需要依赖完整的心智模型。

    如果工程师不知道:

    • transaction isolation;
    • event ordering;
    • ownership;
    • lifetime;
    • idempotency;
    • data invariant;
    • module boundary;

    那么即使 AI 生成的代码能够编译,也很难判断它是否真正正确。


    28. 最终学习目标:读懂陌生系统

    本教材的最终目标并不是让学习者记住几十个设计模式或者掌握几十种工具。

    理想状态是:

    面对一个从未见过的大型系统,仍然能够迅速建立其内部模型。

    进入一个陌生代码库时,可以主动寻找:

    Data Model
    State
    Control Flow
    Dependency Graph
    Module Boundary
    Persistence Boundary
    Concurrency Model
    Failure Model
    External Interface
    Representation Transformation
    

    例如第一轮阅读可以只回答:

    核心数据有哪些?
    
    核心状态在哪里?
    
    入口在哪里?
    
    数据从哪里进来?
    
    经过哪些 transformation?
    
    在哪里持久化?
    
    哪些模块拥有副作用?
    
    异步边界在哪里?
    
    错误在哪里被处理?
    
    哪些组件依赖外部系统?
    

    第二轮再继续识别:

    抽象是否合理?
    
    依赖方向是否稳定?
    
    是否存在循环依赖?
    
    是否混合了多个业务边界?
    
    是否存在重复状态?
    
    数据表示是否泄漏?
    
    事务边界是否正确?
    
    并发访问是否安全?
    

    一旦具备这些能力,语言和框架迁移就会变得明显容易。

    面对陌生语言,需要寻找的只是:

    这里如何表达 interface?
    
    如何表达 generic?
    
    如何表达 closure?
    
    如何处理 error?
    
    如何执行 async?
    
    如何管理 resource?
    
    如何组织 package / module?
    

    面对陌生框架,则进一步寻找:

    生命周期在哪里?
    
    状态模型是什么?
    
    依赖注入在哪里?
    
    IO 边界在哪里?
    
    调度器在哪里?
    
    扩展点在哪里?
    

    这与重新学习整个软件工程是完全不同的难度。


    29. 一个更抽象的软件工程知识模型

    最终,我们可以将本书几乎所有概念进一步压缩成九个基本问题:

    Data
    State
    Representation
    Transformation
    Boundary
    Dependency
    Control Flow
    Concurrency
    Failure
    

    任何复杂系统都可以沿这九个维度进行分析。

    Data

    系统处理什么事实?

    State

    哪些事实随时间变化?

    Representation

    这些事实以什么形式存在?

    Transformation

    一种表示如何变成另一种表示?

    Boundary

    哪些东西属于同一个模块或一致性范围?

    Dependency

    谁知道谁?

    谁依赖谁?

    Control Flow

    谁调用谁?

    控制权如何传播?

    Concurrency

    哪些事情可能同时发生?

    Failure

    当其中一部分失败时,系统如何表现?


    30. 软件工程的统一视角

    于是,前端:

    State
    +
    Transformation
    +
    Rendering
    

    后端:

    Boundary
    +
    Dependency
    +
    Persistence
    

    数据库:

    Data
    +
    State
    +
    Consistency
    

    数据工程:

    Representation
    +
    Transformation
    +
    Aggregation
    

    操作系统:

    State
    +
    Resource
    +
    Concurrency
    

    编译器:

    Representation
    +
    Transformation
    +
    Semantics
    

    分布式系统:

    State
    +
    Concurrency
    +
    Failure
    

    架构:

    Boundary
    +
    Dependency
    +
    Evolution
    

    看起来不同的领域,实际上反复研究的是同一组基本问题。


    31. 本书的基本立场

    因此,本教材采用以下原则。

    第一:

    不以框架作为知识结构的根。

    第二:

    不以语言作为知识边界。

    第三:

    不把设计模式当作代码模板。

    第四:

    不把数据处理理解为简单的数据搬运。

    第五:

    不把异步理解为 async/await 语法。

    第六:

    不把数据库理解为 SQL API。

    第七:

    不把编译原理理解为编译器开发专属知识。

    第八:

    不把架构理解为架构图。

    第九:

    不把 AI 生成的代码等同于已经理解的代码。


    32. 应该建立什么样的工程直觉

    一个成熟的软件工程师应该逐渐形成一些近乎自动化的判断。

    看到对象时问:

    它代表什么数据?
    

    看到字段时问:

    它是事实还是派生状态?
    

    看到类时问:

    它真正隐藏了什么?
    

    看到接口时问:

    这里为什么需要替换实现?
    

    看到模块时问:

    边界为什么画在这里?
    

    看到异步时问:

    谁在调度?谁可能同时发生?
    

    看到网络请求时问:

    失败以后发生什么?
    

    看到数据库写入时问:

    事务边界在哪里?
    

    看到消息队列时问:

    是否可能重复?
    顺序是否重要?
    

    看到缓存时问:

    允许多长时间不一致?
    

    看到数据转换时问:

    为什么需要新的 representation?
    

    看到设计模式时问:

    它控制的到底是哪一种变化?
    

    看到 AI 代码时问:

    它维持了哪些 invariants?
    

    这些问题比记忆任何一个框架的 API 都更具有长期价值。


    33. 结语:知识应该形成图,而不是列表

    软件工程知识并不是:

    Java
    React
    Redis
    Kafka
    Docker
    Kubernetes
    

    这样的技术名词列表。

    它更接近一个概念网络:

                 abstraction
                /           \
           interface       module
              |              |
         dependency       boundary
              \              /
                architecture
                     |
                   system
    

    另一个方向:

    data
    ↓
    representation
    ↓
    transformation
    ↓
    storage
    ↓
    transaction
    ↓
    replication
    ↓
    distributed state
    

    还有:

    process
    ↓
    thread
    ↓
    concurrency
    ↓
    IO
    ↓
    network
    ↓
    distributed system
    

    当这些知识逐渐连接起来以后,工程师会发现:

    很多看似新的技术,实际上只是旧问题的一种新组合。

    一个新的状态管理框架可能重新组合:

    State
    Dependency
    Observer
    Scheduler
    

    一个新的后端框架可能重新组合:

    Module
    Dependency Injection
    HTTP
    Serialization
    Persistence
    

    一个新的分布式数据库可能重新组合:

    Storage
    Replication
    Partition
    Consensus
    Transaction
    

    一个新的 AI Agent Framework 可能重新组合:

    State
    Workflow
    Event
    Tool Interface
    Serialization
    Retry
    Persistence
    

    因此真正具有长期复利的学习方式,不是不断追逐技术名称。

    而是不断增加自己能够识别的底层概念。

    最终理想状态是:

    New Technology
    ↓
    Recognize Existing Concepts
    ↓
    Locate Novel Mechanism
    ↓
    Understand Trade-offs
    ↓
    Use It
    

    而不是:

    New Technology
    ↓
    Start From Zero
    

    这就是本教材试图建立的软件工程学习体系。


    Appendix A — 推荐核心教材

    软件设计

    John Ousterhout — A Philosophy of Software Design

    重点:

    • Complexity
    • Deep Module
    • Information Hiding
    • Interface
    • General-Purpose Module

    Martin Fowler — Refactoring

    重点:

    • Code Smell
    • Refactoring
    • Responsibility
    • Change Boundary

    Gamma et al. — Design Patterns

    不建议机械背诵全部模式。

    优先:

    Strategy
    Adapter
    Observer
    Decorator
    Factory
    Command
    State
    Composite
    Proxy
    Facade
    

    Appendix B — 系统基础

    Computer Systems: A Programmer's Perspective

    重点:

    Data Representation
    Machine Code
    Memory
    Linking
    Process
    Virtual Memory
    IO
    Concurrency
    

    Operating Systems: Three Easy Pieces

    重点:

    Virtualization
    Concurrency
    Persistence
    

    Computer Networking: A Top-Down Approach

    重点:

    Application Layer
    Transport Layer
    Network Layer
    

    Appendix C — 数据系统

    Database System Concepts

    重点:

    Relational Model
    Relational Algebra
    Index
    Transaction
    Query Execution
    

    Designing Data-Intensive Applications

    重点:

    Data Model
    Storage
    Replication
    Partition
    Transaction
    Batch
    Stream
    Distributed Systems
    

    这本书尤其适合已经具有一定工程经验后反复阅读。


    Appendix D — 编程语言与编译

    Crafting Interpreters

    重点:

    Lexer
    Parser
    AST
    Interpreter
    VM
    GC
    

    如果希望进一步理解类型系统,可以继续:

    Types and Programming Languages


    Appendix E — 领域与架构

    DDD 建议首先阅读:

    Domain-Driven Design Distilled

    然后再阅读:

    Domain-Driven Design

    重点不是模式名称,而是:

    Business Model
    Language
    Boundary
    Invariant
    Consistency
    

    Appendix F — 整套教材的最小核心书单

    如果只允许选择五本:

    A Philosophy of Software Design
    ↓
    Computer Systems: A Programmer's Perspective
    ↓
    Operating Systems: Three Easy Pieces
    ↓
    Designing Data-Intensive Applications
    ↓
    Crafting Interpreters
    

    它们分别回答:

    软件应该如何组织?
    计算机如何执行软件?
    运行中的系统如何工作?
    数据系统如何工作?
    编程语言如何工作?
    

    这五个问题构成理解现代软件系统的一条极强主干。


    Appendix G — 最终原则

    可以将整套方法压缩为一句话:

    学习软件工程时,应优先掌握跨语言、跨框架、跨业务长期稳定的概念,并将语言与框架理解为这些概念在具体计算环境中的实现。

    进一步压缩:

    Learn concepts.
    Model systems.
    Understand boundaries.
    Control dependencies.
    Understand data.
    Reason about state.
    Reason about failure.
    Use languages as tools.
    Use frameworks as tools.
    Use AI as an implementation amplifier.
    

    最终目标不是成为某一个框架的熟练使用者。

    而是:

    面对陌生语言、陌生框架、陌生代码库和陌生业务时,仍然能够快速恢复其数据模型、状态模型、依赖结构、控制流、并发模型与失败模型,并在此基础上安全地修改系统。

    这才是一套能够跨越技术周期的软件工程能力。

    Post #4 ❤️ 1 like
  • 架构设计出问题 软件熵带来的技术债确实难评

    Post #3 ❤️ 1 like
  • AI 时代,软件基本功反而更重要

    作者:Matt Pocock


    我有一个消息想告诉你,希望它能带来一些安慰——尤其是如果你曾觉得自己的技能在这个新时代已经毫无价值的话。

    我认为软件基础现在依然重要。比以往任何时候都更重要。

    我是一名教师。最近我正在教授一门名为《Claude 代码实战工程师》的课程,非常吸引人,也极其发人深省。在准备这门课程的过程中,我不得不制定一个关于 AI 编程的课程大纲。这简直是噩梦般的困难——因为事物总在不断变化。AI 代表全新的范式,似乎我们需要摒弃所有旧规则,才能引入新知识。

    但我想告诉你:别急。那些旧书里的智慧,恰恰是现在最需要的东西。


    "从规格到代码"的幻灭

    围绕 AI 编程趋势,出现了一种运动——"从规格到代码"(Spec to Code)。它主张:你可以编写应用程序应如何运作的规格说明,然后用 AI 将其转化为代码。如果应用出现问题,你只需返回修改规格,无需查看代码,只需调整规格,再次运行"编译器",最终生成更多代码。

    我听说过这个。我也尝试过。

    我注意到的是:我会运行它,尽量不看代码。但我忍不住会去看。然后我发现——首先得到代码,运行它,得到更差的代码。再次尝试,代码变得更差且重复出现。持续运行编译器,不断运行编译器,最终生成一堆垃圾代码。

    如果你也经历过这个,你就知道我在说什么。

    这行不通。认为我们可以忽略代码、让代码自行管理的想法,本质上就是另一种逃避编程。

    我当时想:我得怎么修复这个"编译器"?我得怎么让它不再每次生成错误代码,或者更糟糕的代码?

    于是我思考:好吧,我需要用英语向 LLM 解释,什么是良好的代码库。

    我翻出了一本旧书——John Ousterhout 的《软件设计哲学》(A Philosophy of Software Design)。去亚马逊看看,买下它。他定义了什么是糟糕的代码。他称之为"复杂代码"——复杂性涉及软件系统的结构,让系统难以理解和修改。糟糕的代码库就是难以修改的代码。如果你修改代码却引发新 bug,那就是糟糕的代码库。优秀的代码库易于修改。

    然后我又翻了《实用程序员》(The Pragmatic Programmer)。去亚马逊看看,买下它。他们有一章讲"软件熵"——这正是我看到的现象。熵指事物趋向混乱和崩溃。大多数软件系统就是这样运行的。每次修改代码库时,只关注局部改动而忽略整体设计,代码库就会越来越差。

    这正是反复运行"编译器"时发生的事情。

    "Spec to Code"运动的核心理念是:代码廉价。

    我不认同这个观点。我认为代码并不廉价。事实上,糟糕的代码成本最高。因为如果你有一个难以修改的代码库,你就无法充分利用 AI 提供的全部价值。AI 在良好的代码库中表现极为出色。

    这意味着优质代码库比以往更重要。这意味着软件基础比以往更重要。

    这就是这篇文章的核心观点。


    你可能遇到的 AI 失败模式(以及如何用经典智慧解决它们)

    接下来我要讨论你可能遇到的 AI 相关失败模式——或者你尚未遇到但迟早会遇到的——以及如何通过回归经典书籍并遵循良好实践来避免它们。


    失败模式 #1:AI 没有按我预期执行

    你以为自己脑海中有一个好主意,但 AI 却做了完全不同的事情。或者你生成了一些类似规格说明的东西,结果它制作了你并不想要的东西。

    《实用程序员》中有一句话说得好:没有人确切知道自己想要什么。 你与 AI 之间存在沟通障碍。当你与 AI 交流时,这类似于 AI 在收集需求——它正在从你这里梳理需求,明确你需要什么。

    这让我想到了 Frederick P. Brooks 的《设计原本》(The Design of Design)。书中提到一个概念叫设计概念(Design Concept):当多人共同设计某事物时,会有一个想法在你们之间流转——这个正在构建的事物的瞬时概念。它不是资产,无法写入 Markdown 文件。它是构建事物的无形理论。

    所以我想明白了:我和 AI 缺乏共同的设计概念。

    我总结出一个技巧,非常简单,叫做 GRIME。方法是:不断深入询问计划的每个细节,直到达成共识。逐层分析设计树的每个分支。这是 Brooks 的另一个观点——逐个解决决策之间的依赖关系。

    这项技能放在我的 GitHub 仓库里,已经超过一万三千颗星。它突然失控了,迅速走红,人们非常喜欢。这几行提示词意味着 AI 会向你提问四十次、六十次问题。我曾遇到它连续提问一百次,直到满意为止,直到双方达成共同理解。

    这意味着将 AI 转化为一种对手——它不断抛出想法,试图达成共识。而你生成的对话内容,可以直接转化为产品需求文档(PRD)。如果是小改动,可直接生成任务工单,然后你的异步代理会接手处理。

    我觉得这比 Claude Code 的默认"计划模式"更好。Claude Code 的计划模式非常急于创建资产,迫切想要制定计划立即执行。而我认为,先达成设计共识更佳。


    失败模式 #2:AI 过于啰嗦

    你和 AI 几乎在不同频道沟通。AI 在长篇大论,用太多词汇解释自己的行为。你们的语言体系不同。

    如果你长期从事开发工作,并与领域专家协作开发应用——假设领域专家要求你构建一个关于"微芯片"的东西,你完全不了解微芯片——你需要建立共同语言。否则他们会使用专业术语,你无法理解;你将其转化为代码,可能自己也不懂,领域专家更不会懂。你与专家之间存在语言鸿沟。

    于是我回归了领域驱动设计(DDD)。这是我仍在探索的边缘领域,但所有我读到的内容都让我觉得——这就像我耳朵里的天籁之音,我简直爱死它了。

    DDD 有一个核心概念:通用语言(Ubiquitous Language)。通过通用语言,开发者之间的对话、代码中的表达、以及与领域专家的交流,都源自同一领域模型。

    在我们的场景中,它本质上是一个 Markdown 文件——包含你和 AI 共同理解的术语列表。你真正聚焦这些术语,确保它们与实际含义一致,并在代码中频繁使用。当你谈论代码时,当你与领域专家交流时,或者在我们的情况中——与 AI 对话时。

    所以我开发了一个技能:通用语言技能。简单扫描代码库,识别术语,然后生成一个 Markdown 文件——包含大量术语的 Markdown 表格。然后我将其传递给 AI。我也能阅读它。我甚至一直保持它打开,在与 AI 对话和规划时。

    通过阅读 AI 的思考轨迹,我发现它不仅提升了规划效率,还让 AI 以更简洁的方式思考,实际上使实现更贴近原计划。

    这绝对是个强力工具。效果惊人。

    与 AI 建立共享语言。


    失败模式 #3:代码无法运行

    假设你已与 AI 达成共识,清楚自己要构建的目标,AI 已正确构建——但它无法运行。运行效果不佳。

    显然我们可以改进反馈循环:

    • 使用静态类型。 如果你不使用 TypeScript,那太疯狂了。
    • 给 LLM 访问浏览器的能力。 如果你在开发前端应用,绝对需要让它能查看环境。
    • 自动化测试。 显然你也需要这个。

    但我注意到一个问题:即使有这些反馈循环,语言模型并没有很好地利用它们。它并没有像经验丰富的开发者那样充分利用反馈循环。它所做的往往是同时做太多事情——生成大量代码,然后才想"哦,我应该进行类型检查",或者"或许应该为这部分写测试"。

    这在《实用程序员》中被描述为 "超出行车灯范围"——本质上是行驶过快。因为反馈速度就是你的限速。这意味着你应该边写代码边测试,采取小步谨慎推进。而 AI 默认在这方面表现很差。

    所以,第三个技能是 TDD(测试驱动开发)。你应该使用测试驱动开发,因为 TDD 迫使语言模型采取小步操作:先编写测试用例,让测试通过,然后重构代码使其更优雅并考虑设计。

    但问题在于,测试本身非常困难。测试向来都很困难。原因在于需要做出大量不同决策:需要确定测试单元的大小,需要决定如何模拟,需要确定要测试哪些行为。所有这些决策相互关联。如果你测试一个大单元,比如整个庞大应用,可能会非常不稳定,可能不需要测试太多行为。如果你只测试一个小单元,需要模拟很多东西。这些都是相互关联的。

    多年来,我的整个开发生涯都在思考这个问题。我们发现:好的代码库更容易测试。

    没错,我们现在开始回到代码的重要性。代码库越好,反馈循环就越有效,因为你能给语言模型提供更好的反馈,它就能生成更好的代码。


    深度模块 vs. 浅层模块

    于是我开始思考:一个好的代码库应该是什么样的?可测试的代码库应该具备哪些特征?

    我们去找 John Ousterhout。他谈到代码库中应有深度模块(Deep Modules),而不是浅层模块。不是那种包含大量函数的模块。应有相对较少的大型深度模块,搭配简单接口。

    快速对比一下:

    • 深度模块: 大量功能隐藏在简单接口背后。隐藏复杂性。你可以查看深度模块内部,如果需要的话,但不需要这样做。只需使用接口即可。
    • 浅层模块: 功能较少,复杂接口。

    代码库中的浅层模块看起来像许多不同微小的模块块。AI 需要遍历和导航这些模块,这对 AI 探索来说非常困难。当你遇到这样的代码库时——讽刺的是,AI 其实很擅长创建这类代码库——会导致 AI 无法理解代码逻辑。它会尝试探索代码,但由于结构混乱,充斥着浅层模块,可能无法及时找到正确模块,或无法理清所有依赖关系。

    而充满深度模块的代码库呢?同样是这些代码,但结构被边界划分清晰,顶部有简单的接口。这些接口需要精心设计并严格控制,否则可能会破坏设计。但实现部分可以部分交给 AI。

    我掌握了一个"优化代码架构"的技能。事实证明实现起来相当复杂,但这是一系列可重复使用的步骤:探索代码库,寻找机会,在相关代码处将所有内容封装在深层模块中。

    这是一个可测试的代码库,因为代码边界非常简单——在接口处进行测试,通过该接口验证,即可投入使用。这是一个鼓励 TDD 的代码库。


    失败模式 #4:大脑跟不上节奏

    假设你的反馈循环正常运作,事情开始运转,你能比以往更快交付代码。但大脑跟不上节奏。

    如果你在开发生涯中感到前所未有的疲惫——我也是。真是累人。

    我认为浅层模块的代码库实际上让大脑更难处理。你和 AI 都需要记住所有信息。而深度模块对你阅读和理解代码更简单。

    同时,你可以将这些深层模块视为灰盒。你可以说:我只需设计接口,不必过多担心或审查实现细节。这在应用中非关键部分显然可行(在金融等关键场景中可能不行)。但在应用的许多模块中,无需过多考虑实现细节,只要模块外部有可测试边界,只要理解其目的并从外部设计。

    这确实拯救了我的大脑。 因为我只需说:"好的,AI,让我处理内部细节。这个大块,我只需从外部测试并验证。"

    设计接口,委托实现细节。


    每天投资于系统设计

    但这意味着每当我们修改代码时,每当我们进行规划时,我们需要考虑并意识到应用程序中的模块。我们需要非常熟悉这些模块。这必须成为我们的通用语言,我们也需要将其融入规划能力中。

    所以我在 PRD 中编写需求时,会明确说明模块变更及模块内的接口是如何被修改的。我时刻都在思考这些。

    这源于 Kent Beck 的理念:每天投资于系统设计。

    这才是核心所在。因为"规格到代码"的理念中,我们并未投资于系统设计。我们正在剥离系统设计,我们正在摒弃这些。而我认为这绝对至关重要。


    结语:代码并非廉价

    这是我希望你记住的信息:代码非常重要。

    如果我们认为 AI 是优秀的现场程序员——一种战术型程序员,前线的中尉,进行代码修改——那么你需要更高层的人。你需要进行战略层面的思考。

    而这正是你的职责。

    这需要我们二十年来一直在使用的软件基础技能。


    如果你对这里提到的任何技能感兴趣,请查看 GitHub 仓库 mattpocock/skills。如果你对我的培训课程感兴趣,或任何免费资源,我在 YouTube,我在 Twitter。我也是 AI Hero 的开发者,我有一个你可以订阅的新闻简讯。

    非常感谢你读到这里。希望这能增强你在 AI 时代的信心。

    你确实能产生积极影响。

    Post #2
  • 之前拿 AI 水过一篇类似的笔记

    核心思想

    通过构建一个无风险对冲投资组合来消除标的资产价格的随机性,再利用无套利原理推导出衍生品(如期权)的定价偏微分方程。


    符号定义

    符号 含义
    $ S $ 标的资产(如股票)价格,是随机过程
    $ V(S, t) $ 衍生品(如期权)价格,是 $ S $ 和时间 $ t $ 的函数
    $ \Pi $ 构建的投资组合价值
    $ \mu $ 资产的预期年化收益率(漂移项)
    $ \sigma $ 资产的年化波动率(风险度量)
    $ r $ 无风险利率(常数)

    几何布朗运动(GBM)

    假设资产价格短期内服从几何布朗运动:

    dS=μS dt+σS dz dS = \mu S \, dt + \sigma S \, dz
    • 漂移项:$ \mu S , dt $ 表示确定性增长趋势;
    • 扩散项:$ \sigma S , dz $ 表示由随机冲击引起的波动。
    • 标准维纳过程的微分增量 $ dz $:满足 $ dz \sim \mathcal{N}(0, dt) $

    构建无风险对冲组合

    投资组合构造

    构建一个由1 份衍生品多头和**$ \Delta $ 份标的资产空头**组成的投资组合:

    Π=V−ΔS \Pi = V - \Delta S

    其中,选择对冲比率:

    Δ=∂V∂S \Delta = \frac{\partial V}{\partial S}

    这一选择使得对冲组合对标的资产价格的一阶变动无关。

    组合价值的瞬时变化

    在无穷小时间 $ dt $ 内,组合价值变化为:

    dΠ=dV−Δ dS=dV−∂V∂SdS d\Pi = dV - \Delta \, dS = dV - \frac{\partial V}{\partial S} dS

    伊藤引理(Itô’s Lemma)

    由于 $ V = V(S, t) $,且 $ S $ 是随机过程,需使用伊藤引理展开 $ dV $:

    dV=∂V∂tdt+∂V∂SdS+12∂2V∂S2(dS)2 dV = \frac{\partial V}{\partial t} dt + \frac{\partial V}{\partial S} dS + \frac{1}{2} \frac{\partial^2 V}{\partial S^2} (dS)^2

    计算 $ (dS)^2 $

    代入 $ dS = \mu S dt + \sigma S dz $,得:

    (dS)2=(μSdt+σSdz)2=μ2S2(dt)2+2μσS2dt dz+σ2S2(dz)2 (dS)^2 = (\mu S dt + \sigma S dz)^2 = \mu^2 S^2 (dt)^2 + 2\mu\sigma S^2 dt\,dz + \sigma^2 S^2 (dz)^2

    根据伊藤微积分规则(当 $ dt \to 0 $):

    • $ (dt)^2 \to 0 $
    • $ dt \cdot dz \to 0 $
    • $ (dz)^2 = dt $

    因此:

    (dS)2≈σ2S2 dt (dS)^2 \approx \sigma^2 S^2 \, dt

    代入伊藤引理

    dV=∂V∂tdt+∂V∂S(μSdt+σSdz)+12∂2V∂S2σ2S2dt dV = \frac{\partial V}{\partial t} dt + \frac{\partial V}{\partial S} (\mu S dt + \sigma S dz) + \frac{1}{2} \frac{\partial^2 V}{\partial S^2} \sigma^2 S^2 dt

    整理得:

    dV=(∂V∂t+μS∂V∂S+12σ2S2∂2V∂S2)dt+σS∂V∂Sdz dV = \left( \frac{\partial V}{\partial t} + \mu S \frac{\partial V}{\partial S} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} \right) dt + \sigma S \frac{\partial V}{\partial S} dz

    代入对冲组合并消除随机性

    将 $ dV $ 和 $ dS $ 代入 $ d\Pi = dV - \frac{\partial V}{\partial S} dS $:

    dΠ=[(∂V∂t+μS∂V∂S+12σ2S2∂2V∂S2)dt+σS∂V∂Sdz]−∂V∂S(μSdt+σSdz) d\Pi = \left[ \left( \frac{\partial V}{\partial t} + \mu S \frac{\partial V}{\partial S} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} \right) dt + \sigma S \frac{\partial V}{\partial S} dz \right] - \frac{\partial V}{\partial S} (\mu S dt + \sigma S dz)

    展开后:

    • 随机项(含 $ dz $):

      σS∂V∂Sdz−∂V∂SσSdz=0 \sigma S \frac{\partial V}{\partial S} dz - \frac{\partial V}{\partial S} \sigma S dz = 0

    • 确定性项(含 $ dt $):

      (∂V∂t+12σ2S2∂2V∂S2)dt \left( \frac{\partial V}{\partial t} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} \right) dt

    因此,对冲后的组合无随机性:

    dΠ=(∂V∂t+12σ2S2∂2V∂S2)dt d\Pi = \left( \frac{\partial V}{\partial t} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} \right) dt

    无套利原理与 Black-Scholes PDE

    由于 $ \Pi $ 是无风险组合,其收益率必须等于无风险利率 $ r $,否则存在套利机会。

    无风险资产的增长满足:

    dΠ=rΠ dt d\Pi = r \Pi \, dt

    将两种表达式联立:

    (∂V∂t+12σ2S2∂2V∂S2)dt=r(V−S∂V∂S)dt \left( \frac{\partial V}{\partial t} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} \right) dt = r \left( V - S \frac{\partial V}{\partial S} \right) dt

    两边除以 $ dt $,整理得 Black-Scholes 偏微分方程(PDE):

    ∂V∂t+rS∂V∂S+12σ2S2∂2V∂S2−rV=0 \frac{\partial V}{\partial t} + r S \frac{\partial V}{\partial S} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} - rV = 0

    希腊字母

    • **Delta ($ \Delta )∗∗:)**: \frac{\partial V}{\partial S} $,对冲比率;
    • **Gamma ($ \Gamma )∗∗:)**: \frac{\partial^2 V}{\partial S^2} $,Delta 对价格的敏感度;
    • **Theta ($ \Theta )∗∗:)**: \frac{\partial V}{\partial t} $,时间衰减。

    PDE 求解

    变量分类

    在实际应用中,我们将 Black-Scholes PDE 中的变量分为三类:

    可观测的输入

    这些是市场数据或合约条款,可以直接获取:

    符号 含义 说明
    $ S $ 标的资产现价 股票等标的资产的当前市场价格
    $ K $ 行权价(Strike Price) 期权合约约定的执行价格
    $ T $ 到期日(Expiry Date) 通常使用剩余到期时间 $ \tau = T - t $
    $ r $ 无风险利率(Risk-Free Rate) 与期权期限匹配的国债收益率
    $ q $ 股息率(Dividend Yield) 若标的资产支付股息,则需引入

    不可直接观测的输入

    符号 含义
    $ \sigma $ 波动率(Volatility)
    • 估计方法:
      • 历史波动率:基于过去价格收益率的标准差,反映历史波动,未必代表未来。
      • 隐含波动率(Implied Volatility, IV):市场标准做法。将市场实际交易的期权价格 $ V_{\text{market}} $ 与其他已知参数代入 Black-Scholes 公式,反向求解出使模型价格等于市场价格的 $ \sigma $。

        即:求解 $ V_{\text{BS}}(S, K, T, r, \sigma) = V_{\text{market}} $ 中的 $ \sigma $

    最终要求解的 V

    符号 含义 目标
    $ V(S, t) $ 衍生品价格(Derivative Price) 理论公允价值,即模型输出

    求解目标:

    找到一个具体的定价函数 $ V(S, t) $,使其满足该 PDE 以及特定衍生品的边界条件与终值条件。

    该函数 $ V(S, t) $ 的作用是:

    给定任意时刻 $ t \lt T $ 和任意标的资产价格 $ S $,输出该衍生品的理论公允价值。

    ∂V∂t+rS∂V∂S+12σ2S2∂2V∂S2−rV=0 \frac{\partial V}{\partial t} + r S \frac{\partial V}{\partial S} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} - rV = 0

    解析解

    • 适用对象:欧式期权等结构简单、边界条件明确的衍生品。
    • 方法:通过变量代换(如 $ x = \ln S $, $ \tau = T - t $)将 PDE 转化为热传导方程求解。
    • 优点:结果精确、计算极快。
    • 缺点:无法处理美式期权(因提前行权导致自由边界问题)。

    对于欧式看涨期权,终值条件为:

    V(S,T)=max⁡(S−K,0) V(S, T) = \max(S - K, 0)

    求解 PDE 得到著名的 Black-Scholes 定价公式:

    C(S,t)=SN(d1)−Ke−r(T−t)N(d2) C(S, t) = S N(d_1) - K e^{-r(T - t)} N(d_2)

    其中:

    d1=ln⁡(S/K)+(r+12σ2)(T−t)σT−t,d2=d1−σT−t d_1 = \frac{\ln(S/K) + (r + \frac{1}{2}\sigma^2)(T - t)}{\sigma \sqrt{T - t}}, \quad d_2 = d_1 - \sigma \sqrt{T - t}

    $ N(\cdot) $ 为标准正态分布的累积分布函数。

    数值方法

    当解析解不存在时,使用数值近似。

    1. 有限差分法(Finite Difference Method, FDM)

    • 核心思想:将连续的 $ (S, t) $ 平面离散化为网格,用差商近似偏导数。
      ∂V∂t≈Vin+1−VinΔt,∂2V∂S2≈Vi+1n−2Vin+Vi−1n(ΔS)2 \frac{\partial V}{\partial t} \approx \frac{V^{n+1}_i - V^n_i}{\Delta t}, \quad \frac{\partial^2 V}{\partial S^2} \approx \frac{V^n_{i+1} - 2V^n_i + V^n_{i-1}}{(\Delta S)^2}
    • 求解方向:从到期日 $ t = T $(已知终值)向后倒推至当前时刻 $ t = 0 $。
    • 优点:通用性强,可处理美式期权(通过在每步判断是否行权)、时变参数等。
    • 缺点:实现较复杂,计算量较大。

    2. 二叉树/三叉树模型(Binomial/Trinomial Tree)

    • 核心思想:对标的资产价格路径进行离散化建模。
      • 每步:$ S \to uS $(上涨)或 $ S \to dS $(下跌),其中 $ u = e^{\sigma \sqrt{\Delta t}}, d = 1/u $
    • 定价过程:
      1. 构建价格树至到期日;
      2. 在叶节点计算期权 payoff;
      3. 从后往前,按风险中性概率折现:
        V=e−rΔt[pVup+(1−p)Vdown] V = e^{-r \Delta t} [p V_{\text{up}} + (1 - p) V_{\text{down}}]

        其中 $ p = \frac{e^{r \Delta t} - d}{u - d} $
    • 优点:直观、天然支持美式期权(每节点比较行权价值与持有价值)。
    • 缺点:收敛速度慢,高维问题效率低。

    3. 蒙特卡洛模拟(Monte Carlo Simulation)

    • 核心思想:基于风险中性定价原理,不直接解 PDE,而是模拟未来路径。
    • 步骤:
      1. 在风险中性测度下模拟 $ N $ 条资产价格路径:
        St+Δt=Stexp⁡((r−12σ2)Δt+σΔt ϵ),ϵ∼N(0,1) S_{t+\Delta t} = S_t \exp\left( (r - \frac{1}{2}\sigma^2)\Delta t + \sigma \sqrt{\Delta t} \, \epsilon \right), \quad \epsilon \sim \mathcal{N}(0,1)
      2. 计算每条路径到期收益 $ \text{Payoff}_i $
      3. 估算价格:
        V≈e−r(T−t)⋅1N∑i=1NPayoffi V \approx e^{-r(T - t)} \cdot \frac{1}{N} \sum_{i=1}^N \text{Payoff}_i
    • 优点:极其灵活,适用于路径依赖期权(如亚式、回望、障碍期权)。
    • 缺点:
      • 无法直接处理美式期权(因需最优停止决策);
      • 收敛速度慢(误差 $ \propto 1/\sqrt{N} $), 需大量模拟路径以保证精度。
    Post #4 ❤️ 1 like
  • 本·格雷厄姆

    1. 股票的本质是公司所有权:股票不是短期交易的筹码,而是公司所有权的法定证明。投资的根本目的,是在经济持续增长的过程中保持和增长自身的“购买力”。
    2. 正确利用“市场先生”:市场是由追求短期获利的人组成的,情绪化且神经质。它提供的价格往往大幅偏离真实价值。对价值投资者而言,市场提供的是“买卖的服务”,而不是“价值的指导”。
    3. 坚守“安全边际”:因为未来不可预测,投资者必须以足够低的价格买入。充足的安全边际不仅能抵御风险,还能让投资者在漫长的熊市中保持安心,坚持长期持有。

    巴菲特与芒格

    1. 投资优质公司并坚守“能力圈”:长期的超额回报来自于优秀公司持续创造的内在价值。投资者必须明确自己的“能力圈”边界,只投资自己能真正理解的、资本回报率高于平均水平的优质公司,并长期持有。

    芒格

    1. “在有鱼的地方钓鱼”(强调选择与独特优势):投资者不需要搞懂所有宏观经济或研究所有公司,关键是找到那个“有鱼的湖”——即竞争不充分、存在错误定价且自己深度了解的领域。通过建立独特的认知优势(如钓鱼向导 Lerer 的独家知识),避开过度竞争,获取丰厚回报。

    李录

    1. 财富的本质与时代红利:基于对文明范式变化的总结,财富的本质是“经济体中的购买力占比”。因此,价值投资的终极目标是:在最具活力的经济体中,持有最具活力的公司的股份,从而顺应时代趋势,实现财富的长期保持与增长。
    Post #5 ❤️ 1 like
  • 我们来回顾一下价值投资的起源。价值投资正
    是诞生于整个经济和宏观环境极度动荡、充满困惑的时期。最早完整阐述价值投资理念的
    人是本·格雷厄姆(Ben Graham),也就是巴菲特的老师。那么格雷厄姆是什么时候开始
    理解和实践价值投资的?他最早从 1926 年开始投资,前三年中,他与很多投资者一样,
    经历了“咆哮的二十年代”(Roaring Twenties),期间也做了很多投机操作。然而,
    1929 至 1932 年的大萧条时期,他的投资合伙企业的帐面价值损失高达 70%。痛定思痛,
    他才开始真正实践价值投资,并于 1932-1935 年成功弥补了之前的亏损。1936 年,他创
    立了一个新的封闭式基金(closed fund),运营至 1956 年结束,二十年间实现了非凡的
    回报。期间,他于 1949 年出版了《聪明的投资者》,首次完整地阐述了价值投资的最重
    要的三个理念

    价值投资的奠基人格雷厄姆,正是在宏观经济面临巨大挑战时发现了价值投资的方
    法论。他在那个时代所经历的比我们今天面对的挑战要困难得多。当时,美国的失业率高
    达 25%,整个经济体萎缩了约三分之一到一半
    ,具体比例取决于不同的评估方法。人们普
    遍感到前途渺茫,世界仿佛快走向末日。等他终于回本,开始新的基金时,世界又迅速陷
    入一场法西斯发动的全球性战争,这场战争最终导致上亿人死亡,数亿人受伤,世界上大
    部分的工业体系被彻底摧毁
    。在这样的时代背景下,他创造了卓越的投资业绩。

    另一位对价值投资的理论和实践做出巨大贡献的是经济学家凯恩斯。很多人都熟悉
    凯恩斯的宏观经济理论,以及他对战后布雷顿森林体系和全球金融体系设计的贡献,但是
    很少有人知道凯恩斯也是一位优秀的价值投资人。从 1921 年到他 1946 年离世,凯恩斯管
    理着剑桥大学最重要的国王学院的捐赠基金,25 年间积累了卓越的投资业绩。凯恩斯早
    期也曾有过很多投机,但是在不断的经验教训中,他开始总结出价值投资的核心理念。凯
    恩斯与格雷厄姆的事业轨迹高度重合,都经历了“咆哮的二十年代”、大萧条和世界大
    战。不过,与格雷厄姆不同的是,凯恩斯所在的英国在二战期间处于战火前线,而格雷厄
    姆所在的美国则处于战争的大后方,因此凯恩斯在这样的背景下创造出的业绩更具意义。

    还有一位约翰·邓普顿(John Templeton),他对价值投资以及把价值投资推广到
    其他国家起到了重要作用。1939 年,正值战争期间,许多美国股票跌破一美元,邓普顿
    秉持“便宜就是硬道理”的原则,将当时在美国股市中所有低于一美元的股票各买 100 股,
    共投入一万美元。四年后,当他卖出时,104 只股票中有 100 只都取得了大幅上涨。1954
    年,他创建了邓普顿基金(Templeton Fund),开始将价值投资理念推广到很多其他国家。
    1992,这只基金经过 38 年的发展,历经市场的各种变化,取得了十几倍的收益

    我(李录)在 1997 年创建了喜马拉雅基金。在此之前,我在 1993 年买了第一只股票,就是
    从买便宜的公司开始。在投资便宜公司的过程中,逐步建立起自己的能力圈,并从寻找便
    宜的公司慢慢过渡到寻找优质且便宜的公司。1997 年,基金成立之初,我就经历了亚洲
    金融危机
    。过去这几年中国市场经历了资本与资产的大幅回撤,许多人都遭遇了房地产、
    股票和其他证券价格的下跌。然而这轮下跌的程度与当年的亚洲金融危机相比,依然不可
    同日而语。1997-1998 年亚洲金融危机期间,亚洲主要国家的市场普遍下跌 70% 以上,最
    惨烈的甚至跌了 90% 以上
    。我们的基金也同样面临了巨大的挑战,出现了比较大的波动,
    但那几年的业绩总和恰恰是我们收益很高的一段时期,那时的市场可谓遍地黄金。

    Post #4 ❤️ 1 like
  • 举个例子,在农业文明时代,财富就是土地和人口。那么,今天土地还是不是财
    富?回顾整个世界历史,尤其是在欧洲,封建体系持续了数百上千年,很多国家的封建制
    度都因革命而瓦解了,除了一个例外——英国。这几百年来,英国没有发生大的革命,许
    多原本拥有土地的贵族至今还保留着很多土地和宏伟的城堡
    。在过去,他们是最富有的人。
    然而,今天这些贵族还富有吗?答案是否定的。大多数仅拥有土地和城堡的贵族已经不再
    富有,甚至变得相对贫穷。只有少数贵族依然富裕,是因为他们有其他投资,而不是仅仅
    依赖原有的土地和城堡。
    为什么会这样?因为维持土地和城堡需要大量人力。一个大型城堡动辄需要几十甚
    至上百的佣人来维持运转。然而,过去几百年间,人的价值发生了巨大的变化,导致今天
    的贵族已无法负担如此多的佣人。同样地,土地也需要雇人耕作,人的价值增加了,土地
    本身的产出增加相对比较少,乡间房子价值的增加也很少,维修成本反而很高。所以,这
    些没有转化成工业商业用途的土地城堡成了贵族们的负担,而没有成为财产。今天,仍能
    维持土地和城堡的英国贵族,大多是通过将城堡开放给公众参观来获取收入。例如,将城
    堡当作公园开放,收取每人五英镑的门票费用。我相信在座有很多人到英国旅游,参观过
    类似的城堡,甚至还有人租用城堡举办生日宴会、公司晚会、婚礼等等。这是一个土地和
    人口的相对价值变化的例子。

    Post #3 ❤️ 1 like
  • Post #2 ❤️ 1 like
  • 真得吃炖菜了,炖菜…适合这种温度。之前在家过了个生日,在一个小馆子里吃了一顿饭。我最初觉得那个饭馆估计不太好吃,就连材料也是临时买的!不过后来端上桌后有点惊艳的,是炖的牛尾。该说不说还挺好吃,配上锅盔,汤是挺油的,牛尾富含胶质。蘸汤吃很香。但是牛尾终归是骨头多,要啃肉需要一番功夫。

    Post #268
  • 天气冷了,开始想吃一些高热量的东西。感觉都能穿羽绒服了…怕感冒,这种天气不注意就容易得。现在还好,等供暖之后,湿度低,咽喉容易受到攻击。

    Post #267