Android进阶:知识遗忘真的是程序员的通病吗?其实是这些新知识的学习方法你还没get到!

我之前会有这样的疑问,我觉得有些人一直写某一块的知识,我就好奇,一直写这方面的东西,难道不会写到最后无话可说吗?因为该写的不都写完了吗?

你怎么看待这个问题呢?

后来慢慢的,我发现自己之前的想法真的很幼稚且天真,因为我这里忽视了很重要的一个东西,那就是成长,人是会成长的,随着自己的成长,自己的知识广度和深度,以及自己的认知都是在不断的提高的,那么对于同样一个问题就会出现一个不断打磨和反复迭代的过程。

而经过这个过程的输出,展现给你们的东西是更加的高质量的,经验性的东西也是会不断的升级的,之前也许要写3000字去给你说明一个道理,可能你还云里雾里,这里不能完全怪读者的理解能力不行,更重要的是作者本人目前没办法以更少的字去把这个问题讲解的更加透彻。

所以,人,是需要保持不断学习的,你不用担心,这些知识学来学起都是那些的问题,当你的所学达到一定高度,你的思维层面就上升了。

1、知识学了就忘的问题

就好比这个问题,我当初对这个问题那是百思不得其解,觉得自己学了就忘,难受的很呐,一直在寻求如何解决这样的问题,我当时的总结就是,为什么我们会学了就忘呢?大概有如下几个原因:

  1. 知识没有用起来
  2. 知识缺少必要的复习
  3. 知识的学习不成体系
  4. 知识学习方法有问题

怎么样?你觉得是这样吗?我当初似乎找到了问题所在,那怎么解决这个问题,我的解决办法就是输出,也就是写博客,然后集中系统化的去学习一个系列的知识,然后把它输出出来,就比如我自知,自己的计算机基础知识比较差,于是我就集中的去做这块的输入和输出,然后就有了以下文章:

是的,刚写完这些文章的那段时间,我觉得自己的基础还是可以的,觉得心里的知识量鼓囊囊的,但是现在,对,就此时此刻的我看着这些标题,我又迷茫了,不知道自己都写了什么……

是的,我又忘了……

这还写个锤子啊,知识学了就忘不还是没有解决吗?不过,我得告诉你,这并不是全部!

虽然以上我写的东西,我觉得我忘了,是的,我说我是觉得我忘了,实际上呢?看到某一个标题,我还是有点印象的,然后重点是,我点开看这篇文章,很多熟悉的字眼立马就来了,有些内容,我甚至能回想出当初思考它的时候是怎么想的,然后我可以用比较快的时间去看这篇文章所讲的内容,然后我就会突然觉得自己脑海中之前这块的知识被突然唤醒了。

这也许就是输出的真正意义所在吧!

有时候做笔记,说的是为了以后看,但是实际上以后看的机会很少,不过这个做笔记的过程,就是建立知识结构的过程,这个过程远比以后看有效多了,你说呢?

还有一点就是我在写这些文章的时候,当时确实是下功夫了,其中我记忆比较牢固的一个知识点就是关于链表的理解,之前我对链表一直不太理解,搞不懂这是个啥玩意,但是当我真正下功夫去研究学习它的时候,我发现当我真正的去理解了它的时候,我基本不会忘记它了,就是说这个知识真的成了你的知识了,这种感觉超棒的。

所以,输出真的特别重要!

经历这样的一个过程,让我对知识学了就忘的问题不那么恐惧了,但是实不相瞒,它依然是我的一个心结,我还是会是不是想起它,伴随而来的是无助与难受。

直到有一次我请教了几位大佬前辈,得到以下两句话:

1、不要把知识遗忘当成问题去解决,你解决不了的,知识遗忘是一件正常的事情
2、忘了就忘了,忘了就再看看,用的多了自然就记住了,用的不多的记它干嘛

首先第一句话,让我摆正心态,正确去面对知识遗忘这个问题,从心里慢慢接受这不是个问题,另外第二句就是让我知道得不断的去学习去输出,去把知识用起来,如果没有实际运用的场景,那如何达到“用的多了自然就记住了”的一个状态呢?

答案是,真正的去理解它,反复强化这一知识点,让其成为长期记忆!

好了,看到这里,我有没有帮你解决知识学了就忘这个问题呢?

接下来,咱们来谈第二个问题。

2、学习新知识的方法

很多私底下询问我关于自学编程问题的人,我都会告诉他们,编程这个行业需要你持续不断的学习,因为技术的更新迭代非常的快,而且要学习的知识点真的是特别的多,所以,对于一个想要自学编程的人来说,掌握正确的学习新知识的方法,尤为重要!

那这样的方法有人告诉你吗?不管有没有,反正我今天要和你分享一下,所以等下看完记得点赞哦!

你觉得最好的学习新知识的方法是什么?对于编程来说,我们大致把它分为理论和实战,就是你学习的知识,后期是可以用到的,那这个该如何学习?

大部分人应该是先学习理论知识,之后再去实战,这其中会存在一个严重的陷阱,就是很多人学了无数次的理论,却不曾有一次的实践。

由于知识遗忘是个正常现象,所以你这样的学习其实是付出和收获不成正比的。

那学习新知识的方法是什么呢?

其实啊,最好的方式就是边学边用,也可以说,理论和实践要五五开,甚至实践还要多一点,不要只学不用,然后这样的效果其实还不好,想要更好的效果,你还得把自己学到的东西交给别人,是的,这就是所谓的费曼学习法,把所学教授他人,做到输出,有入有出,然后你还可以让你的学习效果更好一点,是什么呢?就是你要注重输出这一步,就是不能为了输出而输出,你必须得做到真正的明白,教授他人的时候,你得保证给别人教懂啊,不要自己费尽口舌,别人一脸懵逼,这就不行了。

那怎样才能做到真正的明白呢?就是你可以用自己的话叙述出来,而且说给别人,别人能听懂,你要知道,能做到这样,说明你对这一知识点是真的理解了。

现在有很多的技术文章,看起来就跟读书一样,完全看不到作者自己对这块的一个思考,这样就很没意思,这个可以忽略,就是突然想起来吐槽一下!

所以这里就有两个重要的方法:

  1. 教别人
  2. 做到能复述

这里我想特别强调一下复述,为什么要把知识自己能够复述出来呢?因为我们一般死记硬背的知识都是最原始的一些知识,但是对于一个知识,你如果能复述出来,则说明,你在复述的过程中和学习这个知识的过程中是有自己的理解的,这点非常重要。

这样做的好处就是,你不但清晰的了解了这些信息,而且更重要的是由于你的理解,它们都内化成了你的知识,也就是形成了长期记忆。

ok,到了这里,本文就结束了,如果你能只字不差的读到这里,说明你是一个具备深度阅读能力的人,恭喜你,你已经超越99%的人了。

好啦,看在我写的那么干的份上以及文章结束还不忘夸上你一句,点个赞给个在看如何,我保证,下一篇文章更干,我夸的更好听!

3、关于程序员系统学习

我们都很渺小,在宇宙中甚至比不上一颗尘埃,可是人为何称之为人,就是因为人懂得思考,知道学习的重要性。并且随时愿意改变自己,重新出发。我们一生都在忙忙碌碌,为自己而活的时间太少太少,努力奔跑不仅仅是为了活着,更多的是实现我们自己的理想与报复。存在即为意义,我希望大家能跟我一样坚持,你不知道下一个黄金浪潮在哪里,但是只要你在里面,总会赶上的啊!下一个Android辉煌的时刻可能就在明天呢?

目前我们要做的就是选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点。

这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。 所以,找准自己的定位及细分领域。

多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!

首先是超级详细得不能再详细的Android开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以私信微信二维码获取

接下来就需要梳理知识,提升储备了!(Android移动架构师七大专题学习资源)

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO

  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化

  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化

  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack

  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发

  • 微信小程序:小程序介绍+UI开发+API操作+微信对接

  • Hybrid 开发与Flutter:Html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

然后再是通过源码来系统性地学习

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

《486页超全面Android开发相关源码精编解析》

刷大厂面试题备战,增加大厂通过率

历时半年,整理了这份市面上最全面的安卓面试题解析大全。

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

《379页Android开发面试宝典》

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容