我们在学习的时候,多多少少都会遇到这么一个问题:
“学了就忘”
之前也聊过这个问题,在我看来,这个问题是个共性问题,尤其初学者,更是不知所措,倍受打击,那么,为啥会学了就忘呢?
我根据自己的学习经验,大致总结以下三点原因:
- 知识没有用起来
- 没有及时复习
- 没有反馈输出
当然,导致我们学了就忘的原因不止如此,而且根据每个人的学习状况不同,可能远远不止如此,但是正如这个问题是个共性问题一样,我们在这里只说普遍性原因,可能很多人会因为出现上面三个原因导致学习效果不理想。
在此之前,你可能听过别人跟你说,学习编程要多实践,不能只是看书或者听视频,要实际行动起来,动动手,敲敲代码,很多初学者也都知道,你看明白或者听明白跟你能上机自己敲出来完全是两码事,到了后期可能又会有跟你说,多多实战,其实这些都是再告诉你:
“学了知识,如果不及时用起来,时间久了就会忘得差不多了,想要记得牢固,关键要把知识用起来”
说到这里,可能有人会说了,这个我知道,但是有些高阶知识吧,初学者比较难啃,而且这类知识点找工作面试是常客啊,这个真的是学了忘,忘了学,我学的时候也想能不能找个实战项目练习下,这样学的更加牢固,可是这些知识初学感觉很多都是概念性的东西,找不到实际应用啊。
确实有这方面的问题,那么像这样的知识该怎么学呢?学了总忘怎么办呢?
比如学过这样的知识图谱:
我也有这样的困惑,但是通过我自己这样的做法,我发现实际情况改善了很多,什么方法呢?
首先,我会新建一个空白思维导图,然后就开始想,使劲的去回想关于Android开发的知识,因为之前学过很多这方面的知识,虽然猛地一想,感觉自己忘得差不多了,但是冷静下来,细细回想还是能想起来很多的关键词的,于是,我开始了思维导图的创建。
就这样的一步步的回想,首先从最简单的,四大组件,那就是首先要搞明白什么是四大组件了,好,新建一个节点,写上“什么是四大组件?”,有了这个问题之后,我就试着去回答这个问题,在去回答这个我问题的过程中,可能突然又想到 Handler 的原理,这些都是知识点,统统新建节点记下来。
然后继续回想,于是又记下新的节点
就顺着这个思路,一个知识点引起另外一个知识点,发现自己能够回想起来的越来越多了。
就这样,经过自己的不断回想,慢慢的,一张思维导图就出现了
看到这个导图,我自己都惊讶了,本来觉得自己忘得差不多了,没想到还能想起来那么多,当然,这些只是关于Android开发知识的冰山一角,不过,这些对我学习来说就足够了,看着这个图,我再试着去回想每一个知识点或者问题的答案,发现有些自己还能说出来个一二三四,但是有些就比较模糊了,于是乎,对于这块的知识点,自己就发现了属于自己的盲点或者难点。
人呐,最怕的就是不知道自己哪里出了问题,因为不知道所以即使想努力也不知道朝哪个方向使劲啊,既然现在知道自己有哪部分的薄弱之处,那就花时间去弥补,去学习吧。
当然,自己这样回想出来的肯定是缺胳膊少腿的,不过我们可以找一些专业书籍来对照,或者网上搜搜相关面试题或者别人的总结,把那些是Android开发的重点但是咱们没想起来的添加上去,然后再重点去学习这些之前没有想起来的。
这既是查漏补缺,也是强化记忆!
当你完成了上面的学习之后你就可以歇歇了,等过个几天,有空了,再新建一个思维导图,继续来,你要相信,你回想的思维导图会越来越好的。
这样的方法好吗?实际上现在很大一部分人的做法是觉得自己忘了,就拿出自己之前的笔记,翻翻看看,这就是很多人的复习,也算是学习吧!
倒也不是说这样不好,只是效果偏差,在《知识大迁移》和《学习之道》中都有提过,不要过多的在书上标记内容,因为很多人都是标记了重点,然后回过头来看这些标记复习,经研究发现,这样的效果并不好,在《学习之道》中花了很大的篇幅去解释一个概念“提取练习”,它的核心就是推荐我们去回想内容,这样的学习效率是比较高的,感兴趣的可以去看看这两本书。
以上就是我现在对Android开发的学习和复习采用的一个方法,灵感大多来源《学习之道》,其实不单单是Android开发这类的知识,我发现很多知识的学习和复习都可以这样来干,如果你仔细想想,你会发现,它很好的间接的解决了以下的问题:
- 知识没有及时复习
- 没有反馈输出
- 知识没有用起来
可能有些人不明白了,这怎么解决“没有反馈输出”这个问题了,当然啦,当你了解到自己的盲点和难点,你肯点会花时间去学习,然后会自己思考,会记笔记,说不定还会写一些博客分享出去,这不就是你的输出嘛。
那有些人又不明白了,“知识没有用起来”呢?
大家可以看我回想的导图,每一个知识点都有一个关于实战项目的,根据各个知识点的内容总结一个实战项目,这个不就可以敲起来了嘛,牵涉到性能调优、NDK、OpenCV这块,也可以敲起来啊,这不都是“用”?
那么,你再想,这不就是解决了我们“学了就忘”这个大问题嘛?
最后再说一句,其实有的时候你会发现,学习不难,你只是缺少一个好的方法和你的实际行动!
感谢大家能耐着性子,看完我啰哩啰嗦的文章。
愿与各位坚守在Android开发岗位的同胞们互相交流学习,共同进步!
在这里我也分享一份自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
如果你有需要的话,可以点赞
相关推荐
5. **启用网络访问权限**:在AndroidManifest.xml中,别忘了添加INTERNET权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 6. **处理重定向和加载进度**:你可以监听`...
在Android平台上进行蓝牙开发,Android Studio是首选的集成开发环境(IDE)。本示例"android studio 蓝牙开发demo"专注于使用Android Studio进行蓝牙低功耗(Bluetooth Low Energy,BLE)开发,这是一种广泛应用于...
在Android应用开发中,自定义标题栏是提升用户体验和应用个性化的重要手段。标题栏(ActionBar或Toolbar)通常位于应用程序界面的顶部,显示应用的名称、图标以及一些操作按钮,如菜单、返回等。本篇文章将深入探讨...
在Android系统中,电池电量的显示通常是系统默认的,但有时候开发者或用户可能希望自定义电池电量的展示方式,以实现独特的UI效果或者更个性化的交互体验。本篇将深入探讨如何在Android应用中实现自定义电池电量的...
在Android Studio中实现一个计算器应用是一项基础且重要的任务,它能帮助开发者熟悉Android开发环境、UI设计以及事件处理等基础知识。下面将详细讲解如何利用Android Studio来创建一个简单的计算器。 首先,我们...
Android SDK(软件开发工具包)是Google为开发者提供的核心工具集,用于构建、测试和调试Android应用程序。这个压缩包“android-sdk-windows”显然是专为Windows操作系统设计的Android SDK版本。在深入探讨之前,先...
在Android开发中,调用系统相机并保存拍摄的照片是一项常见的任务。这个"android调用拍照存储demo"就是一个...开发者可以通过学习这个示例,进一步了解Android与相机交互的机制,以及如何在应用中正确处理文件存储。
在Android平台上,Webview是一个非常重要的组件,它允许开发者在应用程序中嵌入网页内容,使得用户可以在不离开APP的情况下浏览网页。本教程将详细介绍如何利用Webview实现企业网站的移动宣传,非常适合Android初学...
《Android SDK:构建移动应用的基础》 ...理解和熟练掌握Android SDK的使用,是成为一名合格Android开发者的关键步骤。通过不断的实践和学习,开发者可以充分利用SDK,创造出功能丰富、用户体验优秀的Android应用程序。
这个“android 手电筒源代码”提供了一个简单但实用的实例,可以帮助开发者快速理解和掌握如何利用Android SDK来实现这一功能,特别是如何运用ToggleButton组件。 首先,我们来看核心组件——ToggleButton。在...
首先,我们要明白,"百度地图学习资源"指的是一个针对Android开发者的学习资料,它可能包含教程、示例代码或预编译的应用程序,如app-debug.apk,用于演示如何在Android应用中实现百度地图功能。"MyApplication"可能...
这个"Android引导页Demo(第一次进入应用时加载)"是一个实例,帮助开发者了解如何在Android项目中实现这样的功能。 首先,我们需要理解引导页的基本构成。一个简单的引导页通常包含以下几个部分: 1. **背景图片*...
通过以上步骤,一个简单的Android引导页就实现了。在实际项目中,你可能还需要考虑更多细节,比如是否保存用户的引导页浏览状态,以便下次不再显示;或者添加动画效果,提升用户体验。这些都是可以根据需求进行扩展...
在Android开发领域,掌握全面的知识和技术至关重要,尤其是在这个245G的超级视频资料...通过系统学习并实践这些知识点,你将能够成为一名合格甚至出色的Android开发者。别忘了,双击图片可能还有更多惊喜等待你去探索。
这个源码可以帮助开发者深入理解如何在Android平台上构建一个功能完备的记事本应用,涵盖了从用户界面设计到数据存储的全过程。 首先,Android备忘录源码通常包括以下几个关键部分: 1. **UI设计**:源码中的布局...
通过以上步骤,我们就能实现一个具备轮播动画的开发者头条APP首页。这不仅涉及到技术的运用,更考验我们在用户体验、性能优化和团队协作等方面的能力。在实践中不断学习和改进,我们的开发技能将会得到显著提升。
在Android开发领域,入门学习是每位开发者必经的阶段。本示例集合是为初学者设计的,旨在帮助理解并掌握Android应用开发的基础知识。通过重写一系列代码,你将有机会深入了解并实践如何使用Android的一些核心组件,...
【Android Navigation Drawer 全面解析】 Navigation Drawer 是 Android 应用程序中常用的一种设计模式,它...通过研究这个例子,开发者可以更好地理解如何在 Android 应用中构建功能完善的导航抽屉,提升用户体验。
本教程将详细介绍如何将百度地图导入到Android项目中,以便开发者能够利用百度地图API进行应用开发。 首先,我们需要在百度地图开放平台(http://lbsyun.baidu.com/)注册一个账号,创建一个新的应用,并获取API...
对于Android开发者而言,集成X5内核可以显著提升应用中的网页加载速度,改善用户体验。 集成Android X5内核的步骤主要包括以下几点: 1. **添加依赖**:首先,在项目的build.gradle文件中引入X5内核库。通常,这...