工作了几年的人,一问起是否还在学习,很多都说太忙了,没有时间学习。确实,每天工作的时间都很长,而且杂事琐事也很多,有时回到家里,脑子里想得还是工作的事情。想大块的时间来读书,学习并实践新的知识还是很难的。但是it行业不进则退,上班后要如何充电呢?
程序员要学的知识也很多,例如一个后台开发,要学习linux内核、c/c++的语言深层次的东西、数据结构算法、新的语言如python,ruby等、了解业界的动态、学习架构、学习编译器的特性、数据挖掘……哪项拿出来都够学习很久的。
刚出校门的时候,学习还是按照上课那样的学习,我管他叫“阵地学习法”。先找来两本书,然后从头开始看,记笔记学习。像学习课本一样。但时间久了发现效果并不是那么好,因为学的很累,有些东西学起来暂时还没有实践,慢慢的也就忘记了。
后来和一位老员工探讨,学到了一种方法。“兴趣是最好的老师”,你对什么感兴趣就学什么。实践也很重要,你遇到什么问题了,或者通过问题来发散到的知识点,立即去挖去学习效果会比较好。一来解决了问题,二来经过实践记忆深刻,效果自然就好。这样一本书就不用都看了,只看一部分就可以了。也不会觉得“以有崖换无崖,殆矣”。姑且管这种叫做“游击式学习法”吧。
物极必反,不能说“游击式”和“阵地式”哪个更好,还是要看具体的环境。“游击式”适合学习时间少,快速解决某种问题。“阵地式”学的面更广,通常会接触到疑问的底层,知其然还知其所以然,问题理解更透彻,但时间更久。都综合起来更好。
首先要规划出学习时间,例如每天晚上两小时、周末。然后细化,哪些是处理游击学习,哪些是处理阵地学习。通过每天遇到的问题来找到游击学习的点,通过游击点和自身发现的短板来归纳出阵地学习的范围。这样养成习惯。先集中精力把眼前的问题解决并收集到相关方法。因为有的知识我们不是马上就需要,或者马上就能学会的,但是我们可以先知道有这个东西,再遇到这类问题可以用这个关键词找到,或者有时间可以阵地地把这部分学了。
然后确定优先级。游击式以解决实际问题和兴趣涉猎为主。例如工作遇到问题的最优解法查询,对于业界新知识新算法的了解。定期把这些点挑出值得学习的输入到阵地学习单子里。阵地式主要是提高自身深度,处理最急迫需要学习的。注意:最急迫可能是你要发展更深的擅长领域,例如已经懂得了C++并天天用,但是要更深入学习C++的底层;也可能是学习python、ruby等新语言,拓宽知识面。就看你觉得哪个是你觉得最重要的了。
总之,要了解学习的目的,学习不是看书,不是花时间。是为了解决问题,让自己长进。什么能符合这个目标我们就学什么,否则还不如歇会呢。道理虽简单,但是能够跳出来思考这个问题,并且能抽出时间觉得要学习,还是很难得。