学习,思维三部曲:WHAT、HOW、WHY
WHAT
所谓的 「WHAT」 也就是 「What is it」?——这是最简单的层次。在这个层次,你要搞清楚某个东东是「什么」样子的?有「什么」用处?有「什么」特性?有「什么」语法?
**基本概念例如语法是什么,主要理解是什么东西!**
HOW
所谓的「HOW」就是「How to do」?。在这个层次,你要搞清楚某个东西,其内部是「如何」运作的?「如何」实现的?
- 举例如下:
假如你在学习 C++ 语言,你是否搞明白函数传参数的实现机制?虚函数是如何实现?抛出异常时的栈回退是怎么回事?…… - 假如你在学习 Java 语言,你是否搞清楚 GC 如何实现?反射是如何实现?……
- 假如你在学习 JDBC 库,你是否清楚 JDBC Driver 的 4 种类型?不同游标类型的实现机制?事务的机制?……
在这个阶段,你必须多想想类似这些问题。然后通过各种途径,把问题彻底搞清楚。自然而然,你的提高就会比较明显。而且如果碰到一些深层次的问题(比如性能优化),也就知道该如何去解决。
理解是学习的这个东西如何实现的,原理是什么
WHY
前提是理解how之后才能继续考虑why
所谓的「WHY」,就是搞清楚某个东西「为什么」设计成这样?「为什么」不是另外的样子?这样的设计有什么讲究?
- 举例如下:
对于 C++ 语言:为什么 C++ 没有类似 Java 的 finally 关键字?为什么当初发明 C++ 的时候没有考虑 GC?…… - 对于 Java 语言:为什么 Java 没有类似 C++ 的类析构函数?为什么 Java 要同时提供 String 和 StringBuffer 两个似乎冗余的类?……
- 对于 Python 语言:为什么 Python 不提供类似 C++/Java 的访问控制机制?
理解为何这样设计
康奈尔笔记法
康奈尔笔记法,又叫5R笔记法,几乎适用于一切讲授或阅读课,特别是听课笔记。很多名校学霸在分享学习经验时,都会推荐它。
康奈尔笔记法的设计非常简单,只需要在普通的笔记本上画一横一竖两条线就可以了,具体实施步骤如下:
把笔记本纸张按照一定比例分成三个区域,分别是笔记栏、线索栏、总结栏。

(1)记录:在听讲或阅读过程中,在笔记栏内尽量多记论据、概念等内容。
(2)简化:将这些论据、概念简明扼要地概括在线索栏。
(3)背诵:把笔记栏遮住,只用线索栏中的摘要提示,回忆笔记栏内容。
(4)思考:将随感、思考、体会的内容,写在下方总结栏处。
(5)复习:每周花一定时间复习笔记,翻看总结栏,检查自己对知识点是否都已熟练掌握,如有未能掌握扎实的内容,再回去看笔记栏。