如何记笔记
到底什么样的记笔记方式是简洁高效的?
记笔记存在自动度的区分。自动度越高,越可以实现人输入的高效,输出的低效。
自由度越高,越不容易自动化,输出相对低效,无法做重复性、有规律的输出。自由度越低,越容易自动化,输入限制越多,输出高效,可以做重复性、有规律的输出。
如果一个人要思考问题,那么显然是需要更多的自由度的,限制最好越少越好,这样可以增强人在实际问题上的发挥。
如果一个人要快速输出,那显然问题就不能太过自由,编写一些自动化的工具即可。
手写
输入:
- 笔
输出:
- 纸
电子笔记
电子记录终究是束缚。因为它束缚了输入和输出形式。工具即限制。
输入:
- 键盘
- 鼠标
- 手写笔(自由度最高)
- 排版语言
- 排版语法
- 排版库
输出:
- 图片
- 电子手绘
- 排版效果
从记录自由度到编程语言
垃圾回收语言提供了更少的限制,不需要程序员手动回收内存,因此程序员可以更专注于业务代码。
更好的typing annotation和gradual typing支持减少了程序员写类型标注的开销,可以更快写程序。
更严格的类型约束限制(如Rust)使得程序员在输入方面受到更多限制,但问题就被简化了,可以产生更高效的程序(比如moving semantics可以让alias分析更快更精确)
更少的静态类型约束(如JavaScript和Python等动态语言)增大了程序员的输入自由度,带来的问题就是更多的runtime type error。