由于疫情的影响,最近在家办公盛行。有同学跟我抱怨,说他们公司某某员工穿着睡衣就开视频会议了。
然后开完会议就躺在沙发上面办公,越躺越低,然后不小心睡着了。起来就发现到了下班的点了。心里那个虚呀,于是晚上加班继续完成任务。我觉得这是在家办公效率低的原因之一吧...
言归正传,今天我想分享一点关于学习方法的内容,顺便引出一些干货给大家。于是早早洗漱精心打扮一番坐在电脑前开始干活了。事实证明这个仪式感对效率的提升很有效果呀:
这两天有位帅气的小哥哥跟我交流一些学习的方法。思索了一下,除了学习之外,记忆方法也是比较重要的,所以我今天重点跟大家分享下学习和记忆方法相关的内容。
随着知识碎片化时代的来临,微博微信公众号,各个社交网站,视频教程,在线教育。看起来好像我们想要学的东西,网上都有,现在这个时代,对于学生来说真的是太友好了。
可是,内容多了,我们却迷茫了,不知道从什么时候开始感觉网上的内容自己都看过,但是就是不知道细节,也没动力去了解。我们的大脑被各种摄取成本低的信息流占据着(表情包,段子,视频),对于真正枯燥却有用的知识自动屏蔽了。
为什么?因为我们 缺少一个学习计划 ,促使我们 主动搜寻知识 ,有别于那种被动的灌输。
先来讲讲提升效率您不得不了解的一些秘密。
举个学习领域,谈到JVM,相信做Java开发的同事都有了解过,我们也可以看到网上的文章教程,视频教程,五花八门,各有特色,但是大部分看下来感觉并不能打通我的任督二脉,似乎少了点什么。我琢磨了好一会儿这个问题。
正所谓一图胜千文,这不是没有科学依据的, 肯尼思·希格比
的 《如何高效记忆》
一书中就做过类似实验证明图片交流的记忆有效性更好。
学而不思则罔,思而不学则殆,只有在良好的了解了知识背后的含义之后,记忆的效果更好。
就比如说或,我的名字:arthinking你觉得很难记忆,那是因为不理解他,如果你知道这是我自创的词,意思是:
art + thinking(thinking artistically)
你就会恍然大悟,立刻记住了。
如果你是个代码界里面的音乐狠人,那么你可以给自己的知识编一个有押韵的曲子,那学习效果可是卓群的。
有目的性的学习效果会更好,所以,每篇文章开头或者文中,我都会写一些问题留给大家思考,带着问题去阅读,这样就可以有目的的记住内容了。设想一下,如果没有专门去留意,谁会记得交通信号灯最上面的那个是什么颜色呢?
有些小伙伴喜欢面试前临时抱佛脚拼命灌输知识,其实这种灌输产生的记忆是比较死板的。
个人建议在系统掌握了知识之后,定期通过思维导图或者其他有意义的图片回顾,与新的知识产生联结,这样除了能够更好记住所学知识,最重要的是能让知识活起来,真正让自己所用。
现在随着社交网络的普及,产生了大量的碎片知识,贩卖焦虑的文章或者动态真的是太多了。
实验发现:事实上,焦虑会干扰记忆,你越是焦虑地去学习一些知识,你学习的记忆效果就越差,这真是一个负向循环的过程呢。
我大笔一挥,不禁想画个图来表达下,加深大家对这个理论的印象,不是说图像的记忆效果更佳嘛:
也许你在社交网络上匆匆看完了文章,然后第二天就忘了前一天看到什么了,表面上看起来花了很多时间学习,但是这种碎片化的学习并不能够让你真正的吸收太多内容。
所以我一般在网络上面会花费比较多的时间去筛选知识,过滤掉信息噪音,真正让自己慢下来学习。
那么我们知道这些问题之后,如何做到不紧不慢地学习呢,下面我讲下我认为比较高效的学习法。
天才真的是太少了,如果你想学完一项技能就马上达到 巅峰水平
,那么,兄弟,请你醒一醒(使劲儿摇)。
一般我的学习过程是这样的:
学什么,什么时间内完成。
把学到的内容表述出来,表述的方式可以是:
这个过程中,需要尽量总结出自己的领悟到的内容,最好通过图片,动画,或者思维导图的方式列出来,加强记忆。
以高度概括的方式总结你所学知识,把相关知识点串起来,可以整理相关思维导图,对所有笔记复习一遍。
这一点很重要, 有了这个知识结构网,并且有这种结构化整理知识的能力后。那么你就不会被网上各种碎片化知识迷惑了。
梳理除了结构网并不意味着你就万事大吉了,你可能还会进一步深入了解各个知识点,有一个升华的认识,或者想到两个领域的知识原来可以联结起来,所以你需要不断的去反思总结,进一步归纳知识,让知识库更加丰富,联结的更加紧密,就像那种什么来的: 高内聚
。
在实际工作中,多发掘应用场景,结合其他技术一起思考,挖掘相似与关联之处。在实际场景中使用技术。让自己的知识组成一张网。这个过程中,你应该经常性的去复习学过的内容。
如果用思维导图去总结,你的这张网应该是越来越大的。
根据 艾宾浩斯遗忘曲线
[^2]规律,我们的知识点久久不用或者不回顾是会逐渐遗忘的。所以现在我们弄懂了,并不代表将来也懂。所以需要我们对照着思维导图,或者概览图,问题列表逐个去回顾知识点,努力回顾知识细节。如果有发现遗忘的,那么可以重新学习巩固下。 [遗忘曲线]( www.csustan.edu/sites/defau… Program/forgetting_curve.pdf)[^1] 这篇文章跟我们介绍了知识遗忘的规律。下面是文中提供的一个遗忘曲线图:
也就是说,在学习完之后,你需要定期的进行复习,加深印象,复习时间点:学完 10分钟
, 24小时
, 1周
, 1个月
。
遗忘曲线由德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现,描述了人类大脑对新事物遗忘的规律。人体大脑对新事物遗忘的循序渐进的直观描述,人们可以从遗忘曲线中掌握遗忘规律并加以利用,从而提升自我记忆能力。
另外如果有发现知识点有新的认识,或者其他领域知识可以交织起来,可以重新整理,把我们的知识梳理成一个体系。
无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入 JVM大型撕逼现场 。为了能够让大家从大型撕逼现场中 脱颖而出 ,最近我xxx想着如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个 体系 ,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。
点击查看大图
公众号回复: JVM学习 获取高清大图
另外把文章列表和关键信息写到表格里面去了。
章节 | 关键词 | 相关思考 |
---|---|---|
Java运行时数据区域是如何工作的 | JVM内存布局 对象访问定位 |
1. JVM内存布局是怎么划分的? 2. JVM里面各个区直接是怎么配合工作的? 3. 对象在内存中是如何布局的? 4. 什么是操作数栈和局部变量表?可否在class文件中展示下? 5. 运行时常量和字符串常量有什么区别? 6. 对象访问定位方式有哪些?各有什么优点 |
Java垃圾回收机制 | 可达性分析 垃圾收集算法 垃圾收集器 |
1. 一个对象的一生经历了什么? 2. 如何判断对象是否可用? 3. 引用计数法和可达性分析算法各有什么优缺点? 4. 哪些对象可以作为GC ROOT? 5. 垃圾回收的时候如何快速寻找到根节点?(安全点和OopMap) 6. 垃圾回收算法有哪些?各有什么优缺点? 7. 有哪些垃圾手气,各有什么优缺点,适用什么场景 8. 何时触发MinorGC和MajorGC 9. 什么是空间分配担保 |
Java对象历险记 | 分配担保 空间分配 |
1. Java对象进入堆之后,它的一生都经历了什么? |
Class文件十六进制背后的秘密 | Class文件 反汇编 堆栈原理 |
1. 运行时常量池和静态常量池有什么区别? 2. Class文件里面都有什么内容? 3. Class文件反汇编之后的格式里面分别有什么,尝试解读里面方法中的汇编指令 4. 本地变量表和操作数栈是如何工作的 |
一篇图文彻底弄懂Class文件是如何被加载进JVM的 | 类加载器 加载 连接 初始化 |
1. Class.forName究竟是怎么获取Class对象的Class对象又是什么? 2. Class文件是如何被加载到JVM里面的? 3. 类变量是存在堆中还是存在方法区中? 4. 类构造器 <clinit> 方法什么时候执行? |
一篇图文彻底弄懂类加载器与双亲委派机制 | 类加载器 双亲委派机制 |
1. 类加载器是怎么背创建出来的? 2. 什么是双亲委派机制?为什么要有这种机制? 3. Class实例和类加载器究竟是在Java Heap中,还是在方法区中? 4. 为何要有线程上下文类加载器 |
Java最大栈深度有多大 | 堆栈 |
1. Java最大栈深度多大 2. 程序中如何调优 |
Java代码编译方式和JVM三种执行模式 | JIT javac |
1. Java代码编译方式有哪些? 2. JVM执行方式有哪些? |
JVM是如何进行方法调用的 | 静态分派 动态分派 |
1. JVM里面是如何进行方法调用的? 2. 什么是静态分派? 3. 什么是动态分派? 4. 怎么保证动态分派的执行效率? 5. 重写和重载的执行原理? |
10分钟教你如何hack掉Java编译器 | 编译流程 javac JIT 注解处理器 |
1. 编译器一般编译流程 2. javac的编译流程是怎样的 3. 如何hack掉Java编译器 4. 运行时DI和编译期DI的区别 |
深入探索Java泛型的本质 | 泛型 |
1. 为什么需要泛型 2. Java代码在编译后是如何保存泛型信息的 3. Java泛型与C++、Python中的有何区别 4. 如何动态获取泛型类型 |
Java界的性能优化高手 | 编译器 解释器 JIT |
1. javac做了什么优化 2. Java后端编译器的发展史 3. JIT是如何工作的 4. 效率与质量的衡量 |
点击表格中的主题进行阅读。
也可以从这里查看JVM系列文章: JVM速成手册 [^3]
其实记忆知识帮助我们更好的学习知识。我们学习知识的本质是要把它用起来,如果只是记下来了,并没有经常去使用,那么对知识的理解深度肯定是不会增加的。
所以我们最重要要做的就是: 应用
使用过程中本身就是在不断帮我们复习加深记忆的过程,期间可能会引入一些新的东西,不断加强加深我们对知识点认知。为了加深认知,你可以:
博客文章 实际运用 最新进展 源码
好了关于高效学习方法就介绍到这里了。
其实不管目前经济大环境如何,我们目前处境是艰难还是如往常一样,我们都应该保持持续学习,不断提升自己的竞争力。 JVM高效记忆专题
是我整理的一个为了帮助大家学习JVM相关内容的而输出的,后续我将输出更多其他方面的技术专题。希望大家早日成为自己心目中的大牛,不管到哪里都可以实现自己的 编程梦
。
“消除胜利的最好办法就是坚持恐惧!!!” —— 奥利给
大家一起加油,也请大神们看到有错漏之处高抬贵手帮忙指点一二。
一些研究表明,人们在学习之后马上去睡觉,相比同时间段内保持清醒,能够记住更多的内容。这不是睡觉的借口,好了,我该去休息了。
本文为 arthinking
基于相关技术资料和官方文档撰写而成,确保内容的准确性,如果你发现了有何错漏之处,烦请高抬贵手帮忙指正,万分感激。
大家可以关注我的博客: itzhai.com
获取更多文章,我将持续更新后端相关技术,涉及JVM、Java基础、架构设计、网络编程、数据结构、数据库、算法、并发编程、分布式系统等相关内容。
如果您觉得读完本文有所收获的话,可以 关注
我的账号,或者 点赞
的,您的支持就是我写作的动力!关注我的公众号,及时获取最新的文章。
本文作者:arthinking 博客链接: www.itzhai.com/jvm/efficie… 学东西如何做到过目不忘 版权声明:BY-NC-SA 许可协议:创作不易,如需转载,请务必附加上博客链接,谢谢!