回答下自己怎么学习的问题
前言
走了这么多的弯路,现在终于有了比较明确的规划,能够回答自己学什么怎么学的问题了,今天就来聊聊我怎么学。
注意!学习方式绝不是通用的,虽然参照别人的方式是一种捷径,能少走弯路,但仍需要基于自身性格特点定制一下。
我的性格是这样的:
- 好奇心重,看到没见过的关键词都喜欢去了解下,去的最多的是百度百科。比如重力转向(航天),甘蓝(蔬菜),TU构型(核武器),机甲(科幻)等等很多,不仅仅是所学技术方向,其他什么自然,历史,哲学,军事,娱乐方面,只要看到没见过的词都会去查查,虽然有时候这样浪费了不少时间,但开阔了视野,有时候会有意外的收获。
- 有偏好,再加上好奇心重,对于喜欢的,比如技术上的敏捷开发,可以花大量时间去查资料。不喜欢的,一般不会深入,除非有迫切需要,比如英语,经常说要学好,每次都是背了一阵单词后不了了之,园里的那篇英语的博文给了我迫切的需要,现在终于下决心拿下她了。
正题
好了,扯了这么多,该话说回来了,我的学习方式有两种。
- 深度学习,围绕一个点不断深入,不断挖掘,再扩展,花的时间长。
- 广度学习,关注知识面,不注重细节,只求了解,不求倒背如流,时间短。
深度学习
深度学习最常见的就是一般的啃书方式,适合初学者,一本书从头看到尾,什么都不放过,花时间很长,数天到上月。
另外一种就是我这样,用来挖掘新玩意,不局限于一本书,可能是一个领域,时间甚至需要数个月上年,甚至看不到尾。
扯道理无用,直接上例子,见此随笔
从durable谈起,我是如何用搜索引擎抓住技术的关键字学习新姿势打开敏捷开发的大门
这个就是,通过一个点,不断深入,发现多个点汇聚一个点,由此再次深入的深度学习。
关键在于要保持好奇心,抓住学习过程中的关键字。关键字来源有这么几种
- 有时间逛逛技术网站,看看博文,看看别人在学什么,不要只瞄一眼,看到不认识的进一步挖掘;
- 资料里的进一步扩展,比如我在查ant的资料时,有提到maven这个新玩意;
- 书中提到的,和它参考的文章,比如maven实战里提到持续集成,最近看jvm中有一行提到JNDI;
- 多个技术点同时指向的或相互指向,比如重构,TDD,持续集成都提到敏捷开发,你就要意识到敏捷开发是一个重点;
一句话就是,在学习时没见过,别放过,哪怕花一分钟看个百度百科也好,有时候你就会打开新世界的大门。
非常适合专研一个技术,并由此进行扩展,就像树的生长一样,围绕先主干,然后不断分支,最后扩展知识面。
当然有时候找不到主干,就需要摸索了,上文提高的主干是敏捷开发,我也是在几个月后才意识到。
广度学习
这个我很喜欢,特别适合短时间的知识积累,比如读一本书,时间一般不会超过几天,需要用思维导图做好笔记。也适合了解一些东西,我个人很讨厌各种概念和理论的东西,尤其是书中大量文字性的说明,甚至需要去背,这样的书一般看一会就不想看了。
以我最近在看的书《深入理解java虚拟机》为例
这本书包括虚拟机的各种方面,很多就是概念性的东西,没什么实际的用处。广度学习的话,首先抓住几个重点,什么是必要的,这本书目前对于我的重点有三
- jvm内存模型
- gc机制
- 类加载机制。
其他性能调优之类目前用不上,略看即可(实际原因是现在大四在找工作,面试一般问这三,其他无用)。
这种重点需要根据自己的需要确定,比如看书时正需要进行性能监控与调优之类的工作,那就看优化那几章,其他掠过。
对于大部分情况,特别是专业性的技术书籍,不需要像初学者一样从头读到尾,先看一下序和目录,网上查查相关信息,找到自己该看什么,其他以后再看。
谈到工具,因为是短时间的知识积累,很容易忘,甚至再学时都不知道自己学了啥。思维导图就是一个好东西,见下图
我只看了上文提到的几章,书中一行提到JNDI,花几分钟查了下资料,发现原来它叫JNDI啊,是用过的东西,当扩展笔记了。
这种方式,类似蜘蛛结网,先扯骨架,并深入几个点,慢慢在补充细节。
主要关键有这么几点
- 适合零碎时间,扩展知识面;
- 对于概念,侧重理解,绝对不能背,比如上面几个重点,花一点时间完全可以背下来应付面试,但那又如何。
- 需要经常跟进,不然容易忘,最好有实际操作;
- 随时补充,即在其他网上和文章中发现相关知识点补充到笔记中来。
一方面,对于一个知识面,短时间内你几乎什么都能说得上,对于一个问题,你知道用什么能解决,往哪一方面探索。
另一方面也意味着一旦深入就抓瞎,对于问题,你并不知道具体该怎么做,需要再查资料。很多知识需要长时间的跟进去补。
最后
一个是一次性投入大量时间学习,另一个是每次投入一点,持续投入,二者的目的都是一样的,为了解决实际中的问题。适合自己的才是最好的
话说我的文章目前还比较渣,应该没人会弄走吧- -。。。
http://www.cnblogs.com/chulong/p/4359236.html