JAVA程序员的成长之路
- 格式:pdf
- 大小:337.10 KB
- 文档页数:3
J ava目前是最流行的语言之一,是很多公司和程序员喜爱的一门程序语言.而且,Java 的入门比C++相对来说要简单一些,所以有很大一部分程序员都选择Java作为自己的开发语言.我也是其中之一,就是因为觉得学C++太难,当初在学校学了将近一个学期的C++,啥进步都没有,哈哈,天资太差,所以才选择自学Java(当时学校并没有开设Java的课程),才走上了程序开发这条路.
Java虽然入门要容易,然而要精通它,要成为专家却很难.主要原因是Java所涉及的技术面比较宽,人的精力总是有限的.有些Java方面的技术是必须要要掌握的,钻研得越深入越好,比如多线程技术.
1.基础阶段
基础阶段,可能需要经历1-2年吧.这个时段,应该多写一些基础的小程序(自己动手写的越多越好).计算机是一门实践性很强的学科,自己动手的东西,记忆非常深刻,效果要胜过读好多书.当然,学Java基础的时候,书籍的选择也非常重要,好的书籍事半功倍,能让你打个非常好的基础.而差的书籍,很容易将你带入歧途,多走很多弯路.书籍不在多,而在乎读得精(有些书,你读十遍都不为过).我记得我学Java的第一本书是
<Thinking in Java>的中文版,网上有很多人都建议不要把这本书作为第一本的入门教程来看,太难.我却想在此极力推荐它,这本书确实是本经典之作.而且书中确实讲的也是Java中的一些基础技术,没有什么太难的东西,只不过比较厚,学习周期比较长,所以很多人中途会选择放弃.其实,这本书是一本难得的入门教程,对Java一些基础的东西,讲得很全,而且也很清晰,更重要的是,这本书能让你养成很多好的编程习惯,例子也很多.建议你把大部分的例子自己去实现一遍.我的亲身经历,我记得当时认真的看了2遍,花了大概7个月的时间,不过真的有很好的效果.另外一个教程,就是<Java核心技术>卷一,卷二的话可以不必要买.卷一看完,自己再钻研一下,就已经能达到卷二的高度了:).到那时,你就会觉得看卷二没啥意思,感觉浪费钱了.还有一个,就是张孝祥的Java视频,看视频有个好处,就是比看书的记忆要深刻,还有很多你可以跟着视频的演示同步操作.张孝祥的Java视频对初学者来说,确实很有作用.总结起来:看这些资料的时候,一定要多写例子,写的越多越好!
2.中级阶段
中级阶段,是一个更漫长的时期,能否突破此阶段,跟个人的努力和天资有着很大的关系.你不得不承认,同样一门新技术,有些人一个月领悟到的东西,比你一年的都多.这就是天资,程序员是一个需要天才的工作.我想,很多人听说李一男吧,此君就是这样的人物,三个月的时间就能解决好大一帮人几年解决不了的问题,给华为某部门带来了很多的收益.哦,这是题外话了,与此篇的主题无关,只是本人偶尔的感慨而已:).这个阶段,就需要研究很多专题性的东西了,比如:IO的实现原理,多线程和Java的线程模型,网络编程,swing,RMI,reflect,EJB,JDBC等等很多很多的专题技术,钻研得越深越好.为了更好的提高,研究的更深入,你需要经常到网络上搜索资料,这个时候往往一本书起不来很大的作用.选一个JDK版本吧,目前建议选用1.6,多多研究它,尤其是源
代码(尽量!就是尽自己最大的努力,虽然研究透是不可能滴).比如
说:util,collection,io,nio,concurrent等等包.可能有人会反对我说,不是有API文档吗,为什么还要研究这么多的源代码?错了,有API文档,你仅仅只是知道怎么用而已,而认真仔细的研读这些大牛的源码,你就会深入更高的一个阶层,自己的编码,设计都会有很大的提高.如果有能力和精力,我建议你把JDK的每一行代码都熟悉一遍,绝对只有好处,没有坏处!而且你会有些意外的收获,比如,当你仔细地读完concurrent包的时候(不多,好像总共是86个类吧),你就会对Doug Lea佩服得五体投地.这个时候最忌碰到难题就去寻找帮助,去网上找答案!先把自己的脑袋想破吧,或者等你的老板拿着砍刀冲过来要把你杀了,再去寻求帮助吧.对于专题的学习,英文原版的阅读是非常必要的,看的越多越好,多上上IBM的developer,SUN的网站吧,当然Javaeye也很不错:),有很多大牛,呵呵.
这个时候,你应该建立自己的代码库了,你应该自己去研究很多有意思的东西了.从一个200多M的文件中寻找一个字段,最坏情况(在文件的末尾咯)也只需要1秒左右的时间,你知道吗?这个阶段,有很多很多类似的有趣的东西可以供你去研究,你需要更多地关注性能,规范性,多解决一些疑难问题.需要学会所有的调试技术,运用各种性能工具,还有JDK附带的很多工具,这些你都要熟练得跟屠夫操刀一样.也可以看看
<Effective Java>,这本书总结的也不错,对写高效稳定的Java程序有些帮助.也可以看看模式方面的东西,但是我建议模式不要滥用,非得要用的时候才用,模式往往会把问题搞复杂:).总结起来:这个阶段是一个由点延伸到面的过程,经过不断的学习,演变成全面的深入!Java技术中你没什么盲点了,还能解决很多性能问题和疑难问题,你就成了一个合格的程序员了!:)[要想成为优秀程序员,还得对数据库和操作系统很精通.]
3.高级阶段
高级阶段,我就不敢妄言了.呵呵,我感觉自己也是处于中级阶段吧.也是根据自己的一些经验,谈谈自己的理解吧:
这个阶段,需要研究各种框
架,Spring,struts,Junit,Hibernate,iBatis,Jboss,Tomcat,snmp4j等等,我觉得这个时候,只要是用Java实现的经典框架,你都可以去研究.------在此申明一下,我的意思不是说会用.光会用其实是远远不够的,你可以选择自己喜欢钻研的框架,去好好研究一下,兴趣是最好的老师嘛.
建议开始的时候,研究Junit和Struts吧,小一点,里面都采用了很多的模式,呵呵,可以熟悉一下,尽量想想人家为什么这么做.我建议主要的精力可以花在spring和jboss 上,尤其是jboss,经典中的经典,设计,性能,多线程,资源管理等等,你从中可以学到的东西简直是太多了.而且它还有一本写得很好的参考书,叫<Jboss管理与开发核心技术>,英文方面的资料也是非常的多.在工作中如果有机会参与架构的设计,业务问题的讨论,一定想方设法杀进去!这对自己的设计能力,以及对设计如何运用在业务上有很大的帮助.毕竟,程序都是为了更好地实现用户的业务的.这个时候,需要更多看看软件工
程和UML方面的资料,或者自己主持一个项目玩玩,不一定非得出去拉项目赚钱(能赚钱当然更好),不管成功或失败,都是很宝贵的经验,都能提高很多!。