Table of Contents:

为什么要学习?
学习能往自己的这个系统里面引入不同的新的东西,才可能使自己改变
学习使人改变,而人也正是为了改变而学习。

关于自学

先立志

方法1 挖掘动力的源头【学习动机图】
① 找到一件成为你学习动机的事情
* 精神富有
* 使自己更加强大
* 物质富有
* 更开心
* 更智慧
* 掌握一本技能

② 写出这件事带来的影响
既包括直接影响,也包括间接影响。比如,这件事使我们的行为、习惯和思考方式发生了怎样的变化,而这种变化又给我们周围的人带来了哪些影响。

方法2 明确学习的出发点【可能的阶梯】
① 选择一门自己想要学习的科目, 将自己已经掌握的(或是知道的)知识点写下来
② 将步骤1中列出的知识点按照从易到难的顺序排列,寻找“知道”与“不知道”的分界线
③ 明确学习的出发点, 从当前掌握的阶段往下数两阶左右,就是我们当前学习的起点,这样更容易上手

方法3 自己来绘制学习的地图【学习路线图】
① 将现状和目标写在纸的两端
② 添加步骤,在现状和目标之间绘出一条路线
一开始我们可以写得粗略一些,之后再将其具体化。步骤写得越是翔实细致,实行起来也就越容易,还能方便我们去思考其他的路线。
③ 思考其他的路线
在现状和目标之间绘制出一条路线后,我们可以再想一想还有没有其他路线。有的路线走起来会比较困难,但是用时较短;有的路线走起来比较耗时,但是却更加轻松。这样多想几条路线,可以帮助我们发现第一条路线的优点和缺点。
⑤ 在实际学习中不断对路线进行修正
自学者的“路线图”总是在不断发生变化
学习路线图,可以帮助我们俯瞰并规划自己自学的行程
学习也不会按照我们的预想来进行,学习计划大多都会在中途出现变化。
一个原因是,我们在规划路线时,往往对前方的“地形”还不是很了解。
另一个原因就是,我们学到的东西也会导致我们前进的方向发生改变。

把学习路线进行量化,需要分多少步,每步用多少时间,等等

第4章 挤出学习的时间
① (作为前提条件)把握自己当前时间分配的状况
② 整理一下哪些事情应该做,哪些事情不用做。(放弃那些优先级较低的事情和没有必要去做的事情,减少时间的浪费)
③ 安排时间去做那些应该做的事情(将事情按照优先级排序)。
④ 着手去做(摆脱拖延症)。

方法6 把握自己的行动,彻底消灭盲区【行动记录表】
① 准备一本手账,在上面写好自己接下来的计划
② 在未来的一周内,记录自己的行动
③ 将自己的计划和实际的行动记录进行对比

做计划的人有很多,但是记录自己行动的人却很少
行动记录表,正如其名,就是一种记录自己行动的方法。
有的人可能会问,我们明明知道自己做了些什么,为什么还要特意去记录下来呢?
但其实,我们并不像自己想的那样了解自己的行动。
只有做好记录,才能发现问题,才能着手改善

方法8 转动番茄,让自己更集中【番茄工作法】
① 设置25分钟倒计时,开始学习
番茄工作法的基本单位“一个番茄时间”由25分钟的工作时间和5分钟的休息时间构成。
为了能够在25分钟内结束作业,请将比较费时间的任务提前进行分解。
如果中途需要接电话,或是被别的事情打断,请中断计时并重新开始。
② 休息5分钟,其间做一些与学习内容无关的事情放松大脑
最好也不要查看邮件、刷社交软件或接打电话。
③ 重复4个番茄时间后,休息30分钟

番茄工作法可以让我们反复在短时间内集中注意力工作,增加一天中大脑处于高度集中状态的总时长,提升脑力工作的生产力

方法23 第一类参考工具书【百科全书】——博识的可能性 维基百科
方法25 第三类参考工具书【教科书】——入门书、百科全书、文献目录三位一体,自学者的好伙伴
方法26 遇见自己想读的书【书籍探索】
方法27 赶赴知识的最前线【查找期刊论文】

关于学习

人的一天有24小时,8小时休息,8小时上班,另外的8小时在干什么就决定了你以后有多大发展。一有时间就看书学习,这就是一个程序员应该做的。今天打游戏,明天看电影,后天炒股,只会导致技术止步不前。

如果希望一辈子走技术的道路,就要有自己的核心竞争力,这个核心竞争力决不是凭以往的经验能够做某些工作的能力,而是学习能力、思考能力和解决有挑战性的新问题的潜力。

在IT这一行,凭借以往的经验干重复的活是干不长久的,原因很简单,一个问题不会被解决两次,当你发现你的经验能够解决一类问题时,别人早把解决这一类问题的套路编写成framework,新上手的人即使不具备你的这些经验也可以调用framework中的类和函数来解决问题,然后在这个framework的基础上积累新的经验解决新的问题。正因为如此,全世界开发人员的经验才会积累起来,促使软件技术发展得如此迅速。 这并不是说经验完全没有用,最关键的,学习和思考也是建立在以往经验的基础之上的。另一方面,现有的framework并不一定是某方面开发经验的完美整合,也需要不断发展,用新的办法重新解决老问题,以Web开发为例,从早期的ASP、PHP到后来的.NET、J2EE,到现在的Ruby on Rails、Django等等,这些framework解决的是同一问题,就是如何快速有效地开发Web应用,这方面的经验被不断重新整合,推陈出新。总结一下,什么才是核心竞争力呢?应该是在经验的基础上学习新技术、解决新问题的能力

学习应首先理解基本的框架和思想(这是泛读), 然后是细节(这就是对某些内容的精读),虽然真正的学习往往是混合了这二个过程的过程

学习过程中的陷阱

追求完全,追求完全的确定性

任何事情都要追求完美才敢继续往后进行,是一种性格缺陷。大胆的放弃一些东西吧,有失才有得,
把自己有限的、宝贵的精力用在直接相关的地方,这才是最有效率的学习方式!

“一开始追逐细节,是应试教育的硬伤”。为了考试难住你,必须抠各种恶心的细节。
所以,为了应试,学生也必须跟着抠八辈子用不着的细节。
为了应付从小学到大学的考试,我们背了各种各样的不应该提前掌握的细节,同时也养成了见到细节就抠的习惯。
而现在,是到改改的时候了,学习要学会变通 。请在合适的时间,做合适的事情吧。

把时间和精力花在做项目上面,花在写作品以及锻炼解决问题的能力上面吧,这是迈向高手正确的、而且快速有效的方法。
当你看书到某个地方暂时不理解的时候,暂时放手吧,追求一些行云流水、自然而然的境界吧,
只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的。
以项目实战驱动的学习,当把握了技术的脉络之后再去补充细节的研究,才是正途。

习惯性防御

当我们感觉到自己的认知、观点、尊严可能会受到挑战的时候,我们第一个反应不是思考对方的挑战和质疑是否合理,
而是:有人敢反对我,和他干!这时候,我们的习惯性防卫就产生了。

习惯性防卫是人类进化过程中发展出的一种自我保护机制。
但是,在知识而非体力占主导的社会中,这种根深蒂固的防卫习惯会不知不觉地阻碍我们成长,而且还会破坏人际关系

红绿灯思维
红灯思维:一听到不同的观点就消极处理,准备防卫。
绿灯思维:当遇到新观点或不同意见时,立即开启寻找对方合理性开关,立刻想:哇,他这么说一定有它的合理性,我应该怎么用它来帮助自己?

如何减少习惯性防御的不利影响?
区分“我”和“我的观点/行为”,不再把对自己观点的质疑与自己这个人绑定起来。
我的成长来自“我的观点/行为”的改进和提升,而别人对“我的观点/行为”提出意见,正是我们能够从不同角度获得启发和成长的机会。
下次我们再面对挑战时,就可以从容地问自己:我的观点是不是可以在别人的意见里进化得更好

注意力漂移,是我杜撰的一个词,用来作为注意力集中 的反义词 —— 因为更多的时候,我们并不是 “注意力不集中”,而是…… 而是更令人恼火的一个现象:

 “注意力所集中的焦点总是不断被自己偷偷换掉……”

比如,你本来只不过就想着去 Google 一个编程错误信息的解读,结果不知道怎么就 “注意到” 了另外一个东西,比如,“某编辑器的皮肤”,然后你就 “顺手” 把它下载下来,然后 “很自然地顺手把它装上”,而后又看了看,觉得有点必要于是 “顺手做了点定制”…… 然后欣赏了一会儿,并自我得意一番之后 “突然发现” 自己还没有解决两小时之前要解决的问题!

说这种现象 “令人恼火”,是因为那注意力所集中的焦点,是被自己偷偷换掉的!

好奇心越重的人,越是容易被注意力漂移所拖累。

 注意力漂移不是能杜绝的现象,但必须在关键时刻有所应对……

我买笔记本,不是为了记笔记的,因为记笔记这个东西,实在是在电脑上做更方便,许多年前开始就是如此了。我的笔记本主要用来做一件事:
* 罗列整理那些为了做到 “全面完整” 而必须优先做的事。
用列表也好、或者用图表也罢,反正都是要不断整理修订的,而它的存在,给了我一个优先级:
* 除了这上面罗列的这些东西之外,在当前时间段,别的都不如它们重要。
一旦发现自己的注意力没有集中在这上面的关键之时,一旦发现自己的注意力已经漂移到其它当前并不重要的事项上,就马上纠正。

学习瓶颈

学习遇到瓶颈,其实是一件再正常不过的事情。就像一个奔跑的人,迟早会撞到阻挡自己前进的墙壁。如果遇到墙壁就转弯,遇到墙壁就转弯,那你跑一辈子也跑不出这间房子。所以,无论你面向何处,你要做的就是想尽一切办法,翻越自己面前这堵墙,千万不要转弯。墙内和墙外就是两个世界,业余和专业就是一墙之隔。

如何完善自己的知识结构

领域(学科)

如何系统性学习

何为“系统性学习”?

“系统性学习”的两个特点——广度深度
“系统性学习”与其它学习方式的差别,就体现在这两个特点。只有同时具备了广度深度,才有资格说你系统性掌握了这个领域。

最终目标——真正的理解与运用
“广度”与“深度”只是“系统性学习”的表观特征。“系统性学习”的最终目的是真正的理解。只有当你理解了某个领域,你才有可能去运用它。

费曼学习法的应用

所谓的“费曼学习法”,如果用一个词来概括,就是以教促学
假设你正在学习某个领域,为了运用该方法,你不妨假想:要把该领域传授给另一个人,并且此人在该领域的基础很差(属于该领域的菜鸟)。

入门之后,如何在不同分支安排你的时间与精力?

DIKW 模型(Data Information Knowledge Wisdom)

Data:离散、不相关的事实、文字、数字或符号
Information:经过筛选、整理与分析的资料
Knowledge:结合个人能力与经验的信息,用于解决问题或创新知识
Wisdom:基于个人价值与信仰的前瞻性看法与想法

Information(信息)与 Knowledge(知识)的区别:
* 生命周期的长短
information 的生命周期很短(短命),而 knowledge 的生命周期会比较长(长命)。
* 碎片化的程度
information 不光是短命滴,而且是高度碎片化滴。相比之下,knowledge 就不那么碎片,而且 knowledge 还可以形成某种体系
* 单一领域 VS 跨领域
关于 knowledge 与 wisdom 的差异,还有一个就是“领域相关性”。
通常而言,knowledge 附属于某个特定领域;而 wisdom 则不然——有些 wisdom 属于单一领域,还有一些则跨领域。显然,后一种 wisdom 比前一种更重要(更有价值)。

学习三部曲 WHAT HOW WHY

认知的过程

稍微了解“认知心理学”的网友应该知道:我们对某个事物的认识,总是“由浅到深”。虽然同样是由浅到深,但每个人思考的深度却千差万别。不幸的是,大多数人在看待某个东西(事物、问题、现象)的时候,都仅仅停留在浅层次。
为啥会这样捏?一个很重要的原因就是:大多数人不善于提问。
如何才能掌握提问的窍门捏?如何才能在提问中加深思考捏?俺总结了一个比较简单的提问三部曲:WHAT、HOW、WHY。通过这个三部曲,你可以一步步地从事物的表象深入到事物的本质

WHAT HOW WHY 的步骤

如何挖掘网络资源

网站内容的评价指标

通过这些指标,可以评估某个网站对你的价值到底有多大,还可以评估你挖掘其中的内容需要耗费多少时间和精力。
* 内容的信噪比
任何一个网站的内容,都会有一些信息是无用的,咱们称之为“噪声”。所谓的信噪比,就是是“有用信息”与“垃圾噪声”的比率。显然,信噪比越大越好。
提醒一下:信噪比的评价是主观滴。因为每个人的关注点(价值取向)不同,所以同样的内容,对不同的人,会有不同的信噪比。

俺通常关注那些生命周期较长的内容。因为在网上冲浪是需要消耗时间和精力的。如果你关注的都是生命周期很短的信息,从“投资回报率”的角度来看,是不合算滴!

斜杠青年的误区

在有多个兼职的情况下,所谓的学习知识,锻炼能力,增加的往往只是一个“能力假象”罢了。你更多的只是经历了一下而已,认知深度并没有明显增加。
多元的经历如果不能帮助我们提升认知深度,从长期来看,那也是低效的。
盲目追求多元学习,兼职变现,表面上看是在提升能力,其实都是肤浅地拿时间直接变现而已。
一开始就能带来直接利益和诱惑的事情,很可能要拿未来的机会做代价。
斜杠应该更加深入探索、提升认知深度的结果,而不是简单追求多元的结果。
在今天这个人才高度流动、社会分工不断细化的时代,竞争越来越激烈,你必须在一个领域做到极致,对它的认识足够深刻,才有可能获得真正的话语权。

学习和思考的过程中常问自己的几个问题

  1. 你的问题到底是什么?(提醒自己思考不要偏离问题。)
  2. OK,到现在为止,我到底有了什么收获呢?(提醒自己时不时去总结,整理学习的东西)。
  3. 设想自己正在将东西讲给别人听(有声思考;能否讲出来是判断是否真正理解的最佳办法)。
    3.1 设想需要讲给一个不懂的人听。(迫使自己去挖掘知识背后最本质、往往也是最简单的解释)。
  4. 时常反省和注意自己的思维过程。尤其是当遇到无法理解或解决的问题之后,最需要将原先的思维过程回顾一遍,看看到底哪个环节被阻塞住了妨碍了理解。问题到底出在哪里。并分析以后需要加强哪方面的思维习惯,才能够不在同样或类似的时候被绊住。对此,将思维的大致脉络写下来是一个很好的习惯。
  5. 养成反驳自己的想法的习惯:在有一个想法的时候,习惯性地去反驳它,问自己“这个难道就一定成立吗?”、“有没有反例或例外?”、“果真如此吗?”之类的问题。(参见Critical Thinking
  6. 人的思维天生就是极易流于表面来理解事物的(参见《Psychology of Problem Solving》第11章)。觉得自己理解了一个问题了么?条件反射性地问自己:你真的理解了吗?你真的理解了问题的本质了?问题的本质到底是什么?目前我的理解是什么?我对这个理解感到满意吗?这样的理解到底有什么建设性呢?等等。

2. 重视知识的本质:对于程序员来说这一点尤其重要,程序员行业的知识芜杂海量,而且总是在增长变化。很多人感叹跟不上新技术。应对这个问题的办法只能是:抓住不变量。大量的新技术其实只是一层皮,背后的支撑技术其实都是十来年不变的东西。底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。

3. 重视积累的强大力量,万事提前准备:计划订长一点,自然就可以多获得准备的时间。设想你若干年后会在做什么事情,需要哪些技能,现在就开始准备。一个5年计划便可以让你获得从现在开始的5年准备时间。5年中每天腾出半个到一个小时专心于某一件事情,认准一个方向,每次走一点,其实不要说5年,两年就会发现会起到宏大的效应。长期订阅我的Blog的朋友们也一定注意到我基本上不写东西,一般一个月写上2篇就算多的了。但总结一段时间的学习和思考的习惯却一直都没有停止(博客文章对我来说是学习和思考的副产品,我并不为写文章而写文章),所以5年下来竟也写了不少东西。所以这就是一个简单的例子。你大致还可以从我的Blog看出来我一段时间关注的东西,一般来说,一段比较长的时间(少则半年至一年——譬如对心理学与思维的关注;多则几年——譬如对编程技术的关注),在这段时间内,我的业余时间会被一个主题所充斥。反之,如果不知道目的是什么,就不知道往哪个方向上使劲,就容易产生无用功。

4. 抬起头来:人的思维是非常容易只见树木不见森林的(否则这个成语从哪来的呢?)。时不时抬起头来审视一下自己正在做的事情,问一问它(对现在或未来)有什么价值,是不是你真正希望做的。你学到的东西到底是什么?它们重要吗?你需要在这个时候学习这些吗?(见第2条)。你的时间就是你的资源,你投入这些资源来掌握知识,所以到底用来掌握哪些知识是一个很重要的问题。仅仅遵循兴趣是不够的,人会对很多次要的东西产生兴趣,并一头钻进去浪费好多时间。所以判断一个东西值不值得学习是很重要的。

  1. 看书挑剔,只看经典。如何选择经典,可以到网上做做功课,看看评价,综合分析一下。
  2. 获得的多少并不取决于读了多少,而取决于思考了多少、多深。

1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去。万事开头难,因为从不了解到了解基本的一些事实,是一个新知识暴涨的阶段,这个时候的困难是最大的。有人熬不过去,觉得困难太大就放弃了。不过,狂热的兴趣可以抵消对困难的感觉,所以趁着对一件事情有热情的时候,开一个好头是很重要的。(当然,这并不是说持之以恒就不重要了)。当然,也许这个是因人而异的,对我来说我会在对一件事情有浓厚兴趣的时候非常专注地学习,把很多 groundworks 做掉。后面就会顺利一些了。

2. 根据主题来查阅资料,而不是根据资料来查阅主题。以前读书的时候是一本一本的读,眼里看到的是一本一本的书,现在则是一章、甚至一节一节的读,眼中看到的不是一本一本的书,而是一堆一堆的章节,一个一个的知识主题,按照主题来阅读,你会发现读的时候不再是老老实实地一本书看完看另一本,而是非常频繁地从一本书跳到另一本书,从一处资料跳到另一处资料,从而来获得多个不同的人对同一个主题是如何讲解的。比如最近我发现在看蒙特卡罗算法时就查了十来处资料,其中有三四篇 paper 和六七本书;这是因为即便是经典的书,你也不能指望它对其中每一个主题的介绍都是尽善尽美的,有些书对某个主题(知识点)的介绍比较到位,有些书则对另一些知识点介绍得比较到位。而有时候一篇紧凑的 paper 比一本书上讲得还要好。我硬盘里面的书按主题分类,每个主题下面都有一堆书,当我需要学习某个主题的知识时(譬如贝叶斯学习或者神经网络),我会把里面涉及这个主题的书都翻开来,索引到相关章节,然后挑讲得好的看。那么,如何判断一个资料是好资料还是坏资料呢?

3. 好资料,坏资料。好资料的特点:从问题出发;重点介绍方法背后的理念( rationale ),注重直观解释,而不是方法的技术细节;按照方法被发明的时间流程来介绍(先是遇到了什么什么问题,然后怎样分析,推理,最后发现目前所使用的方法)。坏资料的特点是好资料的反面:上来就讲方法细节,仿佛某方法是从天上掉下来的,他们往往这样写“我们定义… 我们称… 我们进行以下几个步骤… ”。根本不讲为什么要用这个方法,人们最初是因为面对什么问题才想到这个方法的,其间又是怎样才想出了这么个方法的,方法背后的直观思想又是什么。实际上一个方法如果将其最终最简洁的形式直接表达出来往往丢失掉了绝大多数信息,这个丢掉的信息就是问题解决背后的思维过程。至于为什么大多数书做不到这一点,我在这里试着分析过。

4. 学习一个东西之前,首先在大脑中积累充分的“疑惑感”。即弄清面临的问题到底是什么,在浏览方法本身之前,最好先使劲问问自己能想到什么方法。一个公认的事实是,你对问题的疑惑越大,在之前做的自己的思考越多,当看到解答之后印象就越深刻。记得大学里面的课本总是瀑布式地把整个知识结构一览无余地放在面前,读的过程倒是挺爽,连连点头,读完了很快又忘掉了,为什么?因为没有带着疑问去学习。

5. 有选择地阅读。很多人觉得我读书速度很快,其实我只是有选择地阅读。这里的选择体现在两个地方,一是选择一本书中感兴趣的章节优先阅读。二是对一本书中技术性较弱或信息密度较低的部分快速地略读。一般来说,除了技术性非常强的书之外,大多数书的信息密度很低,有很多废话。一般来说在阅读的时候应该这样来切分内容:1. 问题是什么?2. 方案是什么?3. 例子是什么?如果是需要解释一个现象的(譬如《黑天鹅》),那么1. 现象是什么?2. 解释是什么?3. 支撑这个解释的理由是什么?4. 例子是什么?一般来说,这一二三四用不了多少字就可以写完了(如果假设只举一到两个精到的例子的话),这样的无废话著作的典型是《合作的进化》;那为什么有些书,明明核心观点就那点东西(顶多加上几个精要的例子罢了)却写得长得要命呢?因为人的思维都有一个“联想”的特点,写着写着就容易旁逸斜出,而且作者自己也往往觉得引申出去挺牛逼,有时候很多与主题无关的废话就掺和进来了;那么,阅读的时候就应该有选择性地滤掉这些不相干的废话;此外还有一种可能性就是大量冗余的例子。一般来说组织得比较好的书会有详细且一目了然的目录和索引,根据目录首先就可以滤掉一部分(比如某个子章节的内容你以前是看过的),然后有时候作者还会举很多冗余的例子,如果你已经觉得印象够深刻了这些例子完全可以不看(一些书就非常厚道地对每个观点只辅以一两个最最经典的例子,譬如《与众不同的心理学——如何正视心理学》,这样的书我最是喜欢)。

6. 为什么看不懂?如果看不懂一个知识,一般有如下几个可能的原因:1. 你看得不够使劲。对此古人总结过——书读百遍其义自现。虽然这个规律不是任何时候都成立的,但是从认知科学的角度看是完全可以解释的,我们在阅读的时候,注意力往往会有选择性地关注其中的某一些“点”,而忽略了另一些“点”,于是一遍看下来可能因为某一些忽略导致无法理解整体。或者干脆看的时候就没注意其中一些细节但重要的东西。此外,大脑理解一个东西需要一定的处理时间,人脑的处理速度很慢,神经冲动每秒传输速度不过百米,所以不能指望看到哪懂到哪。最后,我们可能因为思维定势的原因会从某个特定的角度去看一句话而忽略了从不同角度去理解的可能性。对于这类情况,仔仔细细地再多读两遍,多试着去理解两遍,往往会“哦!原来这样。”地恍然大悟。2. 其中涉及到了你不懂的概念。这是技术性的不理解。这种情况就需要 Cross Reference 。如果一句话中用到了你不懂的概念,那就去查,现在很多书都是电子书,直接搜索一下,或者,对于纸书,看一下书后面的索引就行了。奇怪的是很多人看不懂也不分析一下为什么不懂,就直接放弃了。正如解决问题一样,问题卡住解决不了,第一时间要做的就是分析到底为什么解决不了,而不是直接求救。3. 作者讲述的顺序不对,你接着往下看,也许看到后面就明白了前面的了。

杂项

7. 如何在阅读之前就能获得对一本书质量的大致评估。在深入阅读之前能够迅速评估一本书的质量可以节省很多时间。基本上有几个线索:1. 看作者。牛作者写的书一般都不错。2. 看目录和简介。一份好的目录和简介能够透露这本书质量的相当一部分信息。目录结构是否清晰,是否直白(而不是装神弄鬼),都是衡量的线索。3. 看 Amazon 上的评价,这里要注意的是,除了看整体打分之外,更要看打分最低的人是怎么说的,因为小众意见往往有可能来自那些真正懂行的人(除了来踢馆的),如果在打分最低的意见里面看不到真正有价值的反驳意见的话就相当肯定书是不错的了。4. 看样章。Amazon 上一般都可以随机浏览一些章节的,表达是否清晰,论证是否严谨,内容是否深刻,基本是几页纸就能看出来的。

8. 如何搜寻到好书。几个线索:1. 同作者的著作。2. Amazon 相关推荐和主题相关的书列(类似豆瓣的豆列)。3. 一本好的著作(或一份好的资料——不管是书还是网页)在参考资料里面重点提到的其他著作。4. 有时对于一个主题,可以搜索到好心人总结的参考资源导引,那是最好不过的。