科学
言论
- 公司会教会你怎么写经得起时间考验的代码,但只有你的个人项目,才能确保你始终保持对代码的热情。 – Protect Your Shed
- 以后没有初级工程师了,机器能做他们现在做的事,而且更便宜。但是,初级工程师的价值不在于他们能做的事,而在于他们未来会成为什么样的人。也许几年后,我们会纳闷,那些高级工程师都去哪儿了? – Programming Still Sucks.
- 你的职业规划就是三步:(1)让自己擅长某事,(2)设法从中赚钱,(3)尽可能久地做下去。 – How do I get into the Game Industry
- 大模型是对训练数据的有损压缩,而训练数据又是对真实世界的有损采样。当 AI 生成输出时,则需要填补压缩过程中丢失的信息,将其膨胀成文章、图片、软件、视频等等。 – Expansion artifacts
- 石油行业有一句谚语:一家健康的石油公司由一位地质学家负责,一家成熟的石油公司由一位工程师负责,一家衰落的石油公司由一位会计师负责,一家垂死的石油公司由一位律师负责。 – Hacker News
- 很多人看不到 AI 改变世界的潜力,原因在于他们不明白一切事物都是算法。具体来说,他们没有意识到,社会和公司只不过是一系列算法的集合。 – Companies Are Just a Graph of Algorithms
- AI 可以一对一的定制化教育,效果更好,大学对很多人将变得没有价值。 – Stanford dropout Sam Altman says college is ‘not working great’ for most people—and predicts major change in the next 18 years
- 中国 AI 公司的员工,很多是才华横溢的”实习生”,平均年龄二十五六岁,大多数仍然是博士生,能够用英语轻松交流技术话题。他们大多毕业于中国高校,没有海外留学经历。他们实习期一年到两年,享有全职员工的待遇和完整权限,可以自由地提出想法和开展工作实验。这跟西方顶尖 AI 公司形成鲜明对比,OpenAI、Anthropic、Cursor 等公司根本不提供实习,其他公司(比如谷歌)名义上提供 Gemini 的实习,但不会提供重要的任务。中国公司更看重”新鲜人”,他们能够带来新想法和充足的脑力。为了改进最终模型,实习生更愿意做一些不那么引人注目的工作。而且,刚接触 AI 开发的人可以免受以前模式的影响。从中国大学的角度来看,学校的计算资源根本不足以让优秀学生的才华得到充分发挥,不如把他们派往计算资源更丰富的业界公司,双方合作发表论文,实现双赢。 – Frank摘录美国访问团中国 AI 大厂访问记
- 每个人最终都会到达一个工作、雇主、行业、甚至整个职业生涯结束的时刻。诚实并做出明智的决定比发现自己落后并可能被迫退出要好得多。 – How To Know When It’s Time To Go
- 1969年,两个美国医生建立了一个心理模型,分析绝症患者的心理,提出了否认、愤怒、讨价还价(恳求)、沮丧和接受这五个阶段。该模型现在也被用于分析人工智能导致的失业案例。 – Jack Maguire
- 谋生方式有三种:(1)对想听假话的人说假话,你就能发财。(2)对想听真话的人说真话,你可以维持温饱。(3)对想听假话的人说真话,你会破产。 – Three Ways to Get Paid
- 如果生命是一个箱子,任何试图让箱子变得更大一些的人,最后都会发现必须冲破箱子的四边才行。 – 查理·芒格
观点
行为经济学诱饵
行为经济学家丹·艾瑞里,有一天闲逛《经济学人》官网。
他在订阅页面上,看到了三个选项:
A. 电子版—-59美元。 B. 纸质版—-125美元。 C. 纸质版+电子版—-125美元。
他愣住了。
B 和 C,价格一模一样。一个只给纸质版,一个纸质版加电子版全送。谁会选 B?
傻子都不会啊。但艾瑞里没有笑,马上意识到这是一个绝妙的设计。
他拿着这三个选项,走进了麻省理工学院(MIT)的课堂,做了一个实验,让100个学生对这三个选项进行选择。
结果:16%的学生选了 A,0%选了B,84%选了C。订阅费总收入:11,444美元。
跟预想的一样,没有一个人选 B。
然后艾瑞里做了一件小事:他把 B 删了,只留 A 和 C。
逻辑上,一个从来没人选的东西,删掉它不应该影响任何结果,对吧?
结果出来了:68%选了 A,32%选了 C。订阅费总收入暴跌到8,012美元。
这就是选项 B 的作用。它从来没人选,自己一份都没卖出去,却在暗中帮旁边的最贵的 C 套餐,多卖了52%。
仅仅因为它的”存在”,就让杂志社多赚了3,432美元。这就是行为经济学中著名的”诱饵效应”。
原理很简单:人类不擅长判断一个东西的”绝对价值”,但极其擅长做”相对比较”。
当只有59美元和125美元两个选项时,你的大脑在比较”便宜 vs 贵”,大多数人选便宜的。
但当”125美元只买纸质版”这个诱饵一出现,你的大脑就不比较 A 和 C 了,它开始比较 B 和 C。
同样的价格,C 多了一个电子版。天哪,这不是白捡的吗!于是你心满意足地选了 C。
浑然不知自己刚刚多花了66美元—-买了一本可能一辈子都不会翻开的纸质杂志。
这个套路如今无处不在。咖啡店的中杯定价,只是为了让你觉得大杯”更划算”。视频网站的月卡,贵到让你觉得年卡”不买就亏”。
手机发布会上,永远有一款”高价低配”机型,它唯一的使命,就是让旁边那款旗舰机型看起来”性价比极高”。
当你觉得自己占了便宜的时候,多半是有人精心摆放了一个诱饵,让你心甘情愿走进了更贵的那扇门。
那个没人选的选项,才是全场真正的主角。
“神秘屋”式编程
有一本很著名的软件开发著作,叫做《大教堂与集市》,它提出软件开发有两种方式。
一种方式是大教堂(Cathedral),即软件经过精心规划,由一支专业的团队封闭式开发管理,全过程有严格的流程和管控,代码通常是闭源的。
另一种方式是集市(bazaar),即软件开发是开放的,没有围墙,任何人都可以加入,决策过程是透明的、由社区驱动,代码开源。
这种比喻将软件行业一分为二,非常精辟,自从初次提出,已经过去了近30年,一直得到大家的认可。
但是最近,有人提出,这两种方式已经不足以概括现状,软件开发现在出现了第三种方式:神秘屋。
“神秘屋”是一幢真实存在的大宅,就位于美国加州,19世纪末由一个老太太建造。
这个老太太非常非常有钱,没有其他爱好,就喜欢建筑学。她拿自己家当作实验品,一个房间接一个房间地建造,都由她说了算,亲自设计,亲自监工。
整幢楼没有整体规划,怎么想就怎么造,房间 A 是维多利亚式,房间 B 是罗马式,房间 C 是哥特式,都由老太太决定。有时候,房间造到一半,老太太不满意了,就拆掉重建。
所以,整个建筑像迷宫一样,每个房间的风格都不一样。根据当年的记录,重建次数最多的房间一共拆毁重建了16次。为了省事,一些房间的窗户和门重建时也没拆掉,而是直接砌进了墙里。
整幢楼在不同时期加盖了多层,最高达到五层,大约有160个房间、2000扇门、10000扇窗户、47个楼梯、47个壁炉、13个浴室和6个厨房。
1922年,老太太去世后,它对外开放,人们将其称为”神秘屋”。
如今,很多程序员就是这个老太太。
他用 AI 开发软件,自己提出需求,想要什么就让 AI 开发什么,既没有需求审查,也没有代码测试,充分满足自己的个性。
最终开发出来的软件,就是高度个性化,规模庞大,不断扩张,代码层层累加,几乎没有精简和优化,充满了修复 bug 的补丁。而且,它通常缺乏文档,对外人来说晦涩难懂,就像”神秘屋”一样。
但是,这种开发过程充满了乐趣,会让开发者自我陶醉,乐在其中。
随着 AI 模型越来越强,”神秘屋”式软件正在不断涌现,搞不好以后会成为主流,取代大教堂和集市。大部分软件,尤其是个人和小团队开发的软件,可能都是以这种方式开发出来的。
The undercover generalist
自从我成为自由职业、独立接活以后,我一直感受到多面手程序员与专家程序员之间的对立关系。
我发现有一句话很准确:”理论上,所有公司都喜欢适应性强、能承担多个岗位的程序员。但实际上,大多数招聘职位更偏向专家。”
这意味着,即使你是多面手程序员,找工作时也必须让自己看上去像专家。
我的问题是,我不觉得自己的技能属于特定类别。我把自己看作一个解决问题的黑客,受好奇心驱动,解决那些自己有兴趣的问题。
什么工具适合解决某个问题,我就学习使用那种工具。
然而,在我独立接活后,将自己说成多面手,就很影响我招揽客户。客户希望听到你说自己是专家,而不是说”我是计算机通才”之类的模糊说法。他们的问题包括:你是前端工程师还是后端工程师?你使用 .NET 还是 Python?你专长于 AWS 还是 Azure?……
我不怪他们……客户面对的是具体的问题,确实很难评估雇佣多面手程序员的价值。
于是,我决定改变沟通策略,说人们想听的话。我对自己的定位变成了,一位专注于系统编程和开源软件的 Rust 专家程序员。我按照这个定位包装自己。
它很快就发挥了作用,让我整年都有工作合同!
Leaving Google
我加入谷歌时,被要求去负责谷歌文档的安卓 App。
这个产品原来由澳大利亚团队负责,我们从他们手里,拿到了 App 的控制权,但是没人跟我们交接,没人告诉我们应该如何处理这些代码、哪些地方需要注意等等。
我们团队都是新人,主要是应届毕业生,还有一些是从公司其他部门调来的。所以,大家都不了解这个 App 现有的技术基础设施。我们遇到问题,也没人可问。
谷歌的管理非常分散,我的经理同时监管大约25个项目。每过三周,我和她见面半个小时讨论工作。
就这样过了几个月,她都不记得我的项目名称。我看出来了,在现在的项目组里获得晋升是不可能的。
整个部门极度以产品为导向。产品经理做出所有决定,工程师对产品几乎没有影响,只是负责实现产品经理的决定。
很多功能需要两到三个季度来开发,但是排给我们的开发时间是两周。
这当然做不到,产品经理从那以后就要求我们,以30分钟为单位,报告自己每天在每项工作上的时间分配,让我感觉像机器一样。
所以,我就离开谷歌了。
How to Scale a System from 0 to 10 million+ Users
- 核心原则: 不要从一开始就过度设计,应简单起步、识别瓶颈、逐步扩展。Instagram早期即采用单服务器验证需求,再随实际流量增长而扩展。
- 单服务器阶段: 应用、数据库、后台任务全部运行在一台机器上,月成本20-50美元,优势是部署快、成本低、调试简单;瓶颈表现为数据库查询变慢、CPU/内存超过70-80%、部署需停机。
- 分离数据库阶段: 将数据库与应用服务器分开,实现资源隔离、独立扩展、更好的安全性和备份简化;推荐使用托管数据库服务(如RDS、Supabase),并引入连接池(如PgBouncer)减少连接开销,可将连接效率提升3-5倍。
- 水平扩展阶段: 通过负载均衡器将流量分发到多个应用服务器,解决单点故障和性能瓶颈,支持无状态服务的弹性伸缩;需注意会话持久化或外部化状态存储
有趣
荐书
杂谈
手机版“神探玺洛克”请扫码