学习那些事儿
个人技术博客:点击跳转 (opens new window)
不知道你是否留意过这样一个现象,以前上学的时候,班里的那些优等生很少有绝对偏科的,他们通常每门功课的成绩都不错,而且大部分优等生会一直保持名列前茅,而排名比较靠后的学渣,似乎学什么都很费劲。有的人的确仅靠智商就可以吊打大多数人,我的高中同学里就有那种不用草稿纸就能解出数学和物理竞赛题目的大神,但那种人毕竟是少数,更多的人依然需要通过刻苦努力才能拿到一个不错的结果。但你也会发现,那些名列前茅的同学似乎并不是班里学习最刻苦的,当所有人都很努力的时候,“努力”本身就已经不再是核心竞争力了,个人的天赋和学习方法的差别最终会拉开人和人的距离。学习这件事情本身的技巧性是非常强的,只是其他人可能并不会告诉你,或者他们自己并没有意识到自己使用的方法比别人更高效,而只是把取得的成绩归结为自己比其他人更聪明。
软件开发是一个对学习能力要求很高的行业,前端领域的技术更是号称每10个月就完成一轮翻新,这就好像《爱丽丝梦游仙境》中红桃皇后所说的那样**“你必须不停地奔跑,才能留在原地,如果想要去另一个地方,你必须以双倍于现在的速度奔跑。”**在这个信息爆炸的时代,学习资源产生的速度要远远高于我们消化吸收的速度,即便以双倍的速度去学习,可能也无法阻止电脑里收藏夹日渐臃肿的趋势。你一定要意识到,自己能够用于学习的时间是非常有限的,在这件事情上首先要学会的是计算性价比,使自己在付出同等的努力后尽量获取到更好的结果。
# 超级学习法(1)——图像记忆
图像记忆包含两种基本技巧,即**“串联记忆法”和“定桩记忆法”**,本节先来跟大家聊聊记忆那些事儿。
# 记忆这件小事
很多同学在准备面试时或者是准备某些考试时都会面临记忆大量基础知识的挑战,对于在校学生来说这可能并不算什么困难,但对于已经在职场上摸爬滚打多年的程序员来讲,这并不是一件容易的事情,记忆和复习的场景经常会演变成《夏洛特烦恼》里的那段“马什么梅?”“什么冬梅?”“马冬什么?”的名场面。很多人不知道的是,记忆的本质是一场关于想象力的游戏,其中有非常多实用的技巧,而且它们并不难掌握,相较于大多数人习以为常的“死记硬背”,使用记忆法会是一种非常奇妙的体验。
笔者当初在学习图像记忆的知识时,当为期两周的课程结束后,班里绝大多数同学都可以完成《弟子规》全文的正背、倒背和抽背(就是随便挑一个序号x,你需要将全文的第x句背诵出来),这其实是建立在“每日熟读+记忆线索”的技巧之上的。后来又因为觉得好玩,我决定去挑战图像记忆的经典项目——扑克牌记忆,在经过大约2个月左右的自行练习后,就能够在4分钟内记住一副打乱的扑克牌(国际记忆大师的考核标准之一是要求在2分钟内完成一副扑克牌的记忆),紧接着又利用同样的方法,用了3个月的复习时间考下了心理咨询师的资格认证。这听起来有些夸张,但在我看来大部分人通过训练都可以做到,而且小孩子的表现可能会更好,因为他们的想象力实在是太丰富了。我并没有继续坚持做记忆训练,但每当需要备考或者面对记忆型的任务时,仍然会先花一些时间来重温记忆法,它真的能让记忆变成一件没有压力的事情。
图像记忆,顾名思义,就是借助图像来辅助记忆的方法,也称为“导演式记忆法”。文字和图像都可以作为信息传递的媒介,但图像的信息密度和表现力要远远超过文字,“画面感”更强的事物通常会在人的脑海中留下更深的记忆。你可能很难回忆起曾经读过的某本书中的细节,却可以轻松地想起曾经看过的某部电影的情节,甚至能够回忆起演员的穿着、表情和经典台词,越是特色鲜明的片段记忆也越深刻。再比如你正在国外旅行,由于找不到目的地所以咨询路人,假如他告诉你“先顺着这条路向前走,走到尽头后右拐,接着在第一个路口左拐,到下一个路口时再左拐,在到下一个路口后右拐,沿着路走到底就到了”,恐怕你要反复确认好几次才能搞清楚到底要怎么走,但如果他直接在纸上简单地画一下路线,即使什么都不解释,你也会瞬间明白目的地在哪里(如图33-1所示)。
![img](file:///C:\Users\admin\AppData\Local\Temp\ksohtml58204\wps1.jpg)
再比如有一次一个朋友告诉我说他总是记不清JavaScript中的call和apply分别接受什么样的形参,我让他把apply想象成apple(苹果),苹果要用篮子来装,所以apply方法对应的形参就需要用篮子装起来,也就是将参数写在数组中。
曾经有一次笔者在高铁上遇到一个小姑娘在给她妈妈背诵《登鹳雀楼》,“白日依山尽,黄河入海流。欲穷千里目,更上一层楼。”她总是在背完前两句后想不起后两句,她妈妈提示说“欲”时她又能够脱口而出后两句诗文,我跟她说“你试着闭上眼睛想象一下这样一幅画面,在一条河里有好多小鱼在那里跳来跳去的,想象你就站在河边看着,能想象到吗?”小姑娘说可以。我接着说,“好,你下次背诵到黄河入海流的时候,就想想刚才鱼在河流里跳的画面,这个鱼就代表下一句的第一个字读yu,你再试试看。”你应该已经猜到了,这次她非常轻松地就想起了后两句,“鱼在河流里跳来跳去”的画面和这首诗并没有什么直接联系,但是它却可以为内容提供记忆线索。
这就是图像表达的优势,也是图像记忆所依据的基本原理,其本质就是利用图像来为需要记忆的事物提供记忆线索,图像既可以是事物本身,也可以是由谐音转换后才具有的形象。下面我们就来一起了解图像记忆的两种基本技巧,“串联记忆法” 和 “定桩记忆法”。
# 串联记忆法
“串联记忆法”就是通过动态画面将需要记忆的元素串联起来,就好像链条那样通过一环套一环的方式将需要记忆的内容整个联系起来。我们先来做一个尝试,这也是笔者当初在第一节图像记忆的课堂上所做的练习,请你先来背诵下面10个词:兔子、牙膏、保龄球、游泳池、石油、眼镜、打火机、手机、电线、桔子。不用太在意记忆的结果,我相信即使靠死记硬背,只要时间足够你也能做到。为了进行对比,你可以自己重新写下10个词语,接着用每两个相邻的词语在脑海中想象出一幅画面,比如兔子和牙膏,你可以闭上眼睛,在脑海里想象自己家养了一只兔子,突然有一天早晨你去洗漱的时候,看到它拿着你的牙刷正在挤牙膏;再比如保龄球、游泳池和石油,可能的画面是一个保龄球从高处掉落进游泳池里,溅起巨大的水花,你甚至可以想象自己被淋湿时的感觉,但是保龄球太重砸穿了池底,结果意外地发现池底有石油,黑色的石油瞬间喷了出来…….你并不需要将所有要记忆的事物完整地编成一个故事,只需要在它们两两之间建立联系就可以了,也不需要过于在意那些语言的描述,重点是闭上眼睛后,眼前看到了怎样的画面,在脑海的虚拟空间里,你可以尽情地释放自己的想象力,尽可能多地调动自己的感官去感受每个画面,越是夸张、奇怪、有特点的画面,越能够帮助你更好地完成记忆。“联想记忆法”的核心是图像,你的任务就是像导演一样,让这些待记忆的事物在眼前动起来,哪怕只是一出默剧。完成了想象力发散和串联记忆的环节后,你可以拿起笔再次尝试写出这10个词语,通常就会发现这个任务变得轻而易举,即使没能完成也没关系,那些无法回忆起来的部分很可能只是因为不清楚记忆技巧所以踩了一些小坑。比如,有的同学编故事编得很开心却忘了在脑海里想象画面,也有的同学在连接两个概念时使用了一些画面感较弱的动词,但总的来说,常见的问题都会随着练习而很快得到解决。
上文的练习可能会让你觉得这些方法离真实的记忆需要很遥远,毕竟日常需要记忆的事物大多是一些专业概念,它们可能并没有那么多具体的形象,面对这种类型的记忆任务,你需要采用谐音或是特征替代等方式来用一些具有形象的事物替代原本的概念。下面我们以TCP/IP五层模型为例来说明,你可以一边阅读下面的内容一边在脑海中勾勒出相应的画面:想象自己眼前有个大屏幕,灯光亮起来后,第一个画面在海里,一只乌贼游了过来,它的一只触手上拽着一根铁链子,链子的另一端是一张绿色的大网,里面有很多鱼,它奋力地往前游但是速度却不快,仔细一看,发现乌贼的后面有一只船正在追它,但船上并没有人,只有桅杆顶上站着一只老鹰,目光如炬死死盯着那只乌贼。如果你能够回忆起这个短片的情节,实际上就已经记住了TCP/IP的模型。乌贼的“乌”字是“物”的谐音,代表“物理层”,同理,铁“链”代表“数据链路层”,“网”代表“网络层”,“船”(谐音传)代表“传输层”,老“鹰”(谐音应)代表“应用层”,通过谐音和形象替代后,这些抽象的概念也就可以利用串联法来进行记忆了,当然这样的方式会将记忆和理解剥离成两件事情,但仔细一琢磨,它们好像本来就是两件事,就好像吃东西和消化吸收一样。当需要记忆的东西比较多时,你可以先通过简化、特征提取等方式来压缩需要记忆的内容,然后再利用图像记忆来记住它们。
# 定桩记忆法
图像记忆的另一个基本方法称为“定桩记忆法”,它的原理就是事先找到一些已经有序的元素作为“桩”,然后将真正需要记忆的内容拆分后分别与桩产生关联,这样在回忆时就可以通过桩子来想起真实的内容,字母、数字、地点等通常都可以作为“桩”来使用,越是高等级的记忆大师,脑海中能用的“桩”就越丰富。喜欢英剧的读者可能看过《神探夏洛克》这部电视剧,第三季第三集的大反派马格努森使用的超级记忆法“记忆宫殿”,就是“地点桩”的一种高阶形态,当然影视作品必然会有夸张的成分,但“定桩记忆”本身是真实存在同时也是非常实用的记忆技巧。
我们以“数字桩”为例进行说明。使用“数字桩”时需要先为数字0-100赋予对应的形象,你可以根据数字的特点自行选择要使用的形象,并反复强化这些形象和数字的对应关系,比如数字50就可以使用五环的图案,数字60就可以使用谐音法用“榴莲”来替代“六零”,数字33可以用“耳朵”来替代(象形)等等。当你能够非常熟练地应用这套对应关系后,就可以使用它作为桩来记忆其他事物了,看似神奇的扑克牌记忆实际上也是利用了这样的原理。你可以将扑克中的黑、红、梅、方4种花色的数字牌分别对应到数字桩中,例如梅花的形状有3瓣,可以用数字桩30~39来表示,方片的形状有4条边,可以用数字桩40-49来表示,以此类推,然后挑选12个人物形象(比如演员或其他自己熟悉的人)来分别对应4种花色的JQK,大小王可以使用DC漫画中的小丑来替代(恰好目前DC电影中有过两位不同的小丑扮演者),重要的是你能够通过牌面的特征使其与选定的替代形象产生某种关联,至此你应该已经猜到扑克记忆的秘密了,记忆乱序的扑克牌实际上就是使用串联记忆法来记忆数字桩的顺序。如果想要做到像世界记忆大师那样记住10副乱序扑克牌,你需要准备多组不同的桩,毕竟重复使用时会有记错的风险,“定桩记忆法”的复杂之处在于“桩”体系的建立,这对于没有经过训练的人来讲是非常困难的,即使它的原理看起来并不复杂。
# 别忘了复习
记忆法本身是非常庞大的话题,笔者自己的涉猎深度也非常有限。“串联”和“定桩”只是图像记忆的基本技巧,不同类型的记忆任务(比如记忆英语单词或古诗词等)还有很多更加高效的衍生方法,你可以自己搜索相关的资料去学习和练习。另外需要注意的是,记忆本来就包含了“记”和“忆”两个部分,尽管图像记忆提高了“记”的效率,你依然需要通过一定频率的复习来强化记忆的效果。当然业界也不乏反对的声音,认为“图像记忆”只是一种投机取巧的浅层记忆方法,人们只是生硬地记住了那些需要记忆的东西,很可能并没有理解或是深入思考,我认同这种观点,但它并不意味着我们就应该放弃图像记忆,当记忆本身造成的学习压力变小后,你自然会有更多的时间用来理解和思考,它是否真的适合你,恐怕只有尝试过之后才能知道。
# 超级学习法(2)——思维导图
思维导图,也称为“脑图”,是一种将思维形象化的方法,用来帮助人们在思考时更好地聚焦主题并建立思维的框架,从而获得更好的全局规划能力。它使用一个中央关键词作为思考的起点,然后以辐射线型来连接与它关联或是派生出的想法或任务,这就使得思维的过程总是可以围绕一个临时的中心主题来进行展开,而不至于在发散思维的过程中偏离中心思想。
思维导图本身并不是一项多复杂的技能,即便从来没有使用过它的读者也可以很快上手,程序员平时常用的文档工具(例如飞书、语雀等)都已经集成了思维导图的功能,使用起来非常方便。关于思维导图,笔者希望将下面的几点心得体会分享给各位读者。
首先,思维导图是一种用于辅助思维过程的工具,它具有很强的个性化特征,这就使得思维整理的过程远比最终得到的思维导图更重要,很多初学者可能会将更多的时间花在如何制作更加精美的思维导图上,这在笔者看来是一种舍本逐末的做法,因为它太容易打乱思维过程的连贯性了,思维导图的价值在于帮助个体或团队从混乱的思绪中梳理出主要线索,而不是用于共享或传播。最终得到的导图通常是一个只包含关键词和关联关系的图表,没有参与提炼过程的人想要还原出相应的信息是很困难的,这就好像你不可能只看一本书的目录就了解整本书的内容一样。笔者自己曾经在心理咨询师考试的备考过程中,手绘了近百张思维导图,帮助自己梳理整个考纲中涉及的知识脉络,然后才使用“图像记忆法”对考点进行记忆(需要记忆的通常都是思维导图中的叶节点)。当我将这个方法介绍给其他同学时,他们告诉我说导图里展示的脉络确实能够概括书中的内容,但真实的感受是“并没有产生多大的帮助”,而当他们以同样的方式自己绘制思维导图后,才觉得脑海中对于整体的知识框架有了更好的感知。如果你希望从思维导图的学习中受益,就需要尝试在更多的场合中使用它,借此来提升自己发散思维和提炼要点的能力,而不是只想着怎么让画出来的导图更漂亮。
其次,尽管电脑上能够绘制导图的软件非常多,我仍然偏爱使用纸和笔来完成思维导图,它们带来的那种思考的沉浸感非常重要。思考是一件很费神的事情,大多数人都不愿意做,一旦受到干扰,通常要花很多时间才能回到之前的情境,这也是为什么程序员都很讨厌写代码的时候被其他事情打扰。在电脑上绘制思维导图时,思维的连续性就很容易被打断,可能是因为想用某个功能时怎么也找不到,可能会突然收到聊天软件发出的消息提示,也可能是在短暂的思维阻塞后顺手就打开浏览器开始看短视频,思维的进展本就是非线性的,你并不知道自己什么时候会突然想通某个问题,一个不被打扰的环境能让你更好地捕捉脑海中随时出现的灵感,使用纸笔时就不需要担心前文中列举的那些问题,它能够让你更好地专注于自己的思维过程,并将脑海中闪过的念头快速记录下来。如果最终需要将导图共享给其他人,我通常会在手绘结束后再将它们录入电脑,而大多数时候都是用手机直接拍照存档即可。
最后,无论是绘制思维导图还是制作PPT,它们都只是工具,你更应该关注的是工具背后的思维方式和通用能力,看看那些非技术人员到底是如何利用它们来分析问题和解决问题的,那才是你和别人之间的差距所在。互联网公司里广为流传的一个段子说“写代码的干不过写PPT的,写PPT的干不过读PPT的”,玩笑归玩笑,你很容易就会发现这些只是表象,写代码需要的是逻辑思维和问题解决能力,写PPT需要的是系统设计和宏观规划的能力,读PPT需要的是公开演讲的勇气和表达能力,它们并不是一种递进关系,甚至压根就不属于一个维度。所以不要再纠结为什么别人“技术不如我,升的还比我快”,真实的原因往往很简单,就是因为别人的能力对于企业的需求来说更稀缺,稀缺性才是价值的根本度量标准,你意识不到只是因为自己站的太低或者陷得太深罢了。薪水是企业对岗位的定价,而并不是对你的定价,在追求极致的同时放下执念,利用思维工具去提升自己在不同维度上的综合能力,由此支撑起来的“切换赛道”的底气,才是缓解你心中焦虑的良药。
# 超级学习法(3)——快速阅读
快速阅读,也称为“全脑阅读”,它可能是三大超级学习方法中受争议最大的一个。普通人的阅读速度大约在300~500字/分钟,而快速阅读理论认为改变阅读习惯可以使阅读速度提高10~20倍,并且能够达到70%~80%的记忆。相关的主要训练方法包括眼动习惯练习,注意力集中练习和眼脑直映练习,以此来纠正大部分人在阅读过程中因为注意力不集中和默读导致的速度过慢的问题。如果你坚持训练,通常1~2个月就能感受到自己在阅读普通书籍时阅读速度的提升,但同时也会发现在阅读专业书籍时,阅读的速度还是很慢,因为你的消化吸收能力跟不上,遗憾的是,很多程序员的主要读物都是专业技术资料,这使得大部分程序员都没有足够的意愿去练习它。其实阅读习惯的养成就好像我们练习盲打一样,练习的过程当然会有很多不适应,但是习惯后就很容易受益于它。
除了阅读习惯的养成之外,你会发现其他大部分讲述关于快速阅读方法论的书籍都在关注同一个重点——精力分配,也就是对于不同类的书籍,或者一本书中的不同篇章,在阅读的过程中分配不同的时间和精力,以此来快速略过那些自己已经了解的或是不重要的部分。人的精力是有限的,小到读书学习,大到生活中各种各样的琐事,每件事情都需要花费精力,那么合理地分配自己的时间和精力就非常重要了,精力分配并不是希望大家用10分钟做15分钟的事情,而是用10分钟去判断是否应该放弃在某些低价值事情上的时间投入,从而为未来节省出10个小时。在笔者心里,真正的快速阅读只有一种,就是通过大量阅读而带来的速度提升。读书与其他技能一样,同样是可以熟能生巧的,你对某个领域的知识积累或是相关领域的熟悉程度,直接决定了你阅读和消化吸收的速度。同类别的书籍里很多观点都是雷同的,重复阅读这些内容几乎不会消耗你的精力,即便是快速扫读通常也能很快抓住要点,而遇到那些比较新颖的内容时,就可以放慢速度细细品读,遇到引发自己共鸣的部分时,可以停下来,合上书去主动思考,慢慢地,你也会养成适合自己的阅读习惯。陌生领域的前三本书读起来通常都会很慢,这时你需要足够的耐心,但等你读到第10本的时候,可能随便翻一翻就能够了解书中的核心思想。
曾经有一位师兄向我推荐凯文–凯利的《失控》一书,他告诉我他会反复看这本书,而且几乎每一次读的速度都非常慢,因为每读几页就会引发自己大量的思考,以至于要等内心的激动和思绪都恢复平静后才能继续。而我自己阅读这本书时就没有类似的体验,也许只有那些有积累有思考的人,才能够与大师之间擦出思想的火花吧。
读书是一件很重要的事情,知识的积累会改变人的认知,从而影响人的行为方式,进而影响事情最终的结果,当然这个过程通常都是非线性的。我喜欢读书,喜欢那种思维的多样性,更喜欢读书时那种发自内心的平静。几乎所有的旅途我都会带一本纸质书,那是非常难得的不会被打扰的阅读时光,平时的习惯是每天睡前和早晨各读半个小时的书,这样的阅读量对大多数人来说都不会成为负担,但是你可以粗略算一算,每天1个小时左右,那么每年就是大约300小时,如果能坚持10年,一共就是3000小时左右,如果按照每天10小时的工作时间来算的话,3000÷10=300天,几乎相当于一整年的996,我相信积累的力量,希望你也相信。所以如果你想读得更快,那就先读得更多吧。
最后希望你能意识到,你并不会因为了解了一些高效学习方法就突然间功力大增成为学霸,所有的方法都需要通过练习才能够变成自己的技能,多一些耐心,多一些踏实的练习,终有一天你会感谢曾经努力的自己。