!要学吗
在学习一门新技术前需要解决的第一个问题是要不要投资时间去学这门技术。就像买书最大的成本并不是买书的价格,而是看书的时间。花费大量的时间去看一本没有价值的书,无异于浪费生命。正是方向搞错了,越努力越尴尬。
怎么确定一门技术的价值,可以从以下两个方面来考虑:从知识体系出发:某门技术经常不是孤立存在的,而是一个积木般搭建的大厦的一部分。要学习顶部的技术,就需要掌握一定的底部技术。如果一个技术很基础很底层,被很多高层的技术所依赖,那学习这门技术就很有价值。
从应用前景出发:如果一门技术很有市场“钱景”,或者有潜在的市场需求,那学习这门技术就很有价值。毕竟我们学习目的很大的一部分在于赚钱解决自己的生活问题。
不过这里的难点在于从我们已知的信息来分析,很难判断某门技术的市场前景。如果分析判断错误,很可能会导致我们学习这门技术的时间被浪费。那最佳的选择的就是尽可能让自己所学的技术都满足这两点,哪怕最后没有市场前景,但如能成为我们知识体系的基础,也值得投入时间去学习。
!怎么学
在制定了学习目标之后,剩下的问题是怎么怎么学?学习方法千万条,重要的是找到适合自己的学习方法。
我推荐的方法是善用搜索,找到对的资料和对的人。学习本身不应是一件复杂的事情,因为它不是做研究,不是探索未知的东西,只是站在巨人的肩膀上把已经被解决的问题学习一遍。
但这里的难点在于资料千万份,一不小心就找到错误的资料,让本来简单的学习变得复杂,这就像天龙八部鸠摩智学了段誉给的错误的六脉神剑剑诀,很容易学的走火入魔。
!技术历史
复杂的技术不是横空出世的,而是从简单的技术逐渐根据需求而演变来的。很多时候一个技术的复杂是因为其有很多历史性而导致的,比如Java的范型之所以使用复杂并具备很多限制性是因为其为兼容老的库而妥协设计出的产物。了解这个技术的历史背景有助于降低理解这个技术的复杂度。
!做好笔记,制定学习计划
记录完笔记后,我要做的就是规划时间把整理得来的资料学习消化。在这个环节可用时间管理的方法制定该项技术的学习计划。
!学习技巧
学习技巧千万条,但有一条是我觉得很重要的,那就是把你所学的说给别人听,从别人的反馈中了解自己对该知识掌握薄弱的点。很多时候大脑在学习的过程中会有很多模糊不清的点,如果不说出来的话,这些不清楚的点会被忽略掉,但如果要让别人听得懂,那需要我们懂的更多才行。
写文章其实也是说给别人听,只不过比单纯的说要更为系统。所以一般在学习某个技术的时候会去写文章分享。一方面让自己的知识梳理的更清晰,另外一方面可以与读者交流,掌握更多的知识,这也可以解决掉那个经典的我不知道我不知道的知识,当写出来时,会有看到的人帮我发现我不知道的知识。
!心理建设
学习里的一大难点可能是不好意思说出自己不懂的点,尤其是工作多年后,要承认自己不懂是件困难的事情。但如果你以终身学习为目标,那么这方面就没什么障碍。不懂就去学,不懂就去问。无知并不可怕,年龄大不懂也不可怕,可怕的是不懂却隐藏这一点。
!怎么用
在掌握了技术的理论后,可以通过技术的实践来提高自己的技术水平,比如做一个开源项目。对技术的应用有两种方式:
从零开始,一步步实现自己的系统。这种方式的问题在于,刚开始我们对技术的应用不是很熟悉,完全自己做可能无法应用一些最佳实践,摸着石头过河的成本比较高。
从现有的应用中改造。开源项目有很多好的应用,可以直接用来学习并改造。一方面可以加速应用的开发,另外还可以学习别人成熟的经验。
学以致用,是学习的最终目的。只有真正去用这个技术,才能真正掌握它。否则花费时间去学习,不用的话很快就忘了。