一点学习感想

看博客,读书,看一些技术分析和源码,自己慢慢也有了一点对技术的感想,这里简单总结下,有点乱,不过还是记录下来吧!

 1.  一张纸折叠51次多厚,51张纸堆一起多厚?所以学习要有条理,联系,会思考不同技术间的联系,通性,形成自己的一套技术体系,技术蓝图,学习什么,学习到什么程度,要学习的技术工具在你的技术蓝图上是什么位置的,起什么作用,这些思考相当重要,也决定了你的学习效率,深度,如果自己的学习线路不是有规划的,或者完全是工作需要什么再学什么,相互间的联系思考很少,那就是类似于直接的把51张纸简单的堆在一起,学习研究了再多的技术,框架,工具其产生的最后成果可能比别人要小得多.

2.  这种联系性思维也不是一开始工作就能形成的,首先是必须要有对技术的热情和持续学习的意志力,这是前提,然后就是对于如何学习,学习的效率,学习形成的广度和深度如何去拓展的问题.刚开始工作时,一般都没太多的经验,对整个技术圈的了解也不深,所以开始有点盲目学习是非常正常的,除非有个大拿帮你指点你如何学习,一步一步的教,不过这种不切实际,首先没有谁会有这么足够的时间先去了解你已有的技术程度,还有你自己真正喜好特长等,去给你指定什么学习规划,而且他人的有效经验也不一定就对你完全适用,最多给一些通用的建议,最终还是要靠自己去探索,思考-学习-总结-思考…,持续的,有耐心的形成自己的一套对技术的理解体系.

3.  拿我自己的学习经历来说,刚开始工作时,就探索Spring,不为什么,大家都在研究,而且好评不断,所以就去学他,一开始简单看了两本书,工作上也有应用,之后就花拉好几个月去读代码,的确有一点用,可是半年之后,我想回忆我读Spring的意义时,我想不出来任何东西,很是懊恼,后续还去读了picocontainer, jdon等相关的IOC框架的实现,自己还实现了简单的IOC小框架,再之后想想,其实我一直要抓取的就是IOC的思想及其的一些实现,学习这些框架,读源码花了很长的时间,从最终结果来看是有了想要的成果,可是从效率,时间成本上看,是失败的.现有的技术框架,工具多如牛毛,如果每个都想去学,根本不可能有那样的时间精力,也完全没有必要,所以形成套自己的技术蓝图,然后在这样的技术蓝图下,看哪些技术只要了解就好,哪些是要去实践实践的,哪些需要深入研究其具体实现原理的,都要有不同层次的学习要求的.

4.  再举例子,之前学习动态代理,其实是从学Spring里开始的,后来发现ORM(如hibernate)里的延迟加载,junit的mock实现等都是使用动态代理,而这项技术项目中也着实使用了其功能,如计算某个方法的耗时情况等,当时就觉得某项技术对他的理解能融会贯通到好几处不同框架的使用上,这样的学习理解才是非常有效率的.其实就是学习要举一反三,发散思考,衍生出去.另例,设计模式大家都会去学习,进而使用,我在学习设计模式好长一段时间,看了好几本设计模式相关的书并有一定的相应实践后,对设计模式有了一定的深入了解.不过,随后我的思考是,在学习设计模式去寻找资料书籍时,几本上都是JAVA或C++, C#之类的实现版本.同时,在一些技术论坛上也提到象Ruby之类的动态语言,有人说Ruby语言语法本身就实现二十种多有的设计模式的功能,是面向对象语言C++, C#等语言本身的静态特性等倒置语言本身无法支持的一些动态特性,使得我们要通过一些设计模式去解决一些常见的问题.随之之后的是Ruby的发放光彩,而JAVA7也投票是否要加入闭包等动态特性以提高开发效率等,这些一系列的思考和现状,使得我不能不去学习Ruby类的动态语言及函数式语言如Lisp等,以解开我的疑问,JAVA语言到底缺少什么,动态特性的优势是什么,我不仅仅是通过网上搜到的大家列举的动态语言或函数式语言的一些相对优势,是要自己去实践看看其到底能带给我什么,所以我开始学习Lisp和Ruby

总体来说,持续学习,多看博客(有可能自己写博客),多与其他人交流,然后就是要多思考,尽量要有规划有联系的去衍生学习,深入学习.

猜你喜欢

转载自googi.iteye.com/blog/1567925
今日推荐