培养自己的学习方法_1发现问题及分析问题
从小学、初中、高中、大学到现在的社会大学,从数理化、史地生到如今的编程,我们常常在追寻,在思考,如何能快速掌握并巩固一门知识、一项技能,继而锻炼成为自己的才能,成为自己的核心竞争力。
小学时,觉得只要跟着老师思路,认真听课,分数就没什么问题。初中了,渐渐意识到,除了上课听讲,还需要在课外付出更多的时间;到了高中,除了上课听讲、课余复习,更重要的是:做题。到了大学,没有了老师的引导、作业的压力,当自由真正放在自己手心,反倒觉得,不知道该如何用。
传统的学习方法中,我们总是为了考试,被动地被灌输知识,却很少去思考自己为什么学习这些知识、如何学习这些知识、学习这些知识能解决什么问题?
我一直希望,能找到一种适合自己的高效学习法,我尝试着去观察周围同学、同事,去阅读各种书籍、博客,去了解他们如何在工作中学习,在工作之余学习。
我也渐渐意识到,当你需要掌握一种学习方法时,你更应该先去思考,自己在目前的学习中遇到了那些问题?
在我的学习过程中,我尝试用发现-分析-解决问题的模型,去提升自己的学习能力。各位如果有兴趣,也可以用这样的方式思考一下自己的学习过程是否也存在这样的问题,希望对大家有所帮助。
一、发现问题(Where):我在目前的学习过程中,遇到了哪些具体问题
1.开始学习前:我为什么需要去学习,学习能帮我解决什么样的问题?
在传统的学习方法中,我们常常被动的去学习,明明觉得自己应该去学,但总是因为各种“理由”,懒于去学,懒于去做。这很大程度是因为,我们并没有深刻理解,我们为什么要去学?
2.开始学习前:目前的主要学习方向是什么?需要学习哪些内容?
离开了学校生活,不再有固定的学习内容,我们有了更多的选择的权利,也意味我们的选择有了更大的难度
3.开始学习前:如何制定学习计划,并持续执行
计划,是对我们学习行为的一种约束,也是对阶段性成果的检验。
4.学习中:如何避免疲惫,提高专注力?
当你连续学习一两小时,开始分心,无法集中尽力,效率低下,该如何处理?
5.学习中:我应该如何梳理自己的思路?
业余时间学习编程,程序员比较常用的方式就是看视频,看视频往往要求我们跟着老师的思路走,而实际上,我们又不能仅仅跟着老师走,需要有自己的思考和组织方式。
6.学习中:觉得要学习的内容太难,沮丧甚至恐惧
7.学习中:感觉自己的学习效率太慢,无法在短期内学到更多知识
8.学习中:感觉自己的理解能力有问题,听不懂老师讲课,看不懂技术博客
9.学习中:没有记笔记的习惯,没有很好的保存知识,下次想找回来,费时费力
10.学习后:学习过的内容,不能很好的跟其他内容联系起来,没有形成自己的知识体系
11.学习后:明明自己学过这项内容,到真正应用的时候,老是出错,甚至不懂用,能力不被人认可
上述是我在自己的业余时间学习编程,遇到的一些问题(当然,其实还有更重要的问题:如何克服惰性心理,下决心学习。我个人的方法是需求驱动学习法:树立自己的核心价值观,找出对自己最重要的事情,要实现这件事(比如职业规划),往往最好的办法就是学习,当你意识到需要学习,自然而然会想办法学习)。
二、分析问题(What):问题是理想状态与现实状态的差异
在思考问题的解决办法前,发现问题,显得尤为重要。而什么是问题呢?《你的灯亮着么?》中对问题是这么定义的
问题是理想状态和现实状态之间的差异。
清晰认识并深刻理解理想与现实的差距,有助于我们思考如何解决问题,促使我们想尽办法拉近两者的差距。
1.开始学习前:我为什么需要去学习,学习能帮我解决什么样的问题?
理想状态:我想成为一名理论知识丰富,动手能力强,逻辑思考能力强并能独立解决问题的的开发工程师
现实状态:我的理论知识少,编码能力弱,不善于思考,编码成立停留在仅实现功能的层面,代码的可读性、可扩展性不高
2.开始学习前:目前的主要学习方向是什么?需要学习哪些内容?
理想状态:我迫切需要提高iOS编程能力,包括语法基础、控件使用、框架设计、性能优化等,并持续关注移动互联网行业其他方面的知识
现实状态:我目状态1的学习方向更明确,不是盲目什么都去学,也不是只知道跟着别人去学,而是有针对性的学习对自己未来职业发展有帮助,目前自己欠缺的知识前在iOS UI设计、性能优化这块,能力偏弱
3.开始学习前:如何制定学习计划,并持续执行
理想状态:年轻时,我的时间精力非常宝贵,我希望能对它们进行合理分配,有效利用
现实状态:制定计划时,我不知道该遵循怎样的原则?实际执行时,我经常因为其他事没有按计划进行学习
4.学习中:如何避免疲惫,提高专注力?
理想状态:我希望自己每天都有学习的激情,在持续学习的过程中,有充沛的精力
现实状态: 每天下班后,我会觉得疲惫,懒于去学习,在学习的过程中,往往会学着学着,忘记自己在做什么,或者突然想去做其他娱乐性的事情,没有很好的学习节奏
5.学习中:我应该如何梳理自己的思路?
理想状态:我希望在自己看书看博客看视频时的时候,不仅能够理清它们讲的是什么知识点,并且知道能在什么情况下、如何应用、解决我的什么问题,我以前解决这个问题用的是什么办法,为什么作者提出这样的办法,还有没有其他更好的办法
现实状态:很多时候,我只是阅读文章、听视频,我知道它们在讲什么,去记它们如何应用,只会按部就班,但为什么这样做,具体的思路是什么,我不太清楚
6.学习中:觉得要学习的内容太难,沮丧甚至恐惧
理想状态:知识难学,不是因为知识难学,是因为我觉得它难学,我希望自己能不畏困难,挑战知识中的难点,并征服它。
现实状态:一些编程知识比较难,可能是因为我从来没接触过这门语言,或者它与我以前学习的语法相异,它太抽象了,我没法理解它到底的如何运作的
7.学习中:感觉自己的学习效率太慢,无法在短期内学到更多知识
理想状态:我希望掌握高效的学习方法,更希望认识到自己低效低在哪里
现实状态:我的学习效率低,注意是因为在记忆方面、理解能力方面较弱,在需要编码实践时,有懒惰心理
8.学习中:感觉自己的理解能力有问题,听不懂老师讲课,看不懂技术博客
理想状态:我为什么不能理解他们?我需要去理解他们,理解他们的思路,他们的关联,他们的表述,我需要理解的不仅是他们在说什么,还有他们的优缺点
现实状态:我容易被他们的表述带着跑,我思来想去,跑来跑去,我看似很努力,但我常常忘了问题的根本,我没法理解解题的思路
9.学习中:没有记笔记的习惯,没有很好的保存知识,下次想找回来,费时费力
理想状态:我要学会的不是记笔记,而是学会用各种方式保存自己的所学知识,而保存的知识不是简单的记忆堆砌,更应该加入我们的分析、判断,保存的知识不仅仅是保存,还应该经常去复习,这样才不白学
现实状态:我不太愿意记东西,更不愿意去复习,导致经常容易忘,要用到的时候还要重学
10.学习后:学习过的内容,不能很好的跟其他内容联系起来,没有形成自己的知识体系
理想状态:我需要的不是知识的多少,而是知识的归类整合,知识不是孤岛,而应该形成地图,形成网络
现实状态:我现在是学一点记一点,也学一点忘一点,当我回顾所学,没有很好的知识体系帮助我梳理思路
11.学习后:明明自己学过这项内容,到真正应用的时候,老是出错,甚至不懂用,能力不被人认可
理想状态:我希望能提升自己解决错误的能力,对出现的错误进行总结(是没考虑到用户操作的细节?还是忽略了可能在某种情况出现的Bug等等),现在发现的错误越多,说明我以后再出错的几率越小
现实状态:我经常忽略一些细节方面的事情,虽然用某个方案可以解决问题,但这个方案可能导致的问题,没有考虑到。
从上面的分析,我们能看出,对理想、现实状态不同的认识,会对我们解决问题的方向,有不同的影响。下一步,我们需要知道,为什么会出现这样的问题
三、为什么会出现这样的问题(Why)
1.开始学习前:我为什么需要去学习,学习能帮我解决什么样的问题?
思考为什么去这样做,是一个好的开始,说明我们不是空想主义者,而是注重实效,注重解决问题的程序员
2.开始学习前:目前的主要学习方向是什么?需要学习哪些内容?
我们不清楚学习的方向,一是我们没有很好的职业规划(自己未来的职业方向是什么?),二是我们对需要学习的内容没有一个整体的认识(比如iOS开发会涉及哪些方面的知识,初级、中级、高级分别需要掌握哪些知识)
3.开始学习前:如何制定学习计划,并持续执行
因为我们在无计划的学习中遇到了太多的问题,所以我们需要制定计划,制定计划不是结束,而是开始
4.学习中:如何避免疲惫,提高专注力?
人的精力有限,不可能持续工作学习。但如果我们常常动不动就觉得疲惫,那可能就是我们的能量管理没有做好
5.学习中:我应该如何梳理自己的思路?
为什么我们在学习中思路混乱,很大程度是因为我们没有自己的思维方式。当老师讲的课、博客没有很好的条理,我们会认为是他们的问题。
6.学习中:觉得要学习的内容太难,沮丧甚至恐惧
还是那句话,学习难,不是因为它难,而是因为我们觉得它难,我们不应该担心自己学不会,而是应该担心自己不会学,先“会学”,再“学会”
7.学习中:感觉自己的学习效率太慢,无法在短期内学到更多知识
效率低,是哪方面的效率低(记忆力?理解力?),为什么效率低。我们要注重的是解决自身的问题
8.学习中:感觉自己的理解能力有问题,听不懂老师讲课,看不懂技术博客
理解能力低,有可能是因为自己的知识面窄,理解一个新知识时,不能结合其他的一些知识,形成自己的理解。
9.学习中:没有记笔记的习惯,没有很好的保存知识,下次想找回来,费时费力
为什么我们懒于去记笔记,可能是因为我们没有很好的意识到记笔记对学习起到的帮助,或者是,我们记了笔记,但没有去复习它,记了的知识还是会被遗忘,久而久之,我们就认为记笔记没有什么用。
10.学习后:学习过的内容,不能很好的跟其他内容联系起来,没有形成自己的知识体系
为什么我们不去尝试把现学的和已学的联系在一起(比如学了java、C#、OC的多线程,它们之间有什么共同点),是我们只会愿意自外向内吸收,但不愿意自内相外扩展
11.学习后:明明自己学过这项内容,到真正应用的时候,老是出错,甚至不懂用,能力不被人认可
我们渴望不出错,能力被人认可,但往往,这不是一蹴而就的事情,我们需要持续的积累。出错的正常的,持续出同样的错,是不正常的
下一篇 培养自己的学习方法_2解决问题