我有这样的经历:当我学完一门新的技术,却很难灵活运用到工作中,而工作中学习到的技术,时间久了又会忘记。久而久之,不知道该学什么,也害怕学新东西,疲惫不堪。
经过两年多的磨砺,自认为找到了解决的思路:
建立并不断更新自己的知识体系
每本书、每篇博客,作者都有自己的思路和体系。有的偏向实战,有的偏向理论。如果一昧的觉得这个作者写的好,那么早晚有一天,还会觉得另外一个作者写的更好。好与不好,与自己的能力有很大关系。两篇文章,如果是入门阶段,那么更喜欢浅显的文章A,随着渐渐的深入,会觉得A作者太肤浅,而当初看不懂的文章B才更有价值。
所以要想让技术、知识服务于自己,就要建立和不断更新属于自己的知识体系。举个例子,比如一个遍历,我想获取一个User对象列表的所有name,我可能会这样写:
List<String> result = new ArrayList()
for(User u: list){
resuld.add(u.getName())
}
后来学会了Stream,于是这么写:
list.stream().map(User::getName).collect(Collectors.toList())
可是又听说,stream效率其实很慢,慢了十几倍,结果就放弃使用了。
后来看到一篇文章“stream真的效率低吗?”,阐述了stream慢的原因,以及使用场景。可惜我已经很久不用了,忘得差不多了,重新学习时发现网上的资料良莠不齐,又找到了当初重学的感觉。
甚至有的偏执狂会问:“那我到底该不该用stream”。其实用和不用根本不重要,重要的是
在你的知识体系中,解决这个问题有两个思路了
你应该有当初怎么学习stream的入门书籍或者博客,也有后来放弃使用的理论支持,最后还有反过来继续用的新的知识储配。这些知识都是当初你在网上、书上搜集的最终信服的知识,几篇文章连成一条stream不断深入的线路,这是世界上适合你的独一份知识。每次忘记,或者复习、或者参考、都会无比亲切,而且你不担心该不该用它,也不用担心忘记。