最近花了几天零碎的时间把刘未鹏先生关于学习方法的相关博客看了一遍,觉得讲得很有道理,下面把觉得我感受很深的地方摘录下来了。
特别说明:本文是我对刘未鹏先生关于学习方法相关博文的阅读后的一些总结和整合。如有需要请查看原文博客园地址:https://blog.csdn.net/pongba/
(一)英语的学习方法
看英文版的书wikipedia和英文版的书为多。可以不用额外花时间来学习英语:阅读的训练蕴含在平时的英文技术资料的阅读中,尽量读英文的,一来英文资料更一手和全面,二来也顺便练阅读。书写的训练蕴含在去国外邮件列表发技术贴和自己写的英文博客文章中。口语的训练则蕴含在平时的娱乐中——美剧。
(二)重视知识的本质
抓住不变量,关键要了解那些重要的思想(很长时间不变的东西),而不是很细的技术细节(易变的东西)。底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。啃一些底层知识时如果弄不懂,也会一遍遍读,然后用走路吃饭坐车的时间在脑子里一遍遍去琢磨。
(三)关于阅读
(1)遇到任何问题,找书去就行。
(2)看书挑剔,只看经典。
(3)学会在纷繁的知识中抽象出那些重要的,本质的,不变的东西。 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构 是怎样的。学习一个小领域的时候,时时把“最终能够写出一篇漂亮的Survey”放在大脑中提醒自己,就能有助于在阅读和实践的时候有意无意地整理知识的结构、本质和重点,经过整理之 后的知识理解更深刻,更不容易忘记,更容易被提取。
(4)趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去。
(5) 根据主题来查阅资料,而不是根据资料来查阅主题。
(6)选择一本书中感兴趣的章节优先阅读。目录很仔细的看一看,最有趣的部分阅读,有选择地阅读。一章、甚至一节一节的读,眼中看到的不是一本一本的书,而是一堆一堆的章节,一个一个的知识主题,按照主题来阅读,你会发现读的时候不再是老老实实地一本书看完看另一 本,而是非常频繁地从一本书跳到另一本书,从一处资料跳到另一处资料,从而来获得多个不同的人对同一个主题是如何讲解的。
(7)对一本书中技术性较弱或信息密度较低的部分快速地略读。读的时候有轻有重,有的地方快,有的地方慢,看到觉得重要的地方,要随手做笔记。这一页我需要,这一段我需要,我把它分类分出来了。任何书里有关的内容都进入我的资料里来。(记忆力是可以训练的。记忆力一开始就是你不要偷懒,不要说躺在那里看书,看完了这本书还是干干净净的,整整齐齐的,这不对。)
(8)有的书整个就可以略读,我一般把 书分为两类,一类是知识的。一类是思维的。一般是在学习知识性的东西的过程中抽时间阅读思维方面的书,1) 观其本质。2) 观其大略。只有当急着要用的时候,才需要去注意技术细节。
任何一点时间都可以用于阅读。一本再厚的书,只要每天看一点,总有看完的一天.阅读过程中遇到 任何值得思考的东西,可以放在任何大脑有空闲的时候思考:思考绝对不是一件疲劳的事,而是一件放松的事。创造大块的时间来阅读重要的东西,因为这样有利于“沉浸”进去,使得新知识可以和大脑中与其相关的各种既有的知识充分融合,关联起来。
(9)看不懂的原因
1) 你看得不够使劲
2) 其中涉及到了你不懂的概念。这是技术性的不理 解。这种情况就需要 Cross Reference 。
(四)做事方法
(1)将思考成为习惯还有一个很大的好处——避免焦虑。,感到焦虑的时候不妨思考吧,甚至完全可以去理性分析和思考导致焦虑的问题本身,将其拆解,分析来源,在不知不觉中,大脑的工作重心就从情绪模块转向了推理模块了,而且这思考也可能顺带更有效地解决了导致焦虑的问题呢:)
重要的事情优先。尽量避免琐事骚扰,不重要的事情能不做就不做。最糟糕的就是纯属性格上原因觉得每件事情都得第一时间完成,重要的事情营造比较大的时间块来完成。最好不要切得太琐碎了看,否则看了后面忘了前面。不利于知识的组织&联系。
(2)获得的多少并不取决于读了多少,而取决于思考了多少、多深。
(3)善于利用小块时间,也善于创造整块时间(如通过要事优先)。
(4)习惯的改正
第一条就是认识到习惯的改变绝不是一天两天的事情,承认它的难度。第二条就是如果你真想改掉习惯,就需要在过程中常常注意观察自己的行为,否则习惯会以一种你根本觉察不到的方式左右你的行为让你功亏一篑。,对于习惯的更改,除了最重要的一日三省,加上一些认知技巧(其实每个人都是自己的心理学家,你可以自己看看能不能想出什么法子)。
(5)专注。尽管学习时间很长,但学习密度极低,结果乘起来还是低。潜意识层面仍然在做思考的努力,从而虽然表层意识被其它事情占据,但潜意识仍然将时间无形中利用起来了。这种无形中的时间利用日积月累可以产生宏大的效应。如果表层意识和潜意识都能专注同一件事情,也就是俗称的完全投入,这个时候的效率就能double。对自己喜欢做的事情都是极其 专注的,让人焦虑的事情会积压在潜意识当中,总是在影响你专注做事,削弱你人生的效率。许多人对琐事错误的采取了主动式关注.,你走路、买菜、洗脸洗手、坐公车、逛街、出游、吃饭、睡觉,所有这些时间都可以成为“暗时间”,你可以充分利用这些时间进行思考,反刍和消化平时看和读的东西,让你 的认识能够脱离照本宣科的层面。这段时间看起来微不足道,但日积月累将会产生庞大的效应。只做一件任务,专注的人比不专注的人时间利用效率高,能够迅速进入专注状态,以 及能够长期保持专注状态,是高效学习的两个最重要习惯。
(6)主动解决问题
你所需要的只是耐心地踏遍这块知识版图,当你掌握了那些你该掌握的知识之后自然会柳暗花明。很大程度上你遇到的每个问题都不是孤立的,既然你遇到了某问题,那么很大的可能性你以后还会遇到类似的问题。,你自己动手解决也能培养学习能力和思考能力。每次直接问到问题的答案的同时意味着你永远都要靠别人的大脑来获得答案。困难的路越走越容易,容易的路越走越难。
(7)学习方法
最佳的学习方法就是先广度优先遍历(先弄清What和Why),然后择最合适的分支深入(How)。(程序员基本上是去解决一个定义好的问题,去实施一个定义好的方案。真正判别弱智与否的并非用什么语言技术,而是做出什么产品满足什么需求,并不是让自己感觉爽的做法就是真正解决问题的做法,再牛再难做的 feature 如果不能带来商业价值那就是负收益。)a. 一件事情仅仅让你感觉挺牛不代表这件事情就是值得做的; b. 一件事情仅仅让你感到很有兴趣并不代表这件事情就是值得做的。编程语言是为了实现软件的,软件是为了服务于人的。不要为了工具而工具.不要落入为技术而技术的怪圈,而是首先想明白做的事情有什么价值,先弄清做什么,为什么做,再去想怎么做,这样后面的功夫才花的有价值。
(8)设计你自己的进度条
没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有一个粗略的估计,这个估计是一剂定心丸, 让我们知道这事情总会并且会在不久的将来完成。善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生怯意,不要过早退出循环.不管有多纠结,也不要从纠结中逃离,试图推延决定,既然终究是个痛苦的决定,就痛一回,好好思考和调查之后作出一个决定并坚持下去.
(五)关于书写
(1)书写是对思维的备忘:维过程记录下来,则给了我们完全的回溯自己的思维轨迹的可能。而将思维过程记录下来,则给了我们完全的回溯自己的思维轨迹的可能。先用关键字记在 一旁,一会回头再仔细思考。某种程度上这里笔记起到了备忘的作用。
(2)书写是对思维的缓存。
(3)书写是与自己的对话:一行文字被你写下来之后,你就不用再将其费力地保持在大脑的临时记忆中,于是你就可以将空出来的思维精力用于反思你自己的观点。
(4)书写是与别人的交流:每个人的盲点不一样,你的盲点可以在别人那里得到补充,别人的盲点也可以被你纠正。三个臭皮匠顶一个诸葛亮的含义便在于此。
有时候,语言自己也会思考:
如果你逼着自己将一些不成熟的想法写下来,看着自己写的内容,试着进一步拓展它们,就有可能在理性的道路上走得很远,很远。
(六)写博客
写博客的好处
1) 能够交到很多志同道合的朋友。
2) 书写是为了更好的思考。
3) “教”是最好的“学”。如果一件事情你不能讲清楚,十有八九你还没有完全理解。如果你选择经常总结自己的知识体系,并说出来给你的读者听,你就会发现你自己创造了这样的机会。
4) 讨论是绝佳的反思。
5) 激励你去持续学习和思考。
6) 学会持之以恒地做一件事情。
7) 一个长期的价值博客是一份很好的简历。
让你自己成为一个持续学习和思考的人,并只写你真正思考和总结之后的产物,其他一切就会随之而来。
写博客存在的顾虑
1) 担心别人认为没有价值。问题的困难程度不在于想通了之后还觉得有多难,而在于从你觉得它难到你觉得它简单需要耗费多少思维体力,
2) 担心想法太幼稚或有漏洞等等被别人笑话。
3) 得不到激励。
4) 写不出来。前者在生活中总是挂着几个问题在大脑中,它们时常都会冒出来骚扰你一下,让你琢磨琢磨,不爱思考的则是没事不主动想问题,遇到问题还要先想想是否能找捷径(找人帮忙)解决。无论如何,不用急于求成,在一个主题上深入下去思考,总能挖到别人挖不到的角落。能够把问题长时间停靠在潜意识中是一种技能,能够带来很大的好处, 停留得越长你越琢磨得透彻,比别人看到的就越多。
(七)关于记忆
你所拥有的知识并不取决于你记得多少,而在于它们能否在恰当的时候被回忆起来。对于理解记忆的人来说,知识中包含了精细的概念、逻辑、一般的解题原则、通用的解题手法、背景知识、类似的问题等等无数的记忆和提取线索。富含线索的记忆则是罗马,条条大路通罗马。至会把语言背景作为线索编码进记忆,加几个自己熟悉的关键字,比如用自己的话来概括一下主旨。从既有经验中总结知识的时候,应利用适当的抽象来得出适用范围更广的知识,触及其本质,去除不相干因素避免干扰,从而有效提取之前抽象出来的知。
1) 养成习惯,经常主动回顾一段时间学到的东西
2) 创造回忆的机会:
2.1) 经常与别人讨论,或者讲给别人听
2.2) 整理笔记
2.3) 书写:
泛化、推广、举一反三、抽象。
5) 联系/比较自身的经历:
(八)什么才是你的不可替代性和核心竞争力
专业领域技能:成为一个专业领域的专家,你的专业技能越强,在这个领域的不可替代性就越高。这个自是不用多说的。
跨领域的技能:解决问题的能力,创新思维,判断与决策能力,Critical-Thinking,表达沟通能力,Open Mind 等等。
学习能力:严格来说学习能力也属于跨领域的技能,但由于实在太重要,并且跨任何领域,所以独立出来。如何培养学习能力,到目前为止我所知道的最有效的办法就是持续学习
和思考新知识。
性格要素:严格来说这也属于跨领域技能,理由同上。一些我相信很重要的性格要素包括:专注、持之以恒、自省(意识到自己的问题所在的能力,这是改进自身的大前提)、好
奇心、自信、谦卑(自信和谦卑是不悖的,前者是相信别人能够做到的自己也能够做到,后者是不要总认为自己确信正确的就一定是正确的,Keep an open mind)等等。
另外本人还开设了个人公众号:JiandaoStudio ,会在公众号内定期发布行业信息,以及各类免费代码、书籍、大师课程资源。
扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!
例如:想获得Python入门至精通学习资料,请回复关键词Python即可。