对于大多数的人来说,从毕业之后其实大多数的可能就不会在认真学习专业和专业外的课程,但是对于程序员这个大群体来说,想要提高自己的技术,需要不断的提高自己的技术能力以及来提高薪资水平,那么有没有相关的高效学习的方法呢,注意这里只是给出方法,但是具体的事件还是需要付出时间去一点点积累。
主动学习&被动学习
首先来说这个学习模型,听、阅读、看视频 其实留存率是很低的,而高效的方式是讨论、以及不断实践、教会别人,但是一般情况下我们没有条件能够教给别人,写博客就是一个可以进行很好的知识归纳总结的习惯。
学习要思辨、践行、总结和归纳,而不是盲目追求阅读量和数量,这会让人尝试低层次的勤奋和成长的感觉。
深度学习
除了掌握学习方法之外,我们还要明白学习任何东西都要掌握事物的本质,也就是深度学习。
- 高质量的信息源和第一手的知识。
- 把知识连成地图,将自己的理解反述出来。
- 不断地反思和思辨,与不同年龄段的人讨论。
- 举一反三,并践行之,把知识转换成技能。
学习三步骤
- 知识采集。信息源是非常重要的,获取信息源头、破解表面信息的内在本质、多方数据印证,是这个步骤的关键。
- 知识缝合。所谓缝合就是把信息组织起来,成为结构体的知识。这里,连接记忆,逻辑推理,知识梳理是很重要的三部分。
- 技能转换。通过举一反三、实践和练习,以及传授教导,把知识转化成自己的技能。这种技能可以让你进入更高的阶层。
学习目的
学习不仅仅是为了找到答案,而更是为了找到方法
学习不仅仅是为了知道,而更是为了思考和理解
学习不仅仅是为了开拓眼界,而更是为了找到自己的未知,为了了解自己
学习不仅仅是为了成长,而更是为了改变自己 改变自己的思考方式,改变自己的思维方式,改变自己与生俱来的那些垃圾和低效的算法
挑选知识和信息源
学习第一步就是知识采集,那么我们学习的任何技术或者技能,都应该先看一些官方的东西,比如学习手册、技术官网等,相关的技术书籍以及不错的技术博客等。而不应该把时间浪费在收集各种公众号的资料 pdf上。这种都是吸引流量的方式。比如不错的学习视频等都可以。第一手资料是没有被别人消化过的,所以信息最全。掌握渔 而不是鱼
注重基础和原理
勿以浮沙筑高台,只要基础扎实才能上升到更高层的纬度,基础不好对事物的理解就不到位。是经过时间的验证,我们学习技术技术不是为了炫技,而是当遇到问题时,可以触类旁通,相关的解决问题的思路可以提供帮助,并且在解决问题时,可以很好的提供思路参考。
码农和工程师的区别,我认为在两方面一个就是基础技术另一个是否具备软件\架构设计。
使用知识图
其实任何技术都是有迹可循的,我们在学习的是否 如何漫无目的的学习,那么效果肯定是不好的,所以需要有一张地图,思维导图也可以。把这个技术的核心找到,然后顺藤摸瓜,淌出一个路,然后铺出一张网,只要技术核心点,那么剩下就可以梳理、推理出来。
系统学习
不管是任何技术,都要进行系统化的学习,只要系统学习才能掌握其本质。一般一个技术出现一定是为了解决现有问题。
1.技术出现的背景、解决什么样的问题
2.技术的优势劣势是什么 trade-off
3.技术的适用场景
4.技术组成部分和核心关键点
5.技术的底层原理和关键实现
6.已有实现和它的对比
小结
1.带着问题去学习,带着要解决的东西去学习。
2.用不同的方式学习,比如博客、书籍、视频、专栏、脑图。
3.将学到的和已有知识建立联系,巩固学习。
4.工作能为我们带来相应的场景和实际的问题,而不是空泛的学习。带着问题去学习,带着场景去解决问题,的确是一种高效的学习方式。