Awesome C++ Blogs
类似于必读书目的书单,那些值得反复阅读、常读常新的技术博客,也应该被系统地整理成一份精选集合。
先开个坑,后续逐步填充内容~
类似于必读书目的书单,那些值得反复阅读、常读常新的技术博客,也应该被系统地整理成一份精选集合。
先开个坑,后续逐步填充内容~
What we want is a machine that can learn from experience.
吉姆・罗恩的一个观点:失败很少是轰轰烈烈地到来的,它不会敲门,而是悄悄溜进来。
你有没有过这样的经历:今天有点累,就不晨读了吧;健身房下周再去,反正卡还有一年有效期。
每一个决定单独拿出来看,都合情合理。
但这些小决定叠加起来,日复一日,就把你和你想成为的那个人隔开了。
这就是罗恩说的沉默的小偷,它们不是大奸大恶,而是披着无害外衣的日常习惯
养成费米估算的习惯,主动查证关键数据,并运用上下限分析法。我注意到许多我认识的最聪明的人都会这样做:他们不会轻信任何说辞,而是自行验证其合理性。例如,听到某个事实时,他们会亲自查证以确保属实 —— 因为人们引用的内容常常存在虚假或片面性。
大多数人根本不这样做 —— 他们不进行 “量化思考”,结果很容易上当受骗。推特上时不时会流行这样的梗:“如果伊隆把造火箭的钱分给每个美国人,等等” 这类言论会疯传,就是因为人们没有算账。
费米估算由物理学家费米提出,他曾在课堂上问学生:“芝加哥有多少钢琴调音师?”—— 没人能查数据,但通过拆解估算,答案数量级和实际值高度吻合 。
费米估算的原理:
1970 年,波音就已经引入了 CAD 电脑画图。但交付给下个部门的时候,却是把结果打印出来,让下一个部门的人用眼睛读、用脑子理解、再靠脑子去执行。
星巴克的咖啡师做咖啡的速度提高 100 倍,星巴克未必能多赚很多钱。星巴克的瓶颈不在做咖啡的速度,在于客流、选址、供应链管理。
同理,你们公司的瓶颈,大概率也不在于每个员工手头的任务完成速度。而在于部门和部门之间的信息流动,在于协调层。
那个在公司里被称为 “很能干” 的人,你仔细观察一下,他到底在干什么?大概率是这样的:他最熟悉各个项目的上下文,能在不同部门之间穿针引线,能把复杂的事情讲清楚让所有人都理解。
他的核心价值,是在一个信息流通不畅的组织里,做信息中介。他们也恰恰是 AI 最应该替代的角色。

当我发现圣诞老人并不存在时,我没有感到难过,反而释然了,原来有一个更简单的说法可以解释为什么全世界那么多孩子会在同一天夜里收到礼物。之前的故事太复杂了,我快想不透了
这是我从我父亲那里学来的:不尊重任何权威;不要管话是谁说的,但要关注他说的条件是什么,结论又是什么,然后问自己:“这合理吗”
定义你的,不是你的本质,而是你的所作所为。

AI 的热潮确实让我想起早期低代码和无代码工具的突破。我不怀疑 AI 能成为开发者的有用工具,我知道有些任务它能作为更好的工具来辅助完成。但这些论点总让我再次思考偶然复杂性与本质复杂性的问题。
布鲁克斯在《没有银弹》一文中探讨了新工具对开发者生产力的影响。要像程序员一样思考,你必须理解现实世界的复杂性。编程最好被理解为在混乱的现实之上施加简化的表征——我们称之为_抽象_——通过降低复杂性使其可理解。这让我们能够将特定情境泛化为可层层叠加的抽象层。
即使更好的工具减少了偶然复杂性,本质复杂性依然存在。我们仍需以正确的方式设计抽象和系统——一种优雅、清晰且可维护的方式——这本身就是一项复杂的工作。而这种复杂性不会消失。这类工作需要技能、经验以及从过去系统失败中艰难获得的智慧。

养成习惯的好处是,在行动时,不必再进行内心的权衡。
不再消耗能量去思考是否要做这件事。
你只管去做。
每个人都害羞。
其他人在等你做自我介绍;
他们在等你给他们发邮件;
他们在等你
约他们出去。
基于Astro,从零重新实现

当 int/long/float/指针/std::string 作为 std::unordered_map 的 key 时,C++底层是如何计算 hash 值的?
gcc/clang 作为使用最多的两种编译器和标准库,它们在这个问题的实现上略有差异。本文将基于二者的源码进行对比分析。