我的学习思维:有关阅读的方法

这篇主要写一些学习(尤其是阅读)的基本方法。

1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去

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

2. 根据主题来查阅资料,而不是根据资料来查阅主题

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

3. 好资料,坏资料

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

4. 学习一个东西之前,首先在大脑中积累充分的“疑惑感”

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

5. 有选择地阅读

很多人觉得我读书速度很快,其实我只是有选择地阅读。这里的选择体现在两个地方,一是选择一本书中感兴趣的章节优先阅读。二是对一本书中技术性较弱或信息密度较低的部分快速地略读。一般来说,除了技术性非常强的书之外,大多数书的信息密度很低,有很多废话。一般来说在阅读的时候应该这样来切分内容:

  • 问题是什么?
  • 方案是什么?
  • 例子是什么?

如果是需要解释一个现象的(譬如《黑天鹅》),那么

  • 现象是什么?
  • 解释是什么?
  • 支撑这个解释的理由是什么?
  • 例子是什么?

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

6. 为什么看不懂?

如果看不懂一个知识,一般有如下几个可能的原因:

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

杂项

7. 如何在阅读之前就能获得对一本书质量的大致评估

在深入阅读之前能够迅速评估一本书的质量可以节省很多时间。基本上有几个线索:

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

8. 如何搜寻到好书

几个线索:

  • 同作者的著作。
  • Amazon 相关推荐和主题相关的书列(类似豆瓣的豆列)。
  • 一本好的著作(或一份好的资料——不管是书还是网页)在参考资料里面重点提到的其他著作。
  • 有时对于一个主题,可以搜索到好心人总结的参考资源导引,那是最好不过的。
时间: 2024-10-07 05:00:09

我的学习思维:有关阅读的方法的相关文章

编程哲学之C#篇:02——学习思维

<代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系统的思维, 所以我也尽早地介绍我写本系列中会经常运用的学习思维. 类比 你知道什么是驱动程序吗,你会怎么向一个小学三年级的学生解释什么是驱动程序呢? 我会跟这个小学生说,现在假设你要准备一个宣传活动,为了这个宣传活动, 你请了一位来自奥地利的音乐家,他能演奏各式各样的音乐,他的名字叫声卡,他是说德语的. 你请

学习思维

1.学习计算机,一定要多动手. 2.遇到问题自己找方法,并解决掉.做好笔记. 3.了解这东西是什么,才去做.这是什么,用在什么地方 ,什么时候用,为什么要用,接下来怎么用. 4.做好笔记,经常优化自己的知识架构,梳理知识架构. 5.学一项新知识的时候,先快速有个概貌的了解,知道有几个子系统,了解每个子系统的作用.处于什么样的地位.然后各个攻破,在进行一个总的概括. 学习思维,布布扣,bubuko.com

Ajax学习教程在线阅读

  1.什么是AJAX ?(1) 2.什么是AJAX ?(2) 3.什么是AJAX ?(3) 4.什么是AJAX ?(4) 5.Ajax基础教程(1)-Ajax简介 1.1 Web应用简史 6.Ajax基础教程(1)-Ajax简介 1.2 浏览器历史 7.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程 8.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程(2) 9.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程(3) 10.Ajax基础教

【转载】学习新东西的唯一方法

作者: 译/Jodoo  来源: 简书  发布时间: 2016-02-11 19:37  阅读: 7744 次  推荐: 45   原文链接   [收藏] 英文原文:The Only Technique To Learn Something New 有人曾从我工作的一家公司盗取了9千万美元.我不太懂得如何观人识人.这家公司最终关门了. 有一些事情我就是学不会.我很容易相信一个人. 因此,无论我如何尝试,判断一个人对我来说,简直太难了.所以,我寻找擅长做这件事的人,我让他们给我提供帮助. 不要强迫

程序员怎么学习C++?3大方法让你快速入门!

C++是一门系统级语言,有些程序员小伙伴学了很久才明白明白栈与堆.内存管理等的含义. 新手程序员学习C++很容易陷入误区,就是不停地啃书本,结果把自己搞的晕头转向的. 一个类的成员函数包含了重载.覆盖.虚函数.纯虚函数等,不得不说复杂. 程序员怎么学习C++?3大方法让你快速入门!最后,如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题. 那么,如何学习C++比较靠谱呢?w3cschool分享3种方法: 0.

怎么学习C++?3大方法让你快速入门

序言 C++是一门系统级语言,有些程序员小伙伴学了很久才明白明白栈与堆.内存管理等的含义. 新手程序员学习C++很容易陷入误区,就是不停地啃书本,结果把自己搞的晕头转向的. 一个类的成员函数包含了重载.覆盖.虚函数.纯虚函数等,不得不说复杂.最后,如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题. 那么,如何学习C++比较靠谱呢?小编接下来会分享3种方法: C++入门学习方法 首先要对C++有一个全局的认识

教你如何学习思维导图

我们学习思维导图,是否成效,有进步其实决定因素很多,而我们能做的就是在大家起步都一样的时候,比他人多掌握一份思维导图技巧,我们在思维导图的路上也就能够走得更远一些. 第一 态度.这是学习和掌握思维导图的根本,它决定了我们对思维导图掌握的程度.很多时候,是我们的决心和信心决定了我们未来成就的高度. 第二 速度.我们练习和应用的速度,即我们的执行力如何,学了不用就是油费 .在我们的 生活中有多少梦想和计划是由于我们缺乏执行力而成为泡影 .所以,计划很重要,行动更重要. 第三 力度.力度决定了我们可以

jQuery学习笔记--JqGrid相关操作 方法列表(上)

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选中行:$("#jqGrid

Python学习思维导图

无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 详情见:https://woaielf.github.io/2017/06/13/python3-all/ 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程

阅读ICONIX方法笔记

主要步骤包括:1.域建模(领域模型)2.用例建模(动态模型)3.分析建模  4.健壮性分析5.交互建模(绘出时序图和设计级类图)      域模型(是一种由内向外的方式来分析系统的)(1) 确定直实世界中的抽象,即系统中将涉及的主要的概念性对象.(2) 域类(可以认为是实体类)的来源就是需求.领域知识以及问题陈述中的相关名词或名词短语等术语.(3) 识别完了域类后,就可以进行问题域建模,即进行域类图的绘制(可以有类之间的关联和泛化等关系)注意:这里的域类图只是一种表现形式,里面的一个类的层次关系