专注不贪多
学习的时候,一定要目标明确,不要这里搞一下那里搞一下,在很短的时间跨度,一会儿又是spark,一会儿又是kafka,一会儿又弄了redis,甚至为求时新,还来几下机器学习,并且疯狂地囤了一堆书和视频,这翻翻,那点点,当时可能觉得自己涉略很多,关注面挺广。可是,大量时间过去后,貌似学了不少,细想之下,又好像啥也没收获到。为什么会这样呢,因为人对一件新事物的接触,如果没有多角度地去深入探究,遗忘是很快的。因此,技术学习不可求快,必须专注,务求对所学的东西掌握透彻。
带着问题学习
要做到这一点,应当先从总体上建立宏观认识,给自己提几个问题
- 这个技术有啥用,解决了什么问题?
- 和解决同类问题的其他技术有何异同?
- 该技术的适用场景是什么?
- 该技术在使用过程中,需要注意的问题?
- 该技术的优化点有哪些?
这些问题当然没法立即回答,但是我们在学习该技术的过程中,时时刻刻带上这些问题。
接下来是分模块去学,学具体知识的时候也必须不断地给自己提问题,自己寻找答案,在遇到坎时,应当先仔细的阅读官方文档,多做实验,等基本功能使用熟透之后,再尝试去看源码,先前学习flink,对各种概念功能还不熟悉的情况下,就去硬着头皮看源码,看到各种接口实现各种懵逼,还对自己能力产生了怀疑,以为自己水平有很大问题,实际上是学习的流程搞错了,地基都没有,就想着构建大楼,何其荒唐。
勤写技术文章
技术学习过程中,随着自己不断挖掘,会学会一些列的功能使用,也会碰到一些列问题,解决一些问题,这时,如果不及时记录下来,保留现场,随着时间推移,我们对它的记忆逐渐淡忘,最后就感觉和没有学过一样,长期不使用的话,以后捡起来又得重新来一遍。如果我们再学习的过程中,按照我们容易理解的方式有针对性地写下了技术文章,有现场,有演绎,有总结。并且是我们亲手所记,以后读到也会很快唤醒记忆,能大大地降低我们复习的难度,不至于和没有学过一样。