MoreRSS

site iconDeppWang | 德普王修改

男|程序员|爱折腾|工具控|五笔 er|麻将爱好者
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

DeppWang | 德普王的 RSS 预览

从买鸡蛋到买菜,我对条马的一些观察

2026-11-12 08:29:50

我平时买菜,更多还是去小区附近专门卖菜的蔬菜店。但条马也是我会去的一个地方,最开始主要去买鸡蛋,后来买雪糕、零食,现在又会买一些蔬菜、水果和肉。买的东西慢慢变多了,我觉得这也能看出条马这种超市为什么能在小区附近做起来。

最开始去条马买鸡蛋,是因为价格比较便宜,看着也比较干净卫生。鸡蛋是平时经常要买的东西,价格合适,买着也还可以,下次需要的时候自然就会想到它。雪糕和一些小零食也是,其他地方也能买到,但条马有些会稍微便宜一点。

那时候,我这里的条马品类还比较少,主要是食品饮料、日用品这些,后来才慢慢加上蔬菜、水果和肉。现在我去条马,反而更多是买这些东西。

比如它的土豆还可以。玉米有时候会有黄玉米,还不是水果玉米,其他地方有时候找不到这样的,我就会去条马看看。对我来说,这种具体的选品还是很有用的。我并不需要把所有菜都放在一家店买,但知道它有几样东西值得买,就有了再去的理由。

肉也是。它有些五花肉切得比较小块,肥瘦分层比较均匀,比较符合我想买的样子。排骨的价格也还合适,现在又有兔肉、鸡肉、牛肉,选择比以前多了。如果在其他卖肉的地方没买到合适的新鲜肉,条马也可以是一个备选。

所以我觉得,条马的选品是有一些竞争力的。先通过鸡蛋这些经常要买、价格又合适的商品,让人愿意再来,后面品类增加了,顾客也会慢慢尝试其他东西。至少在我这里,从买鸡蛋到买蔬菜和肉,就是这么一个过程。

当然,它开在居民楼附近也很重要。重庆有永辉、新世纪、盒马这些超市,也有菜市场,但小区附近这种小超市的空间,还是没有被全部挤压掉。平时就买几个鸡蛋、一点菜、一小块肉,离家近还是方便很多。

有的人更在意购物环境,有的人希望一次买齐,也有的小区附近没有很合适的菜市场、蔬菜店或者水果店,大家会有不同的选择。我自己还是偏向小区附近的蔬菜店,但也不妨碍我去条马买几样合适的东西。它只要能满足其中一部分需求,就有生存空间。

条马给我的另一个感觉,是门面和商品摆放看着比较干净。同样是买鸡蛋、买肉,价格合适,环境又还可以,就会比较愿意进去。

当然,看着干净和食品安全还是两回事。条马官网提到,它通过第三方实验室持续检测产品,检测项目包括微生物、农药残留、兽药残留等。这是它对产品质量控制的公开表述,不能理解为蔬菜水果不打农药或者零农残。

我对国内的食品安全还是有一些顾虑,平时买菜也会在意这些问题。如果条马能把这些检测和质量控制做好,在价格便宜的情况下,也能保证基本的食品安全,那我觉得还是不错的,买着也会更放心一点。

至于它为什么能把价格做下来,就涉及背后的经营方式了。

我原来理解条马应该是直营,而不是加盟。《第三只眼看零售》2026 年 6 月的报道也提到,它旗下门店均为直营,并且采用裸价采购,不收扣点、促销费、陈列费、条码费等费用,通过持续的订单获得供应商支持。

我的理解是,连锁门店统一采购,能把分散的需求集中起来,跟供应商谈合作时会更有优势。如果采购和配送环节也能做得更省,就有条件把一部分商品卖得便宜一点。当然,我没有它的采购账,不能说它每一样商品的成本都比其他超市低,但我平时买的这些东西,确实有一些价格优势。

这也是我觉得它和一些主要卖零食、饮料的折扣店有所不同的地方。零食、饮料大家都有,同样的商品很容易比价,竞争也会比较累。加上蔬菜、水果和肉以后,它能满足的需求更多,也更贴近小区居民每天做饭的需要。我现在去条马买的东西,就已经不只是最开始的鸡蛋和零食了。

不过,品类变多,经营也会更难。零食可以放久一点,蔬菜、水果和肉就要考虑新鲜程度、卖不完怎么办。前面那篇报道也提到,条马增加生鲜后,需要面对更高的损耗和更复杂的门店管理。能把东西采购回来,和能持续把这些东西卖好,还是有差别的。

我也会把条马的出现,放到这几年大家更在意价格的背景下看。我的感觉是,现在买东西会更愿意比较一下,同样的东西,能便宜一点当然更好,但也希望品质和购物环境过得去。条马提供的这几样东西,刚好比较符合这样的要求。

所以我觉得,任何时候都还是有商业机会的,只是要跟着时代的变化走。现在大家更在意价格,又希望东西买着合适、环境也还可以,条马就抓住了这样的需求。生意整体难做,也还是能从这些变化里找到机会。

但看到这个机会,和有能力把它做出来,又是两回事。普通人也许可以开一家小店,但要把采购、仓储、配送、选址和门店管理连在一起,再做成连锁,所需要的钱、团队和供应商资源就多得多。我觉得这也是资本和有资源整合能力的团队,更有机会做这类生意的原因。它们能投入资源,把一个小区里的需求做成很多家店的生意,同时也要承担品类增加、门店扩张带来的经营压力。

我对条马的观察,还是从自己买的那些东西出发。鸡蛋便宜、黄玉米有时候别处不好找、五花肉的小块和分层比较合适,这些都不是什么很大的事,但会让我下次买东西时继续想到它。条马后面能做多大,我现在还说不好,但它为什么能成为我在小区附近的蔬菜店之外的一个选择,我觉得原因就在这些地方。

人民币兑美元创四年新高,汇率到底是怎么来的

2026-11-11 09:48:15

人民币与美元兑换示意

看了一下人民币兑美元的走势,现在 1 美元大概可以换 6.67 元人民币,近期美元兑人民币还创下了四年多来的最低位。换个说法,就是人民币兑美元到了近四年最值钱的时候。同样买一件以美元计价的东西,需要花的人民币少了。近期行情

我首先想到的是,这种情况下,平时就有美元支出的人,应该可以省一点钱。人在国内也有这样的场景,比如给美区 Apple 账户充值,留着买 App、支付订阅;或者用国际信用卡支付美元计价的国外服务,像 Cloudflare 的域名、一些国外软件和会员订阅。已经有去美国旅游计划的人,用美元支付酒店、购物等费用,折合人民币也会少一些。域名报价

这些场景的共同点,就是本来要花同样多的美元,现在需要的人民币少了。假设一项服务收 100 美元,按 7.2 算需要 720 元,按 6.67 算就是 667 元,差了 53 元。实际付款还要看信用卡或支付渠道的汇率和费用,但在美元价格不变的情况下,人民币升值确实能少花一些钱。

对我来说,后面还会持续订阅,我会考虑分几次给美区 Apple 账户充一点钱,留着后续使用。Apple 账户余额可以用于通过 Apple 结算的 App 和订阅,网站直接扣款的服务则要看自己的付款方式。也不会因为现在便宜,就一下充很多,毕竟以后的汇率可能更低。Apple 的余额使用说明

但接着我又想弄明白,人民币为什么会升值?这个 6.67,到底是怎么来的?

一个比较容易理解的原因是,出口企业收到美元后,需要换成人民币发工资、付国内货款。换汇时,企业把美元卖给银行,银行付给企业人民币,这个动作就是卖美元、买人民币。所以,企业集中把美元换回来,就会增加市场上卖美元的需求。近期的市场报道,也把出口收入和企业换汇列为这轮升值的重要推动因素。相关报道

我接着想,企业把美元换成人民币,为什么就能让人民币升值?大家都来换,是人民币不够换了吗?

可以从换钱时的价格来理解。企业把美元卖给银行,希望换回人民币。如果想卖出的美元增加了,而买美元的需求没有同步增加,一些急着换钱的卖家就可能接受更低的价格。比如原来卖 1 美元能拿到 7 元人民币,后来只能拿到 6.9 元,同样的人民币能买到更多美元,也就是人民币升值了。

当然,市场里还有相反方向的需求。进口企业要买美元付货款,投资者也会因为收益、利率和对未来的判断,在人民币和美元之间作选择。把这些买卖放在一起,才会形成最后的价格。贸易顺差大,意味着有较多出口收入,但企业也可以先把美元存着,什么时候真正拿出来换,同样会影响汇率。

我更想问的是,就算知道有人买、有人卖,最后这个汇率数字是由谁定出来的?我想到股票,开盘前会根据买卖申报形成开盘价,那汇率是不是也有一个类似的过程?

了解下来,要先分清每天公布的「中间价」和交易时不断变化的市场价格。

每个工作日开盘前,参与报价的做市商银行会给中国外汇交易中心报一个价格。交易中心去掉最高、最低报价,再把其余报价加权平均,在央行授权下,于早上 9 点 15 分公布当天的中间价。权重会参考各家银行的交易量和报价情况等因素。官方形成机制

加权平均可以理解为,各家报价对最后结果的影响有大有小。用两个报价举个简化的例子,假设参与计算的报价分别是 6.70 和 6.72,权重分别为 60% 和 40%,结果就是 6.70 × 60% + 6.72 × 40% = 6.708。权重更大的那个报价,对结果影响更大。这里的数字只是演示,实际计算时,交易中心会综合交易量和报价情况等因素确定权重。

但这些银行的报价又从哪里来?说是参考前一天收盘价、市场供求和国际汇率变化,我还是会想,供求总得有个依据吧,银行怎么知道今天有多少人要买、多少人要卖?

可以这样理解,银行有昨天的交易记录,也有自己收到的新订单。比如一家企业提前联系银行,说明天要把一笔美元换成人民币,另一家企业要买美元付货款。即使还没成交,银行也已经掌握了一部分需求。再加上自己手里持有多少美元、海外市场在境内收盘后发生了什么变化,就有了判断的依据。

每家银行看到的信息和判断会有差别,所以报出来的价格也会有差别。我原来一直在想成交量的作用,现在理解,成交量说明的是换了多少钱,要看价格往哪个方向走,还得看双方愿意按什么价格买卖。同样大的成交量,可以发生在上涨时,也可以发生在下跌时。

至于开盘以后,银行间还会继续报价和成交。急着卖美元的一方可能接受更低的价格,急着买美元的一方也可能愿意出更高的价格,行情就跟着变化。境内银行间美元兑人民币的成交价,可以在当天中间价上下 2% 的范围内浮动。交易规则


这也回答了我另一个问题,汇率是一天变一次,还是实时变化?每天公布一次的是中间价,市场交易价格在交易时段内会不断变化。我截图里看到的 6.67,标的是来自 Morningstar 的 USD/CNY 市场参考汇率,也要看它的更新时间和数据口径。

我们平时去银行换钱,则要看银行当时给客户的价格。银行可以根据市场供求自主报价,所以不同银行、不同时间,实际能换到的金额也可能不同。我拿人民币买美元,要看银行的美元卖出价;把美元换回人民币,要看银行的美元买入价。「买入、卖出」是站在银行的角度说的。银行报价规则

参与前面报价的做市商,也只是银行中的一部分。查到适用于 2025—2026 年的官方名单有 25 家,工商银行、招商银行都在里面。能够给客户办理换汇,和成为需要持续向市场报买卖价格的做市商,资格要求也有区别。官方名单

对我来说,眼下比较实际的还是那些本来就会有的美元支出。后面会持续使用的订阅,可以考虑分批充一点余额,具体省多少,就拿实际支付的人民币金额和以前比。汇率已经降到了近几年的低位,我会考虑利用一下,但也给以后继续变化留一点余地。

大模型科普系列(二):什么是解嵌入矩阵

2026-11-10 09:36:45

上一篇写了什么是词向量,文字可以通过嵌入表变成一串数字,交给模型计算。这一篇接着写另一头:模型计算完以后,怎么决定接下来输出哪个 token?

这里会用到「解嵌入矩阵」。先简单说,它是一张用来打分的权重表,把模型最后算出来的一个向量,变成词表里每个 token 各自的分数。后面再把分数转成概率,选择下一个 token。

我一开始不太理解,既然嵌入表已经存着每个 token 对应的向量,那模型算出一个向量后,反过来找到对应的文字不就行了吗?为什么还要有解嵌入这一步?

要弄清楚这个问题,得先看交给解嵌入矩阵的向量,到底是什么。

比如输入「我想喝一杯」,模型要预测后面接什么。为了方便说明,假设最后一个 token 是「杯」。它刚进入模型时,会从嵌入表里查出一个初始向量,这时还没有结合当前这句话的上下文。

接下来,这些向量会经过注意力层、前馈网络等很多层计算。这篇先不展开它们怎么算,只看结果:「杯」这个位置的向量会不断更新,把前面文字中与预测有关的信息融进去。最后用来预测的,是这个位置经过所有中间层处理后的向量。

所以,3Blue1Brown 的讲解里说用最后一个位置的向量预测下一个 token,并不意味着只看最后一个词。位置还是最后那个位置,但向量里的数字已经变了,它包含的信息也不再只有「杯」这个 token。

下面把这个更新后的向量称为「上下文向量」,方便和最初查出来的词向量区分。它不是模型额外生成的另一个东西。

这个上下文向量,不需要恰好等于嵌入表里某个 token 的向量。

可以拿二维空间想象一下。假设嵌入表里只有三个向量,分别在 (1, 0)、(0, 1)、(1, 1),但二维空间显然不止这三个点。中间层完全可以算出 [2, 3],它仍然是一个正常的二维向量,只是没有哪个 token 的初始向量恰好等于它。

维度也不需要因为融入了上下文就变多。沿用上一篇的 GPT-3 例子,初始 token 向量是 12,288 维,送到解嵌入这一步的向量也是 12,288 维。中间层改变的是里面的数字。

这时,模型还没有输出几个候选 token,也没有给所有 token 算好分数。它手里只有一个用于预测的向量。解嵌入矩阵接下来做的,就是拿这个向量,给词表里的每个 token 打分。

最后一个位置的向量经过解嵌入矩阵得到各 token 的分数,再通过 softmax 转成概率

图:3Blue1Brown,原文。下方黄色框是最后一个位置处理后的向量,黄色箭头把它送去与左侧的解嵌入矩阵相乘;中间得到各 token 的分数,右侧再转成概率。图中的英文候选词来自原作者的例子。

用一个小例子走一遍会更清楚。假设词表只有「茶」「水」「咖啡」三个 token,上下文向量只有两个数字,前面的网络算出了 [2, 3]。下面的数字都只是演示,不是真实模型的权重,也不代表这些中文词实际都会被分成单个 token。

解嵌入矩阵为每个 token 准备了一组输出权重,把它们按行放在一起,就是这样一张表:

候选 token 第一个权重 第二个权重
茶 1 0
水 0 1
咖啡 1 1

现在拿 [2, 3],分别和每一行做点乘。点乘听起来有点抽象,计算其实就是对应位置的数字相乘,再加起来:

候选 token 计算过程 分数
茶 2 × 1 + 3 × 0 2
水 2 × 0 + 3 × 1 3
咖啡 2 × 1 + 3 × 1 5

同一个上下文向量,分别和三组输出权重计算,就得到了三个分数。 矩阵乘法把这些计算放在一起完成,输入的是 [2, 3],输出的是 [2, 3, 5]。

每个分数属于哪个 token,由矩阵的行顺序确定。第一行对应「茶」,第一个分数就是「茶」的分数,不需要算完以后再去找这个分数对应什么文字。

这也回答了我前面的疑问:一个向量为什么可以给那么多 token 打分?因为它可以反复参与计算。词表有多少个 token,矩阵就有多少行,每一行算出一个分数。这里并没有要求上下文向量本身对应某个词。

还有一点我之前也有疑问:模型训练完以后,解嵌入矩阵里的权重通常固定了,那不同上下文怎么会算出不同的分数?

还是用同一张表。假设换了一段上下文,前面的网络算出的向量变成了 [4, -1],这次算出的分数就是:

候选 token 计算过程 分数
茶 4 × 1 + (-1) × 0 4
水 4 × 0 + (-1) × 1 -1
咖啡 4 × 1 + (-1) × 1 3

权重没有变,最高分却从「咖啡」变成了「茶」。原因就是参与计算的上下文向量不同了。

上面两张表把数字直接列出来,是为了看清楚计算。真实模型里的输出权重需要通过训练学出来,前面的网络也在一起训练,让最后得到的向量经过这张矩阵计算后,能给合适的下一个 token 更高的分数。不是随便拿一个向量和一张表相乘,就能预测文字。

也不能把这个过程简单理解成「找离上下文向量最近的词」。两个向量既可以画成空间里的点,也可以画成从原点出发的箭头。点乘算出的分数与它们的方向、长度都有关系,不等于两个点之间的距离。理解这一步,先记住每一行都参与计算、每个 token 都得到一个分数就够了。

接下来才轮到 softmax。前面 [2, 3, 5] 这样的分数,可以大于 1,也可以是负数,还不能直接当概率。softmax 先计算每个分数对应的 e 的次方,再分别除以这些结果的总和,就能得到一组全是正数、加起来等于 1 的概率。

softmax 把左侧的原始分数转换为右侧的概率

图:3Blue1Brown,原文。左边是分数,右边是转换后的概率,显示为 0.00 的项目是四舍五入的结果,不代表概率严格为零。图中使用的是另一组演示数字。

在这个例子里,三个 token 的概率大约是 4.2%、11.4%、84.4%。同一次预测里,分数越高,经过 softmax 后的概率也越高,排名不会改变。后面的生成步骤再根据概率选择一个 token;如果按概率抽取,就不保证每次都选最高的那个。原始 Transformer 论文第 3.4 节也把最后的线性计算与 softmax 分成了这两步。

选出的 token 加到已有文本后面,模型再继续预测后面的 token,文字就这样逐步生成。

回到真实规模,词表有 50,257 个 token、每个输出权重向量有 12,288 个数字,解嵌入矩阵就有 50,257 × 12,288 = 617,558,016 个权重,约 6.18 亿。它输出的是五万多个分数,不是六亿多个候选。这张矩阵也可能与输入端的嵌入表共享权重,共享时不能把同一组参数重复计数;具体模型怎么安排,这篇先不展开。

现在再看解嵌入矩阵,我觉得最需要分清楚的就是:前面的网络算出一个包含上下文信息的向量,解嵌入用它给整张词表打分,softmax 把分数转成概率,最后再选 token。把这几步分开,就比较容易看清它到底在做什么了。

我对 NBA 签约、交易和买断的一些理解

2026-11-09 09:21:24

TD Garden 篮球比赛现场

我一直在看 NBA,虽然不是死忠球迷,但平时还是会关注 NBA 新闻。每年休赛季都有各种签约、各种交易,我觉得这也是 NBA 比较有看头的一点。

先不说场上教练的运筹帷幄,单就球队阵容来说,总经理的工作也很重要。他要考虑球队的整体规划,当前这套阵容到底是准备争冠、重建,还是先维持现状,再根据这个方向去签人、交易。一个球员很强,也不代表球队就一定要把他留下来。

像今年夏天,杰伦·布朗被凯尔特人交易到了 76 人。我看这种交易,会比较关注球队后面的薪资安排。如果保留高薪核心,意味着以后要在普理查德、豪瑟、怀特这些球员之间作取舍,我觉得就得考虑,为了留下一个人,影响其他几个重要球员的去留,到底值不值得。当然,这不等于留下布朗就一定会失去他们,也不能把这笔交易的原因都归到省钱上。

这也是我想写一下自己对 NBA 球队运作的理解的原因。有些事情只看球员的实力,不太好解释,把合同、薪资和选秀权放进来,就比较清楚了。

首先是工资帽。NBA 并不是老板有钱,想给球员开多少工资都行。球队有工资帽,球员的顶薪也有上限。球队超过工资帽后,仍可能按规则续约自家球员,但不能随意签其他球队的自由球员。

再往上,还有奢侈税线、第一土豪线和第二土豪线。简单理解,超过奢侈税线要额外交税,碰到土豪线,还会限制球队签人和交易的办法。这里不是只有「多交点钱」的问题,有的操作即使老板愿意花钱,也做不了。NBA 官方的劳资协议要点区分了这些限制。

我的理解是,这些规则能让各支球队保留一定的竞争机会。大球市有流量、商业机会多,对球星更有吸引力,如果再能无限开高薪,小球市会更难留人。但这些限制也不是只针对大球市,雷霆这样的球队,自己培养的核心都打出来了,也会面对同样的问题。

因为球员越打越好,续约也会越来越贵。顶薪通常跟年资有关,最佳阵容、MVP 等荣誉在符合条件时,也能让球员获得更高的顶薪资格。这个上限按工资帽的比例算,不是按球队实际工资总额算。几名核心的大合同陆续开始执行,球队即使实力很强,继续补强的余地也会变小。NBA 的规则说明列出了顶薪资格和计算方式。

交易也要考虑薪资。比如我要换来一个当季年薪 5,000 万的球员,在需要匹配薪资、允许合并合同的情况下,可以送出年薪 3,000 万和 2,000 万的两个球员,再给对方几个选秀权,让对方愿意成交。

这里球员的工资用于薪资匹配,选秀权是另外的交易筹码。不能说少送出 1,000 万工资,就用两个首轮签来补,选秀权没有这样的工资金额。而且薪资匹配也不要求每笔都完全相等,有些情况允许多接收一点,有空间的球队可以用空间承接差额;交易后超过第一土豪线,则不能多收。双方都要符合各自的规则。

第二土豪线还会限制把几名球员的工资加在一起匹配交易,所以前面两个球员换一个球员的例子,也不能用在所有球队身上。官方交易规则里有这些要求。

另外,匹配通常看当季计入交易的薪资,但接手球队不能只看今年。假如一个球员今年年薪 2,000 万,后面还有两年、每年也拿 2,000 万;另一个球员今年同样拿 2,000 万,但合同马上到期。对接手球队来说,这两份合同承担的负担就不一样。自己明年如果要续约核心,多出来的两年工资,就得提前考虑。

所以到期合同也有价值。有的球队愿意把长期大合同换成几个到期合同,等合同结束,后面就少了一些工资承诺。但如果球队那时仍超过工资帽,也不代表省下多少工资,就能拿同样的钱去签人。

对重建队来说,薪资空间又可以拿来换选秀权。反正未来一两年暂时不急着争冠,可以接手别人想送走的大合同,条件是对方附上选秀权。想调整阵容的球队减轻负担,重建队积累未来的资产。当然,如果是一个很有价值的球星,那可能反过来,是接手方要拿选秀权去换他。

这也就能理解,为什么有些球队会把好球员交易给对手。争冠队想尽快补强,愿意拿未来的选秀权换现在;重建队对眼前战绩没有那么高的要求,更看重后面能选到什么人。重建过程中阵容变弱,和故意输球去争选秀利益,也要分开看。

每队原始配置通常是一枚首轮签和一枚次轮签,交易以后,实际持有的签就可能多一些或者少一些。雷霆在 2019 年交易乔治时,就得到了亚历山大、加里纳利、五枚首轮签和两次首轮互换权。亚历山大后来成长起来了,有些选秀权却还没到兑现的时候,所以就出现了球队已经很强,仍然有未来资产的情况。况且别队的签,也不会因为雷霆自己战绩好就自动靠后。互换权则只是换签的权利,不是额外多一枚签。

如果大合同送不出去,能不能直接裁掉,再把钱拿来签别人?这就涉及保障合同了。

如果剩下的工资有保障,球队把人裁了,通常也还要付钱,继续占工资帽,并不是人不在队里了,这笔负担就没了。非保障或者部分保障的合同,则要看具体条款。NBA 与球员工会的劳资协议规定了这些区别。

买断是双方再谈一次。假设球队还欠球员 3,000 万,球员可以同意放弃 500 万,球队承担其余的 2,500 万,然后让他离队。谈妥后,球员经过澄清期,无队认领,就可以成为自由球员,去和新球队签合同,不用等到原合同到期。

我原来以为买断就是把剩余工资打个折、提前一次性付清,其实不一定一次性支付,得看约定。而且球员没有放弃的那部分工资,原球队通常仍然要承担,也继续影响工资帽。像汤普森与独行侠买断后签约热火,就是球员通过这种方式换了球队。

还有一种是裁员以后使用延伸条款,把占工资帽的负担摊到更多年份。符合条件时,剩余两年的相应薪资可以摊到五年,这样眼前每年的负担小一点,但后面几年也都要继续承担。这里占帽怎么摊,和现金怎么支付,要分开理解。雄鹿裁掉利拉德、使用延伸条款,为签下特纳创造空间,就是这种操作。具体占帽办法见 NBA 的延伸条款说明。

这些也是总经理要算的账。现在多留一个球星,会不会影响后面几个人的续约;为了送走一份合同,值不值得给首轮签;为了今年腾出空间,能不能接受后面几年继续占帽。争冠、重建或者维持现状,决定了球队更愿意付出什么。休赛季看那些签约和交易,我觉得有意思的地方也在这里。

从中期选举说起,理解美国国会、众议院和参议院

2026-11-06 08:27:07

看这次美国中期选举的报道,说伊朗战争、油价和物价上涨让选民越来越不满,特朗普所在的共和党这次输得很彻底。民主党拿下了下一届国会的两院多数,连一些长期由共和党占据的席位也丢了。但我想弄明白,这个「输得很彻底」具体是什么意思?失去这些席位,对特朗普到底有什么影响?我虽然知道美国有三权分立,但对国会、众议院和参议院的关系,还有它们怎么选、有什么权力,其实没有弄得很清楚。所以查了一些资料,写一下自己目前的理解。

美国联邦层面的三权分立,分别是立法、行政和司法。国会行使立法权,总统领导行政部门,法院行使司法权。国会里面又分为众议院和参议院。我最开始想到的是英国的上议院和下议院,想借这个来理解美国的两院,但对它们具体怎么产生、各自有什么权力,还不太清楚。美国两院都属于联邦国会,各州另外还有自己的州议会。

我觉得先把两院的名额怎么分弄清楚,后面就比较好理解了。

众议院有 435 个有表决权的席位,按各州人口分配,每州至少一席。比如一个州分到了 10 个名额,就在州内划出 10 个国会选区,每个选区选出一名众议员。选区是为了选举划出来的区域,不一定和城市、县的边界一致。你住在第几个选区,就投票选那个选区的众议员。因此,同一个州可以选出一些共和党众议员,也选出一些民主党众议员。

参议院则是每州固定两席,50 个州一共 100 席,每个席位都由全州选民投票选举。两个名额没有给两党各预留一个,可以都由共和党人当选,也可以都由民主党人当选,或者两党各一人。

为什么要分成这两种方式?我的理解是,这里面有一个人口多的州和人口少的州之间的权衡。如果只按州平等分配,人口差很多的州却有一样多的代表,人口多的州就会觉得不公平;如果完全按人口分配,人口少的州又担心自己的意见长期不起作用。于是众议院按人口分,参议院按州平等分。参议院保障的是州作为联邦成员的平等地位,不是看哪个州经济更发达或更重要。

两院的选举节奏也不一样。众议员任期两年,每两年全部改选一次。也就是说,总统选举那年选一次,两年后的中期选举再选一次,下一次总统选举又选一次。全部改选不等于全部换人,原来的议员仍然可以连任。

参议员每个席位的任期是六年,全国的席位分批改选,每两年轮到大约三分之一。同一个州的两个席位通常错开年份选。在每两年一次的国会选举中,一个州可能有一席要选,也可能两席都不用常规改选。这里我一开始绕了几次:国会选举每两年一次,其中夹在两次总统选举中间的那次,才叫中期选举。中期选举本身是每四年一次。

另外,参议院虽然也叫上议院,但它不是众议院的上级。参议员代表整个州、任期更长、人数更少,个人的政治分量往往更突出,但这不代表参议员可以指挥众议员。众议院的议长由全院选举,通常由多数党推出的人选担任;参议院议长则由副总统兼任,推动多数党议程的重要人物是参议院多数党领袖,不能把这两个职位混在一起。

接下来是我最想弄明白的问题:国会负责立法,但也没有那么多新法律需要发布,它平时到底在做什么?

立法除了制定新法律,也包括修改和废除已有法律。 两院都能提出和修改普通法案,最后必须分别通过相同的文本,再交给总统签署。总统可以否决,两院也可以各以三分之二多数推翻否决。

比如假设要规定企业泄露用户数据后,必须在 72 小时内通知用户。众议院先通过了这个版本,参议院认为时间太紧,改成了 7 天。这样还不能送给总统,因为两边通过的内容不同。众议院可以接受修改,也可以继续提出自己的意见,直到双方通过同一个版本。如果始终谈不拢,这项法案就不能成为法律。先后顺序也可以反过来,由参议院先提出和通过。

我原来想拿三省六部里中书省起草、门下省审议来理解两院。它们确实都有不同机构相互把关的意思,但具体分工对不上:美国两院都能提、都能改,也都要审,不是固定一家写、另一家审。

国会还有一个很实际的权力,就是管「钱袋子」。 税收规则和政府花钱的权限,主要也是通过法律来确定。

税收法案必须从众议院提出,但参议院可以修改,也需要通过。这里通常不是每年重新决定「今年必须收多少钱」,而是规定谁要缴税、税率多少、哪些情况可以减免。法律没有修改或到期,后面就继续按规则收。每年实际收到多少,还取决于企业利润、个人收入等经济情况,预算里写的是预测。

拨款则可以理解为,政府想做一件需要经费的事,总统和行政部门提出申请,国会决定批准多少、用于什么地方、附带什么条件。两院通过拨款法案、总统签署后,具体执行和付款由行政部门负责。也不是每笔支出都要临时投票,社保等许多支出已有法律规定支付规则。

一个实际例子是特朗普第一任期修美墨边境墙。2019 年,他要求提供 57 亿美元,但国会在那项拨款法里只批准了 13.75 亿美元,用于指定地区的边境围栏建设。总统想要的金额和范围,并没有全部获得批准。后来他又尝试援引其他法律权限,把一些既有经费转用于边境墙,引发了诉讼。这也说明,能不能调其他钱来用,仍然要看法律依据。国会研究处有专门的报告讲这件事。

至于打仗,还要分清军费拨款和使用武力的授权。军方可能已经有依法可用的经费,不是每次行动前都重新找国会要钱。但有钱不等于获得作战授权,总统作为三军统帅能在多大范围内自行决定动武,又是另一个问题,不能只用「国会给不给钱」来判断。

国会还可以监督政府。 比如某个部门的采购被怀疑价格过高,众议院的相关委员会可以要求材料、举行听证,让负责人解释,参议院也可以开展自己的调查。这和立法不一样,不需要两院先同意才能开始,各自可以行使监督权。

两院也有一些专属权力。 总统提名部长、联邦法官等重要人选,主要由参议院决定是否同意,众议院通常不参与确认。弹劾则由众议院提出指控,参议院审理,定罪需要出席参议员三分之二同意,所以发起弹劾和让总统下台之间,还差着很大一步。参议院的权力说明列出了这些分工。

回头再看这次中期选举,席位变化为什么会影响总统,就比较容易理解了。民主党赢得下一届两院多数,意味着共和党总统想推动立法、争取拨款、让重要提名获得确认,都需要面对更多阻力,国会的调查和监督也可能加强。新一届国会在 2027 年 1 月开始任期,因此胜选和实际接管之间还有一段时间。

我之前还把特朗普第一任期的两院归属记反了。2017—2018 年,两院都由共和党控制;2019—2020 年,民主党控制众议院,共和党继续控制参议院。所以看总统能推动多少事情,还得具体看当时两院的情况,不能只看谁当总统。

当然,总统所在的党拿到两院多数,也不代表总统做事就没有阻力,党内仍然可能有不同意见。但我觉得特朗普这一届的情况有些不同,他组建班子更看重忠诚,在共和党内的影响力也比第一任期更强,所以来自自己这一边的阻力应该小一些。

现在再看到「红州翻蓝」「民主党拿下席位」这些说法,我会先看它说的到底是联邦参议员、联邦众议员,还是州议会。红州、蓝州说的是选举倾向,一个职位换了党,不等于整个州所有职位都换了党。把这些分清楚,再去看国会的多数变化,才知道它具体会给总统带来什么影响。

AI 彻底改变了程序员这个职业

2026-11-04 08:05:31

最近有位学计算机的表弟在找实习,跟我说实习生的工作特别不好找。这让我有点感慨,我还是比较幸运,没有在这个时代毕业。如果我现在毕业,我觉得自己一样找不到工作。

我觉得 AI 编程已经彻底改变了程序员这个职业。

现在做开发,很多具体的代码都可以交给 AI 来写了,简单的工作更是如此。程序员自己更多要做的是,确保方案没有问题,跟别人沟通方案,再把实现推进下去。工作正在越来越多地转向面向人,理解业务、沟通和推进占的分量越来越大。

以前程序员是一个有技术门槛的工种,但同时也有点像体力工种。即使一个人的技术再厉害,是高级工程师,甚至是架构师,一天能写出来的代码也是有限的。方案定好了,仍然需要有人一行行把代码写出来,所以需要初级工程师和实习生来承担这部分工作。

但 AI 出现以后,这部分工作很大程度上可以交给 AI 了。一个有经验的工程师,自己确定方案,再让 AI 去实现,对初级工程师的需求自然就会减少。

这也是我听到表弟找实习困难时,最直接的一个感受。原来可以靠写一些简单代码进入这个行业,现在这些工作 AI 就能做了,那公司为什么还需要招一个刚毕业、需要培养的人?

对于刚毕业的计算机、软件工程相关专业的学生来说,我担心「毕业即失业」会成为更多人面对的处境。

如果继续走这个行业,我目前能想到相对好一点的出路有两种。一种是进入计算机相关专业有优势的学校,或者考上这类学校的研究生,再通过校招进入一个愿意培养毕业生的大厂。这样可能还有一定的希望。另外一种是自己非常会折腾,毕业时就能利用 AI 做自己的产品,甚至直接创业。

当然,这两条路也都不容易。只是以前靠掌握一门编程技术,就能先找到一份工作、再慢慢成长的路,我觉得现在越来越难走了。

以前的计算机学生还有一点幸运,就是经历过手搓代码的时代。

我们花时间学计算机基本原理、数据库这些基础知识,再自己一点点写代码。没有 AI 帮忙,也得想办法把东西做出来。在这个过程中,慢慢知道一个软件是怎么工作的,出了问题应该怎么处理,再往高级工程师走。

现在的学生如果没有自己潜下心去学,很容易跳过这个过程。代码让 AI 写,问题也让 AI 改,东西可能做出来了,但一旦没有 AI,自己连基本的开发和维护都完成不了。

我觉得这有点像用电照明。AI 就像电,平时有电的时候,大家都能把屋子照亮。但如果突然断电,经历过手搓代码的工程师,还知道怎么点蜡烛;没有经历过这个阶段,也没有自己学过的人,可能就只能干等着来电。

当然,一般也不会断电。只是经历过自己写代码这个阶段,跟一开始就完全依赖 AI,还是有区别。尤其以后想往高级工程师、架构方向走,这些基本原理还是需要自己花时间去学。

对于已经在这个行业里的程序员,我觉得接下来应该更多提升自己的架构能力、理解业务的能力,以及跟人沟通、推进项目的能力。

具体代码越来越多地交给 AI,自己就得知道该做什么,方案有没有问题,应该怎么把这件事做下去。如果继续走软件这个行业,我觉得一个比较好的方向,是成为一个懂技术、懂架构的产品经理。既能理解产品要做什么,又知道技术上应该怎么实现。

另外一个方向,是去做 AI 相关的研发。如果想走模型、算法这类方向,大学时就需要把数学基础打好。我觉得传统软件开发岗位虽然在受到挤压,但 AI 相关的研发仍然很有搞头。只是这个方向对基础的要求不一样,也需要提前准备。

再往后看,我觉得做一个项目需要的工种和人数也会继续变化。这里主要说的是规模比较小的 To B 项目,也就是给企业客户做一个小一点的项目,从拿到需求到把项目交付出去,需要怎样一个团队。后面说团队可能缩减到一个人,也是沿着这个场景往下推。规模更大、复杂度更高的项目,可能还是需要多人协作,不能直接套用这个思路。

以前做一个项目,可能需要产品经理、项目经理、设计,再加上几个前端、后端和测试。有的团队产品经理和项目经理是同一个人,但具体开发仍然需要好几个人协作完成。

接下来可能还是这些工种,但每个工种需要的人变少了。原来要几个前端、几个后端,现在可能各一个就够了。再往后,岗位之间的边界也会慢慢合在一起。

前端可能会更多地偏向设计,后端则需要做一些前端的东西,越来越全栈化,也越来越接近技术负责人,要能考虑架构和整个项目的实现。后端还需要承担自动化的接口测试,并且从页面入口把完整的功能流程走一遍,确认前后端连起来以后能正常工作。

测试这边,熟悉业务的测试同学可能会更多地往产品方向靠。具体的测试工作则逐渐由开发者承担,再配合 AI 和自动化测试,对独立测试岗位的需求可能会减少。

这样继续往下走,一个团队可能就剩下一个产品、一个兼顾设计的前端,再加上一个能做全栈和架构的后端。然后可能是一个产品、一个技术。再往后,可能就是一个懂技术的产品,一个人配合 AI 把事情做完。

如果继续沿着这种小型 To B 项目交付的场景推下去,最后可能只需要一个老板去拿客户的需求,再由一套自动化的智能体完成设计、开发和测试。

这些是我从做小型 To B 项目的角度,对后面变化的推测。具体会走到哪一步,我也不知道。但顺着这个方向想,最后留下来的那个角色,可能就是老板。需求由他去拿,事情由他来推动,具体的实现交给 AI。大公司当然不能简单照着这个思路,推到最后也只剩一个老板。

这也是我觉得程序员这个职业已经变了的原因。以前即使不擅长跟人打交道,靠着技术和自己写代码的能力,也能承担团队里的一部分工作。现在代码越来越容易写出来,我们自己需要做的,反而越来越多地变成了理解需求、判断方案、跟人沟通,再把事情推进下去。