最后一张算法相关的看了一半先不看了,这边的主要目的还是知识管理方面的 TODO: 算法

习惯

一些好的习惯

  1. Google&Wiki(遇到问题做的第一件事情,也是学习某个东西做功课(homework)最先用到的东西。
  2. 看书挑剔,只看经典。
  3. 做读书笔记。一是将自己阅读的时候的思考(包括闪念)总结下来,二是将书中的好例子摘抄下来。有了 google note,笔记可以加上 tag,非常便于回顾,加深理解
  4. 利用走路和吃饭的时候思考,还有睡觉前必然要弄一个问题放在脑子里面,在思考中迷糊入睡
    • 将思考成为习惯的好处:避免焦虑。卡耐基用一整本书讲了一个有效的做法来避免焦虑——底线思考
    • 还有另一个有效的做法,就是投入地做另一件事情。
  5. 重要的事情优先。尽量避免琐事骚扰,不重要的事情能不做就不做。
  6. 重要的事情营造比较大的时间块来完成。
  7. 多看心理学与思维的书,因为它们是跨学科的。知识分两种,一是我们通常所谓的知识,即领域知识。二是关于我们的大脑吸收知识的机制的知识,后者不妨称为元知识。
  8. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。
  9. 获得的多少并不取决于读了多少,而取决于思考了多少、多深。

如何养成习惯:

  • 第一条就是认识到习惯的改变绝不是一天两天的事情,承认它的难度。
  • 第二条就是如果你真想改掉习惯,就需要在过程中常常注意观察自己的行为,否则习惯会以一种你根本觉察不到的方式左右你的行为让你功亏一篑。
    • 李笑来例子:一共要搞定 20,000 个单词,而因此可能获得的奖学金是每年 40,000 美元左右。那么每个单词应该大约值 20 元人民币。他每天都强迫自己背下 200 个单词。而到了晚上验收效果的时候,每在确定记住了的单词前面画上一个勾的时候,他就要想象一下刚刚数过一张 20 元人民币的钞票。每天睡觉的时候总感觉心满意足,因为今天又赚了 4000 块!
      思考
  • 人的思维天生就是极易流于表面来理解事物的。觉得自己理解了一个问题了么?条件反射性地问自己:你真的理解了吗?你真的理解了问题的本质了?问题的本质到底是什么?目前我的理解是什么?我对这个理解感到满意吗?这样的理解到底有什么建设性呢?等等。
  • 重视知识的本质:对于程序员来说这一点尤其重要,程序员行业的知识芜杂海量,而且总是在增长变化。
  • 重视积累的强大力量,万事提前准备:计划订长一点,自然就可以多获得准备的时间。
  • 抬起头来:人的思维是非常容易只见树木不见森林的(否则这个成语从哪来的呢?)。时不时抬起头来审视一下自己正在做的事情,问一问它(对现在或未来)有什么价值,是不是你真正希望做的。你学到的东西到底是什么?它们重要吗?你需要在这个时候学习这些吗?。你的时间就是你的资源,你投入这些资源来掌握知识,所以到底用来掌握哪些知识是一个很重要的问题。

其他

  1. 退订RSS:在有大量 feed 的情况下,也会无形中消耗掉大量的时间。我们一旦订阅了某个 RSS 之后就会倾向于不肯退订它,心想也许某天有个重要的信息会从那里得到。不断的退订信息量小的 rss,留下的内容越来越少,也越来越精,带来的阅读焦虑也越来越少。
  2. 复盘和总结,复习知识
  3. 制定简要的阅读计划:选出最近认为对你最有价值的书,先总览一下,决定阅读的顺序

阅读方法

  1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去。
  2. 根据主题来查阅资料,而不是根据资料来查阅主题。
  3. 判断好资料和坏资料
    • 好资料的特点:从问题出发;重点介绍方法背后的理念( rationale ),注重直观解释,而不是方法的技术细节;按照方法被发明的时间流程来介绍(先是遇到了什么什么问题,然后怎样分析,推理,最后发现目前所使用的方法)。
    • 坏资料的特点是好资料的反面:上来就讲方法细节,仿佛某方法是从天上掉下来的,他们往往这样写“我们定义… 我们称… 我们进行以下几个步骤… ”。根本不讲为什么要用这个方法,人们最初是因为面对什么问题才想到这个方法的,其间又是怎样才想出了这么个方法的,方法背后的直观思想又是什么。
  4. 学习一个东西之前,首先在大脑中积累充分的“疑惑感”。即弄清面临的问题到底是什么,在浏览方法本身之前,最好先使劲问问自己能想到什么方法。一个公认的事实是,你对问题的疑惑越大,在之前做的自己的思考越多,当看到解答之后印象就越深刻。
  5. 有选择地阅读。
  6. 为什么看不懂?如果看不懂一个知识,一般有如下几个可能的原因:
    1. 你看得不够使劲。
    2. 其中涉及到了你不懂的概念。这是技术性的不理解。这种情况就需要 Cross Reference 。如果一句话中用到了你不懂的概念,那就去查
    3. 作者讲述的顺序不对,你接着往下看,也许看到后面就明白了前面的了。

如何找书

知识结构

essential knowledge

  • 计算机组成原理
  • 网络知识
  • 英语
  • 算法
  • 编程范式、封装,缺陷和陷阱
  • 分析问题解决问题的思维方法
  • 判断与决策的方法

non-essential knowledge

  • 上层的业务代码

重要的是学会如何判断

是否完全可以在用的时候查手册即可,还是需要提前掌握。并且学会在纷繁的知识中抽象出那些重要的,本质的,不变的东西。

孟岩先生说到,是不是弯路,不是那么容易界定的。

有一句话说:看一个人,只要看他读的书和见的人。还是很有道理的,这两者是一个人成长中最有价值的信息来源。

如何清晰的思考

为什么我们常说很多时候一定要亲身经历了之后才能明白?

  1. 切身体验。亲身经历一个负性事件带来的情绪记忆要比看着或听说别人遭受一个同样的事件所感受到的强烈得多,形成的负性条件反射也远远更持久。我们一定程度上的确能够感同身受,但心理学实验同样也表明,自己是无法从强度上真正感同身受别人的痛苦的,
  2. 别人在告诉你一个道理的时候往往只能告诉你怎么(how)做,而难以说清为什么(why)要这么做,遑论“为什么一定(have to)要这么做”了(因为他们自己也不一定能说清)。在没有听到逻辑严密、无法辩驳的证据之前,你很难说服自己 A 选项优于 B 选项,直到最终自己在某一条路上撞了南墙才肯死心。
  3. 未来是不确定的。人类天生有一种寻求确定性的需要,以及控制周遭的小世界的需求。
  4. 别人的道理,自己的事情。
  5. 失败即成功。有时候,我们的确需要在撞南墙的过程中总结出经验教训
  6. 习惯。对付我们强大的习惯的最佳办法是将自己认为正确的写下来,并常常拿出来翻看。

亲身经历了也不一定明白

  • 很傻很天真的条件反射。条件反射是一个太傻太天真的系统——我们碰了一鼻子灰之后往往就会选择放弃自己的做法。然而其实撞了南墙并不就一定意味着做法不对,可能只是时运不济。
  • 认知偏差。我们有着各种各样系统的认知偏见:我们经常对事物作出错误的解释和归因,有时甚至反而是“当局者迷,旁观者清”。
  • 情绪系统。我们之所以强烈地依赖于需要亲身体验一个负性事件来学习,是因为我们平常的决策与判断强烈地依赖于情绪系统的输出,如果一个事情“感觉上没错”,我们无论有多好的理由也很难说服自己不去做它,如果一个事情“感觉上不对”,则无论有多好的理由也很难说服自己去做它。
    不需要经历也能明白—理性的力量
  • 人类最强大的能力就是社会学习
  • 人类最强大的另一个能力则是归纳和推理
  • 最重要的能力之一就是能否从别人的错误中学习,往往是这类人能够迅速走在别人的前面,在别人跌倒的地方跳过去。

“仁者见仁、智者见智”这个俗语来指代三种现象:

  • 偏见:不同的人戴着不同的有色眼镜,对同一现象产生不同的理解或解释。是平凡的解释还是阴谋论的解释?存乎一心。
  • 立场:例如对于“生活的意义”没有统一的标准公理,因此每种生活都是合理的,各人可以持有不同的价值观,优化不同的目标函数。
  • 选择性关注:对于同一事物,不同的人关注的点不一样,象有四腿,各摸一条。

不妨读一读《社会性动物》冲突和偏见部分。

GTD

只要我们的情绪大脑首先认定了一件事情,我们那点可怜的理性思维便很容易屈从于情绪大脑发下的命令——把事情往利于自己的方向解释。

自利归因,但事实上世界上,除了外因还有内因。无论外因如何,只要不是到了人力所不能抗的地步,发挥一下自己的自由意志和主观能动性,总能获得同样好的结果。

为什么会放弃?

因为我们下意识中会对所面临的困难以及成功后所得的收益作一个评估(经典的 cost/return 分析)
当觉知到的困难到一定程度之后,我们的大脑便会想:既然很大可能最终失败,甚至看不到成功的可能,为什么要白费力气去学一通呢?还不如省省呢。这是一个聪明的经济决策,去权衡性价比应该是每个经济个体的原则。
但人总是会难以估计新知识的困难程度。

事实上呢?只要智商没有根本的差别,别人的大脑能够掌握的知识,你的大脑也能掌握,你所感觉到的巨大困难只不过是因为Unknown Unknown

核心竞争力的养成

个人的核心竞争力是是他独特的个性知识经验组合。

  • 专业领域技能:成为一个专业领域的专家,你的专业技能越强,在这个领域的不可替代性就越高。
  • 跨领域的技能:解决问题的能力,创新思维,判断与决策能力,Critical-Thinking,表达沟通能力,Open Mind 等等。
  • 学习能力:太重要,持续学习和思考新知识。
  • 性格要素:专注、持之以恒、自省(意识到自己的问题所在的能力,这是改进自身的大前提)、好奇心、自信、谦卑