学不可以已
――我一年Java之路的回顾,反思以及展望
在暑假的学习中情况也是像我以前计划的那样发展,首先看的一本书就是《Java Network Programming》,
Bruce确实推荐了一本好书,这本书循序渐进并且讲的非常的透彻,学完这本书然后再学习新的net的API以及NIO是非常轻松的,这本书我花了10天看完了,自我感觉好极了^_^。与此同时也每天练习《Java Cookbook》中的代码,这个假期我把那本书的代码全部亲自实践了一遍,正因为如此就积累了很多解决实际问题的办法,所以把这本书叫做Encyclopedia一点都不过分!顺利的学习完《JNP》以后我开始了《Java Servlet》的学习,因为一直以来Java的基础比较扎实而且在上半学期对web application也逐步了解了很多东西,所以学起来是非常轻松的,当时我用的工具是Jbuilder9,省得用Editplus + Tomcat每次写完一个Servlet还要再改xml文件。提到JBuilder,我又想起当初死活不知道怎么破解的时候了,好不容易能使用JB了又不知道怎么弄,Java的那些IDE对于那些初学者来说确实亲和力不如VS系列,但是只要你入了门槛,那么那些工具就让你如虎添翼了!不过JB的庞大以及启动之缓慢确实让很多人敬而远之,虽然它的功能强大,特别是配合Together以及Optimizeit外加配合一张英俊的Blake Stone的照片^_^,不过我倒是更喜欢用Eclipse或者Idea!
不过暑假中收到一封来自O’Reilly的E-mail倒是影响了我后一个月的学习,那是O’Reilly给会员优惠的购书活动,其中很多书都是2折起的,就在那个假期我又一口气购了十多本书,内容覆盖XML,UML,Java,网络,不过只花费了200多RMB,相当于每本书就20多RMB,这在IT图书界而且还是O’Reilly这样有图书质量保证的世界一流出版社是非常罕见的!不过因为买的书实在太多了,我在暑假也看不完,所以在假期的后半段我只读了这几本书,《JDBC与Java数据库编程》,《Java Threads》以及《Enterprise JavaBean》的前2章(因为不太懂,刚踏入EJB的时候又如同步入森林了一样),再加上学习的《Core Java》(VolumnII),《TIJ》,那个假期我不敢说我有很大的进步,只是我觉得熟练度增加了,基础知识也算比较牢固了!
(附:其实当初买的那些书,除了上述三本其他都没看,害我后来没办法只有再低价出手。经过这一堑,我明白了,对于计算机图书,它不是《四书五经》可以拿来收藏,可以传给后世(当然也不排除有乐于此道的同学),要买书只能买最近要看的书,买来一本就就要订一个这本书的学习计划,至于于你没用的书,正如我当初买的DNS的,网络的,即使很经典,很便宜就算是白送于你,也没有两卷卫生纸来得实在^_^)
说到上个暑假,还有不得不提的事就是沉迷于CSDN的论坛中。早在暑假回家之前,除了那些学习计划,我还有一个目标就是一定要在CSDN的Java板块变成一个红星,因为那个时候我觉得红星就是技术水平高的代名词(一般初学者才有这个想法^_^),所以那个假期在CSDN回答问题可以用一个疯狂来形容,当时基本上事每一个帖子都有我得足迹,每天泡CSDN就5,6小时,分数确实是扶摇直上,但是我很清楚,能力并没有向专家分一样涨的那样的飙升!很快,不到一个月的时间,5000分就够了,看着自己名字后面的红星,可以说是喜不自胜^_^,心想Java我也算入门了!当时有感于Java基础板块的入门和基础问题在不同的时期要被不同的人重复提出N次,而且想起我入门的艰难,我就写了一篇初学者入门的帖子,列出了初学者提问频率最高的4个问题(至少当初我在前3个问题上面都栽过跟头)。1:环境变量 2:Servlet的配置 3:Java连接数据库 4:书籍推荐!后来时常看见自己的文章想,我当时要有这样一篇文章,也不至于……
回到学校,慢慢的,对CSDN论坛的热情也就淡了,不过每天打开浏览器第一个上的还是CSDN,可能这已经在我得生活里面成为定式了。就像我说,其实我每天上网也上不了多久,也就收收邮件,看看新闻,上上论坛。但是要一天不上网就觉得特别别扭,这已经固化为一种生活方式了!
如果说在升第二颗星之前我还有些许动力泡论坛,这点动力随着Converse旁边多了一颗星后就基本消失了,而且因为平时学习实在太忙了,所以每次即使上论坛也只是上会非技术版!更多上CSDN还是去看文档中心,因为每隔不久,就会有些非常好的文章可以学习。除此之外,另一个宝库就是IBM开发者网站了!
在下半学期我给自己树立了两个目标:第一就是进军J2EE阵营,其中首先准备攻克EJB,当然首选教材便是O’Reilly的那本《Enterprise JavaBean》,不过这本书委实太老了,书中讲的都是EJB1.0和EJB1.1。
EJB的实践环境要比一般的J2SE的程序配置高多了,我当时用的Weblogic8.1 + Jbuilder9 + SQLServer, 用JB开发EJB是非常方便,自己只需要添加很少部分的代码就行了!不过因为这样的配置造成机器的速度比较慢,所以我在学习EJB的时候并没有写多少例程序,主要集中在原理的学习!
另外一个目标就是设计模式的学习以及应用,希望能够脱离语言的层面,说这话只能是贻笑大方,因为脱离语言层面谈何容易,我得实践经验太少,光靠理论以及玩具级代码的练习要达到这个目标简直就是痴人说梦!不过9月份我确实开始了对模式的学习,选的书正是网上评价很好的《Java与模式》,不过这本书我只看了很少的部分,原因有二,第一这本枕头一样的书籍不便携带,也不便翻阅;第二,书中简单的代码占了大部分的篇幅,而且感觉有点累赘,或许因为我对东方文化孤陋,所以阎博士举的一些例子,反倒使我迷惑了!
但是9月份我却看到了另一本好书,《Effective Java》,Bloch不愧为Java社区中声誉极高的一个人物,这本书第一遍看的时候我就已经觉得就Joshua在这一条一条的建议中,就把Java编程的精髓透于纸上,这本书于我得震撼超过当初看TIJ的感觉,也可能是因为当时看TIJ的时候没理解其精华,也可能那些东西接触多了就没什么新鲜感,认为是理所当然的。正如我后来学习CPP的时候,见书上描述神奇的Polymorphism的时候没什么感觉一样!这本书在已过的这个学期完整的读过3遍,而且平时一有闲暇时间又在读这本书,感觉每一遍都有新的收获!
其实刚过去的这个学期在Java上我花的时间很少,写程序代码的时间就更少了,写的程序主要还是Java选修课和操作系统的作业^_^,因为我总感觉敲代码太费时间,实践所学到的东西根本不比我看书所学到的东西,当然我知道这是错误的,可是心里就有这种倾向!其实,蔡学镛的夜未眠中有这种境界,就是实践所能学到的确实不比看书所获取的知识多,我虽没达到却有这种错觉,可笑……
可能因为《Effective Java》给我的感觉太好了,我又买了两本主题差不多的书,一本是《Practical Java》,另一本是《Java Pitfalls》,前者深度上不及《EJ》,后者又涉及太多GUI的东西了,不过,总的来说,这两本书也让我学到了不少的东西!我坚信,多看点书始终对自己是有好处的^_^
《Mastering EJB》是我上个学期读的最后一本关于Java的书籍,我是把这本书的中文版和英文文档concurrently读的,不过也辄止到高级主题那章,因为慢慢的,我就暂时不准备向J2EE发展了,因为这些我都把他们叫做应用型的,如果你不出来实践那就没什么作用,所以我只是了解一些EJB原理性的东西,开发部署也就不用了解的那么仔细。所以后半期的Java学习还是把重心放在了J2SE上面。进入11月份,除了不时上技术网站看一些关于Java的帖子,从《程序员》,《开发高手》上面看一些文章,还有没事复习《EJ》,就没怎么拿着正式的书籍读过了!主要是因为我把精力全部放在了C++/STL上面了^_^
第一次,在10月份我参加了Java年会,而且这一次真幸运,遇到James Gosling首次访华,更为幸运的是,在James的见面交流会上面,能够和这位Java之父合影,而且那天还幸运的得到了一套Sun赠送的StarSuite!
参加Java年会后,我在11月份又参加了Bea的Dev2Dev开发者大会,反正我觉得就是大会是了解一些概念,要真正学到东西不太可能,那只是拓宽视野的地方,一句话,就是长见识!
反思这一年走过的路,也就是品味学习的酸甜苦辣,我觉得唯一值得称道的就是自己是一步一步坚持走过来,没有放弃!
至于短期内的目标就是学习深入了解JVM,而对于未来的展望,我个人不太喜欢憧憬未来,因为我觉得立足脚下会让我感到充实!
下面几条就是我的反思或者说自己在学习中形成的一些想法,与诸君共勉,希望大家能够提一些学习上面的建议以及纠正我得错误观点:
1.书读百遍,其义自现
我看书就是这样,看书看不懂很正常,技术书籍不是武侠书籍,看不懂没什么好奇怪的!我
遇到看不懂的地方,就不会在那儿阻塞太久,实在看不懂我就咕噜吞下去,等到看完这一章或者这一节再回过头来学习,反复的读!我的学习就是一个往返的曲线,不时的会把前面所学过的复习一遍!我觉得就是读过好几遍的书,就像我现在再读《Thinking in Java》,每次都有新的收获,虽然收获一次比一次小吧,但是却不是可以抹杀的!这可能就是所谓的温故而知新吧!
2.勿在浮沙筑高台
这里引用了候老师在《深入浅出MFC》中的一句话,其实贯穿这篇文章我无时无刻不在强调基础的重要性,而且平时这个观念也是deeply rooted in my mind
3.天下大事,必作于细
又引用了候老师的话,学习技术就是要从细处下功夫!看一本书要理解透彻,其实也要分什么书籍了,原理性的书籍那是来不得半点马虎,至于很多应用类书籍,实例类书籍,看过知道在哪儿找就行了!
4.业精于勤荒于嬉,行成于思毁于随
这和本文的题目所要表达的思想是一样的,学习没有捷径,只有刻苦努力不要放弃才能成功!不管前面的路如何,自己只要坚持走,等登上顶峰了,回头一看,自己走过的路就是成功路!不论多聪明,或者有些许的愚顿,都请记住“骐骥一跃,不能十步;驽马十驾,功在不舍”。
5.不积跬步,无以至千里;不积小流,无以成江海
要达到高手的境界,非一朝一日之功,平时要多看,多积累,博闻强识,厚积而薄发才是正道!很多积累就在每天那么几分钟,半小时中。很多同学,我以前也是这样,比如看电影看了一晚上,以前我就想反正都浪费了几个小时了,也就不去自习了,剩下的时间也就再上上网听听音乐什么的就过了!现在就是还剩10分钟我也要去自习室(不过这有一个前提条件,^_^,偶们学校小,宿舍到图书馆很近),因为这几分钟浪费也是浪费了,为何不用这几分钟看看书呢?多看书总是有帮助的!
6.武学之道贵在精而不在多
《天龙八步》中的一句话,其实都是一个道理,打个比方说,鸠摩智对于武学所学甚博,结果和乔峰比呢,乔峰就一个降龙十八掌,可以练到天下无敌!有些同学,今天想学Java,明天想学C++,过了几天又想学习C#,不过到头来还是竹篮打水!其实只要有一样你学精通了(要能称的上是精通,弹何容易啊!),其他的很快就能触类旁通了!
7.闻道有先后,术业有专攻
技术上强人太多了,不过不要妄自菲薄。很多同学,包括我自己在学习过程中都有这种妄自菲薄的感觉,真强啊,我怎么什么都不会!其实没关系,慢慢来,对自己说,汝所到之处,吾亦可至!!
8.天行健,君子以自强不息;地势坤,君子以厚德载物
一句话,一条鞭子,鞭策自己前进!
PS:很久以来就想写这样一篇文章,总结自己一年以来的学习,好好看看一年自己走过的道路,也算是封存自己03年的记忆好让以后有所回忆!虽然元旦过后就开始写,但其中写写停停直到今天才把这篇文章完成,如释重负!我个人不善于写作,所以所谓文章也只是心中想到什么也就附之纸上,可能错字别字误用的成语不在少数,之所以发到CSDN也是为了那句话:发表是最好的记忆!
汪瑜佯
完笔于蜀中某地
2004年元月15日