最近半年由于项目悠闲,作了不少自学计划,不少都是心血来潮,也并无都坚持下来,好比学习C语言、学习Spring和web基础知识、学习操做系统等。在这个过程当中,忽然意识到“心态”是学习中一个很重要的部分。程序员大部分是独自学习的,很容易进入一个懒惰或焦虑的极端状态,小心态不稳定时,会发现时间眼睁睁地流过,而你却没法进步,这是一种很难受的状态。小心态健康时,不只能保持稳定的学习速度,还能在学习中获得快乐,进入一个正向循环。程序员
楼主是一个凡人,资质平庸,学习的目的无非是提升竞争力,使本身不至于某天沦为公司裁人的牺牲品。若是你有更清晰的梦想和目标,说明你比楼主层次高不少,欢迎来指点楼主。web
一开始学习时,楼主看了许多帖子,里面的Java大神们都在说:要提升技术,就要不停地看源码,甚至本身造轮子……年轻的楼主深受这种理论影响,不屑于搞业务而日日研究如HashMap源码这样枯燥的东西,甚至计划本身写一套collection framework,把大神们造过的轮子再造一遍,彷佛只要写完这一套东西就能立地成佛,能搞定全部的业务和bug。面试
当我开始写HashMap的时候就发现,为了写而写是一种很蠢的行为。一个轮子内部的那些看似精巧繁杂的结构,存在的意义是为了让轮子更好更长久地运转,而不是工程师为了炫技而创造的。若是咱们没有一个实用的目标,反而会浪费时间,迷失在一些看上去很神秘的细节中。其实,像HashMap这样的数据结构,只需了解它大体的工做原理就能够了,余下的代码细节能够在使用有疑惑或者出了问题时再去看。算法
再好比,楼主看面经中老是提到JVM调优,所以以为这是Java程序员进阶所必备的知识,因而就买了书和教程去看,可是发现对于调优这个话题看书效率奇低,书上比较多的是一些描述性的内容,如JVM的内存分布和垃圾处理算法;还有一些实用性的内容,好比调优工具、调优案例。有些内容反复看了又看,回想起来脑子里却不剩什么,远没有看完一个算法后的那种条理清晰的感受。而花在这个问题上的时间却远远超过看算法的时间。编程
这几个周,同事要作一个自动化测试工具,问你们有什么好的建议。楼主想到本身一直学调优而无所得,灵机一动,提议在工具中加入调优功能,获得了同事承认。同事给楼主大概介绍了一些调优思路,推荐了一些资料去看。楼主但愿争取到这个亲自实现调优功能的机会,因而幻想本身即将面临各类性能问题,为了解决这些问题开始储备知识,而后惊异地发现学习有了层次,楼主再也不死板地按章节看书了,能够自动地筛选出重要和不重要的内容,甚至能够在脑中造成清晰的脉络了!设计模式
因此计算机是一门实践科学这句话必定要深入理解。由于偏实践,因此不可能当王语嫣,由于许多理论是从实践中来的,比如数学公理,只能从实践中获得感性认识,没法从其余的理论推测得来,也没法死记硬背。楼主是一个学院派的人,在这方面吃了很多苦。从中总结出的方法论是:网络
长时间的学习很容易懈怠,陷入一种被动接受知识的状态。另外,一我的的思想永远不可能顾全全部方面。数据结构
好比,楼主的朋友最近想学习Java,因而楼主挺身而出,天天给他介绍二十分钟Java基础。当说到垃圾处理时,楼主天然地老生常谈:Java内存分为新生代和老年代,通常的GC只对新生代进行收集,而只有老年代也没有空间了才会进行Full GC……朋友眨着天真的眼睛问楼主:为何要分两个区进行收集,而不是每次都对全部内存进行垃圾处理呢?楼主惊讶地发现本身答不出来,由于从未想过这个问题……框架
今天楼主复习时无心中发现,书里其实有介绍这么作的缘由,即大部分对象都是朝生夕死的,按年龄分代并频繁地收集新生区比较贴合这个模型,这样既能照顾到经常使用的内存,也能保证垃圾处理能在比较短的时间内结束。这一段楼主其实看过多遍了,但居然从未将二者联系起来,也未思考过度区设计的缘由……工具
又好比,有一次面试时面试官问Java线程池中核心线程数和最大线程数的区别。楼主轻车熟路地说:核心线程数是线程池的初始线程数,最大线程数是线程池能扩展到的最大线程数,只有任务队列提交满时才会扩容。面试官接着问道:“那你想过为何要这么设计吗?”楼主支吾半天也没答上来……过后一想,其实很简单,就是为了既能重用线程,减小线程开销,又能知足偶尔的大规模请求而已。这么简单,为什么当时没想到呢?
……由于平时看书的时候就缺少思考啊……
对于楼主这种口号上的巨人、思考上的矮子,除了常常给别人讲东西从而被别人挑战以外,还有一个好办法,就是坚持写博客。
博客是一篇文章,须要有文章结构这种东西,为了使你的博客显得比较有逻辑性,你会被逼着去梳理知识点之间的逻辑,以及一门技术的由来、历史、产生背景等等。在梳理过程当中,你会发现看书时遗漏的点被填满了。另外,把思路写出来能进一步强化你对知识的印象。并且,持续写博客会给你的学习形成一种健康的仪式感,即便一开始没有太多读者,你也会爱上这种输出的感受,反过来督促本身为了写出更多博客而坚持学习。
焦虑是自学最大的敌人。有一阵子看到朋友看书很快,本身也想加快脚步,但是却打乱了本身的一向节奏。又有一阵子,像着了魔同样四处搜寻名人自传、大神博客,而后发现本身跟大神的差距要以数十年计,陷入一种无止境的焦虑。
楼主愿意相信,焦虑并非彻底很差的状态,由于它证实一我的想要进步,想跟那些优秀的人比肩。可是,“认识本身”也是一门很是重要的学问。每一个人都是不一样的,如今跟大神差距很大并不意味着几年后还会差距很大;可是有一个坚持下去的秘笈,跟跑马拉松同样,就是不要看别人,不要看终点。要作到这一点,先要接受本身的平凡,这样才能平心静气地去吸取知识、抵御外界的影响,而持续的焦虑只能拔苗助长。
若是天天都抱着一个远大的梦想,正襟危坐地努力学习,会发现很快就累了。之因此看电视剧不容易累,是由于潜意识就告诉本身在玩。若是学习的时候,也能够调整到一个好玩的心态,把问题看成小乐趣去解,会发现不知不觉就沉浸在解题的乐趣中,而感觉不到时间的流逝,这种状态是学习的上乘状态。