工作之后该如何学习?

        我不是科班出身,虽然在软件开发以及问题解决上一点也不比科班出身的人差,甚至还要强一些。可是工作这么长时间总有一种感觉,无法深入下去,只能浮在表面做一些应用方面的工作。这样的状态我无法接受,我想要更深入一些,可是有大量的东西要学习。其中感觉最缺乏的是数学根底,离散数学、组合数学,有些教程中把组合数学合并到离散数学中去了,组合数学更侧重算法复杂度分析方面。也买了不少数学方面的书,离散数学、组合数学有数个版本,可是一直没有怎么看。曾经在大学图书馆谎报书弄丢了的《形式语言与自动机导论》的古老版本,赔了十倍,不过因为那本书非常便宜,不到四块钱,所以还是很划算的(都象我这样,图书馆就惨了)。的确收藏了不少好书,可是真正从头到尾认真读过的却很少,别人是守财奴,我成了地道守书奴!
        总是能够给自己找出各种理由来逃避学习,工作忙,家里事情多等等。不过工作了,的确无法与大学时候相比了,大学主要任务是学习,而工作后主要任务是工作。而且结婚后,家里乱七八糟的事情也的确多了很多。但这一切都不应该成为不学习的理由。可是也的确很难找到大块的时间了,参加系分考试前几个月,老婆盯得比较紧,也承担了绝大部分家务,考完了就没这么幸福了。
        大学时候的学习是系统地学习,工作后的学习大多是快餐式,需要什么吃点什么。现在各种新技术层出不穷,新语言、新框架、新思想,老语言也在进化,人的精力是有限的,必须抓住本质的东西,才能以不变应万变。最近买了两本大部头《深入解析Windows操作系统第4版》《程序设计语言——实践之路》,两本书都要求有一定基础,比如前一本说最好先找一本操作系统原理的书看看,后一本涉及的内容相当多,学过离散数学可能会好些。可是等啃完操作系统原理再来看这本书,时间过去很久了。
       虽然非科班出身,但是毕竟在这一行摸爬滚打这么多年,虽然还不能上升到理论层次,但是还是有一定理解的。所以可以找一本操作系统原理的书参考读,遇到不懂的看看别的书,然后回过头来再读。这样会好些,节省时间。首先要保证在不断地前进,缺少弹药时补充点弹药,缺少食物时吃点东西,但是必须保持一直在前进。虽然有志者,事竞成,但是有些环境因素制约,还有你是否值得付出这么大的代价。比如全脱产读研究生,一下子没有了收入,能否接受等等。
         学习要与当前的工作结合,这样才能学起来比较快,也能得到比较多的支持,比如参加相关的培训单位能够报销费用。另外人的大脑从思考一种类型问题切换到思考另一种类型的问题代价挺高的,就象进程间上下文切换一样。如果学习和工作结合的话,切换代价比较低。不过也有一种说法,从思考一个问题切换到思考另一个问题,也是一种变相的休息。比如居里夫人,研究累了,做一做数学题——思维体操。不过就我个人感觉,在同一类问题间切换代价比较小,不同类型要比较长时间才能进入状态。
        工作了,不再是打基础的时候,学习的是最新的知识,如果等基础打好了再来学习,已经变成旧的知识了。最新鲜的知识在实际工作、谈话和演讲中,发表到杂志上的东西已经不是最新的或者经过处理的东西,而出版到书籍中的知识已经是很成熟的东西了。互联网加快了信息传播的速度,各位大牛的BLOG中,我们能够看到最新的思想火花。这是最新的但是不够成熟、完整与系统,发表在杂志上,形成书籍的知识已经落后一到三年了。但是磨刀不误砍柴工,有了坚实的基础,学习起来比较快。虽然我们不是科班出身,可是毕竟在软件开发一线干了这么久,具有丰富的实践经验,应该根据自己的特殊情况采取特殊的战略。即便是学习操作系统、离散数学等原理时的速度也会比刚毕业的大学生快很多。
       所以,虽然我们非科班出生,可是毕竟在一线工作这么多年,具有丰富的工作经验,这是我们一笔宝贵的财产。即便是学习基础性课程,也能使我们的学习大大加速。所以除非特别必要,可以以一本书为主,缺什么补什么,穿插学习。这样学习效率更高些,能够更快提高自己!

你可能感兴趣的:(工作之后该如何学习?)