半年前,对JAVA的了解基本上为零,不知道J2EE是什么,不知道那么多的开源项目,不知道原来J2EE里面的概念是如此的多,这半年学习Java的经历让我自己对Java的认识经历了好几个阶段,可能这应该就是一个成长的过程,至少对于Java本身,可能是要毕业的缘故,现在对自己自身的能力的要求显得特别的苛刻,毕竟是要找工作了。
其实学习Java对于我来说也是很突然,由于来中兴通讯实习,工作用的语言就是Java,所以我就开始学习Java了,还好Java的语法跟C++语言很像,所以入门Java个人感觉不是很难,而且开始看了几乎有几万行的Java代码,所以对于学习Java的环境还是很不错的环境吧,实习生的工作不是很繁忙,自由支配的时间还是比较多的,我基本上把所有的自由时间都放到的学习Java上,刚开始对Java有一个误解,以后跟学C++语言一样,学会语言,再用好一个开发工具,基本上也就可以处理问题了,可是隐藏在Java后面的J2EE(现在叫Java EE了吧)确实让我大开的眼界。
刚开始学习Java可以说是热情高涨的,应为相对于C++语言来说,Java的易用性以及特别好的面向对象思想的实现让我觉得,就是Java了。可是接触的多了,发现的也就多了,问题也就多了,从来没有一下子接触过那么多的概念,J2EE学习让我一下子感觉Java的庞大和复杂,好像一下子有点找不到北了,我该先学什么呢,学什么好呢,等等等等。。。。好像开始有点郁闷了,那个乱啊,有时候学着学着就学岔了,呵呵。
由于感觉自己现在像进入了一个迷宫,就感觉怎么J2EE东西怎么那么多啊,一个东西还没有学会呢,另外一个新技术就又出来了,你说这算个什么事啊,这不明摆着把我们这些Java程序员往死里整呢吗,一度都有放弃Java的念头,不过由于工作的关系了,不学不行,所以就继续了坚持,也就是因为这个坚持,让我对Java有了新的认识,对自己的学习方法也有了新的认识。
前一阵子由于感觉自己的学习特别乱,东一榔头西一棒的,不着边际,压根就学不到真正的东西,于是就给自己定了个学习计划,从现在开始的第一个月研究Hibernate,然后研究Struts,然后研究spring,最后总结一下自己的学习成果,用自己学的东西做一个基于Struts+Hibernate+spring的论坛出来,就算自己的学习成果了吧,然而不能说的计划没有用吧,虽然没有真正的坚持我的计划,不过就是应为这个计划让我对Java的学习有了新的看法。我们知道J2EE的企业架构的Web程序开发主要是这样发展过来的:首先就是基于JSP+JavaBean,然后有了Struts,Spring,对于数据库的访问从刚开始的JDBC发展到现在ORM,确实让我们这些程序员的应用开发省了不少麻烦,不过有一个问题,这些架构的出现是为了什么呢?其实很简单,就是为了减轻我们的工作量,让我们更关注于应用。可是,我不知道别人是怎么看的,至少对于我来说,对于我一个初学Java不到半年的人来说,早早知道这些架构看来是没有什么好处的,学习的急功近利让我追逐的永远都是这些架构,这些为了减轻工作量的架构,而对于Java基础的学习则撂倒了一边,有点可悲,基础还没有牢固的情况下就去追求那些时髦的架构,再来看看我定的学习计划,好像有点可笑了,甚至是幼稚的。
现在我觉得有必要端正一下我的思想了,重新制定一个学习计划,毕竟10月分到了我还要凭着这玩意找工作呢。其实现在想想自己也的确犯了程序员最严重的错误:不研究最基本的东西,而去追逐那些花哨的技术,其实那些东西也都是这些最基本的东西开发出来的。所以从现在开始重新回到Java语言本身上来,好好研究Java语言的一些技巧,强烈地提高一下自己的Java基本功,免得回头跟别人热烈地讨论spring的时候说到语言本身的IO操作一脸茫然了。
说实话,我现在也想通了,就是说的俗一点,找工作的时候面试官的大部分问题应该是关于Java基本功的,面试题也基本上是关于Java语言以及数据结构等方面的,对于Hibernate,spring,我觉得他肯定不会问你某个配置文件怎么写吧,问得也是思想,比如ORM是什么概念,核心内容是什么等等,所以对于这些框架来说,我觉得会用就足够了,再说,基本概念掌握以后,学习这些架构才能真正学到精华,学到这些架构的思想,只有这样,我觉得才有可能真正成为一名架构师吧,呵呵,理想,奋斗ing。

从基本学期,摆脱浮躁,摆脱开始。