Think

Reading list - 2025

在这里记录一下2025年看过的值得推荐的书, 打分(5分为最高分)和评价, 我看过觉得不好的书, 就不记录了, 不值得为不好的东西浪费时间.

book1

1. 理性生活指南 (进度:60%) (评分:5分)

今年看过的最重要的一本书, 作者是美国心理学家阿尔伯特·艾利斯(Albert Ellis), 详细介绍了理性情绪行为疗法REBT的实践方法.

通过理性的分析识别出我们意识中非理性的信念, 而这些非理性的信念往往带来很多糟糕的负面情绪, 通过对这些非理性信念的批判, 替换成理性的信念, 来让我们获得健康的情绪.

我现在经常使用这个方法来帮助自己从负面情绪中走出来, 非常适合喜欢理性思辨又想有一个健康稳定情绪的人阅读.

book2

2. Mathematics of Machine Learning: Master linear algebra, calculus, and probability for machine learning (进度:100%) (评分:4分)

这本书的内容和结构非常有意思, 从一个数学家的角度写出来的书

从具体的例子出发, 形成定理, 然后基于基本定理再给出引理, 并且给出详细的证明过程, 不仅讲了数学知识, 更是巩固了一下使用数学符号进行证明的技巧.

看完这本书算是复习了部分高等数学知识.

book3

3. The Next Conversation: Argue Less, Talk More (进度:30%) (评分:4分)

作者Jefferson Fisher是一个律师, 开了自己的播客讲如何和人进行困难的谈话.

他在书里说: 每个人都是一条河流, 我们看到到的他们只是水面的部分, 但是和我们对话的却是河底, 所以不要通过表面现象来判断对方, 而是想办法看到河底的状况.

他还举了一个例子:

如果别人邀请你参加个活动, 你不想去, 不要先表示感谢, 再说but, 去拒绝别人. 而是先直接拒绝, 说我不能去, 然后解释原因, 并表示感谢.

All In

最近在不同的地方看到了同一个类似的观点: 生活是一场all in的游戏.

为什么要all in

因为有些游戏, 只有all in才有参与的资格. 生命本身就是一个例子.

Jordan Peterson在一节课上说:

生命就是这样一场游戏, 从一开始你就all in了, 无论你选择或者不选择, 你都做出了选择, 无论你做什么, 都是在全力以赴, 这场游戏最终会夺走你的生命.

所以既然无论怎样选择, 都是在all in, 那么在结局到来之前, 不如尽情玩儿一场最辉煌的游戏. 再也没有比这更好的选择了.

其实很多事情在开始的时候, 都是在一片漆黑的隧道里, 前方只是有模模糊糊的亮光, 看不清脚下的路, 在躬身入局之前, 是想不明白的. 只有开始干了, 向着亮光摸索着前进, 边走边解决各种问题, 前方的路才会越来越清楚. 一想都是问题, 只有去做才能找到办法.

如何all in

有些人想不明白做哪个选择, 所以迟迟不选择, 总是想要想清楚每个选择的结果才行动.

可是很多事情只有做了才知道结果, 存在主义的真谛就在于此, 没有水晶球, 没有人能替我们预言结局, 这就是生命游戏的奥秘所在, 只有行动才能带来改变, 也只有去做了, 才能领悟生活是什么.

正如上边所说, 无论做什么, 甚至什么也不做, 躺平, 也是在all in, 而我们走的任何一条游戏路径, 最终都会夺走我们的生命.

但是怎么选择是有些智慧在里边的, 这里有一些观点可以参考:

Jordan Peterson 说:

  1. 选择你能力范围内最卓越的事情去完成
  2. 去承担责任, 人们总能在自己承担的责任中找到意义

Naval Ravikant 的观点:

Pirate's kiss (1) - probability

1

Note: The main content is first written in Chinese, with the English translation following below.

Chinese Version

我打算写一系列的文章来记录我是如何在生活中应用 Pirate's kiss 这个理论的. 内容会涉及概率论, Gambling, 扑克, 交易, 投资等等.

什么是 Pirate’s kiss?

这个词要分开理解.

首先我们先理解kiss, 这里指KISS原则, 在英语里是Keep It Simple, Stupid, 当然我倾向于KISS = Keep It Stupid Simple.

KISS原则类似于奥卡姆剃刀, 就是尽量用简单的方式解决问题, 不仅仅是不要over kill, 而是要尽量的简单, Stupid Simple的那种简单.

然后是Pirate, 在这里指海盗精神, 就是不随大流, 不墨守成规, 有自己的思想, 知行合一, 在一些关键问题上, 不会轻易接受主流认知, 总是先质疑, 然后验证, 最后才是决定是否接受.

比如:

  1. 金融市场是有效的, 价格是当前所有信息综合起来的表现, 不存在套利机会
  2. 在二级市场里个人是无法战胜机构, 基金经理无法战胜指数
  3. 只要在X时候买入A股票长期看来能盈利
  4. 只要找到X指标, 交易就能盈利
  5. 有钱人都坏, 我变坏了也能赚到钱

所以Pirate's kiss原则就是, 当看到上述这些论点时:

Think Programming(2) - OO VS FP

Note: The main content is first written in Chinese, with the English translation following below.

Chinese Version

OO VS FP

接下来我想讨论一下 OO 和 FP. 先说结论:

只使用任何一个都不能写出能快速交付, 同时又容易维护的代码工程.

我们需要结合这两种编程模式的优点, 谨慎使用这些思想工具, 尤其是OO, 如果过度使用OO的一些编程思想, 例如: 继承, 代码会很快变得难以理解和维护.

未完待续…

English version

OO VS FP

Now I want to talk briefly about Object-Oriented (OO) and Functional Programming (FP). My conclusion is:

using either approach alone won’t help you write code that’s both quick to deliver and easy to maintain.

Think Programming(1) - Insights from My Coding Journey

Note: The main content is first written in Chinese, with the English translation following below.

Chinese Version

我编写商业软件到现在有10年的时间.

使用过的编程语言(按掌握程度排序): C/C++, Python, Python(machine learn), F#, Golang, Scala, Clojure, JavaScript

使用过的编程范式: Object-Oriented (OO), Functional Programming (FP)

实现过的软件项目: 低延迟TCP/UDP Server side Framework, 高并发订单系统, 利用machine learning实现的高性能预测系统等等

我计划在这篇文章里记录一下我对编程的一些思考, 而且这些想法随着我解决更复杂问题, 积累更多的经验后也会有些变化, 因此我会不断更新这篇文章.

自顶向下编程

有两种编程理念, 一种是自底向上, 一种是自顶向下.

自低向上: 先实现很多小的函数, 然后使用这些小函数组成很复杂的功能. 在很多讲lisp的书里, 经常会讲如何实践自底向上的编程思想.

自顶向下: 从使用者的角度, 先写完框架/函数API, 最后才是具体代码实现.

我赞同使用很多小的函数组成很复杂的功能这个编程思路, 但是在我的编程实践里, 我认为自顶向下才更容易写出高质量的代码.

举个例子: 假如我们要写一个网站,用来展示在不同的网站上,同一款汽车的最新销售信息, 方便用户选择最优的网站去购买汽车

如果使用自底向上的思路, 我们会依次实现这些代码

  1. 设计数据结构
  2. 去不同网站拉取数据的的代码
  3. 实现数据CRUD的代码
  4. 实现前端与后端数据交互的api
  5. 前端代码

但是如果使用自顶向下的思路, 我们会先写/画出框架, 然后依据框架给出API, 并不需要立刻实现具体代码逻辑.