第一篇:怎样成长为以一个真正的java程序员
很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。
那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配臵中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。
好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:
CSDN论坛http:/// 那里Java资料比较全;java.com.cn http://.cn/ 看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;
IBM的开发者网http:// IBM永远的蓝色巨人;
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!
还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,最近《金装四大才子》看多
了)。学Java必读的两个开源程序就是Jive和Pet Store.。Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网http:/// 去下载,或到同济技术论坛的服务器上ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得我也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是我泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体“技术”,它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。关于设计模式的资料,还是向大家推荐banq的网http:///,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。
做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的来了。。。
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
下面介绍两个好的开源项目网站:
湖北省软件公共开发平http://gro.clinux.org/
共创联http://cosoft.org.cn/
哇,好高兴哦,我终于成为高手了!非也,非也。古人云:“识时务者为俊杰”。你知道计算机界现在的发展形势吗?你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?你知道计算机技术将向何处发展吗?其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。很有可能上游企业的系统是用Dephi编的,而下游企业的系统是用Java编的。你说你是Java高手,大家
都看者你怎么做呢。所以啊,你还得学习新技术,如Web服务,而且你Dephi也要懂一点吧(Dephi6现在已经提供Web服务的控件了)。你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!
因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧:
中国UDDI技术联http:///developerWorks/cn/xml/index.shtml?csdn IBM可是Web服务的力推者
呜…你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的……
如上是在网上考下来的,但个人认为SCJP证书也好,程序员等级证书也好,不要太看重它;关键是你手中有没有技术,能不能拿出活来。我面试时候都是以证书为参考,主要衡量你的手段还是提问技术性问题以及一些编程方面的基础问题。建议不要把证书看的太重。
第二篇:怎样成长为以一个真正的java程序员
很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。
那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配臵中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。
好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:
CSDN论坛http://?csdn IBM可是Web服务的力推者 呜…你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的……
如上是在网上考下来的,但个人认为SCJP证书也好,程序员等级证书也好,不要太看重它;关键是你手中有没有技术,能不能拿出活来。我面试时候都是以证书为参考,主要衡量你的手段还是提问技术性问题以及一些编程方面的基础问题。建议不要把证书看的太重。
第三篇:【免费下载】一个80后Java程序员的成长道路
来源于:http://dayang2001911.javaeye.com/blog/
一个80后Java程序员的道路
写给想了解部分程序员职业发展生涯的人看,写给准备跳槽的程序员们看,写给有过和我类似经历的同行们看,写给自己看,写给我的女朋友看,写给其他行业中也想去努力拼搏的人看。
一、我的情况简介
我是一名有3年多工作经验的程序员,或者说是高级软件工程师。
本科曾经就读于西安电子科技大学,学过数学专业,那时候国家建立了36所示范性的软件学院,我一眼热就改专业、转学院,学了软件工程。这个教育背景写到简历上应该还是不错的,不过我在软件学院其实没怎么学软件,所以找工作的时候自己心里都没底。
没好好学软件的原因是那时候觉得软件也不是我喜欢的,又打算考个经济学的研究生,想以后搞企业。最终研究生也没能考上,又要养活自己,所以只好还是以软件开发为生,在西安一家国企性质的IT公司工作,公司主要给银行做,公司老总也是原来银行的一些小领导。
就这样,我在这个公司从毕业一直干了3年,从一开始我没什么基础,java都要自己现学(学校里是开这门课了的,毕设也用java做的),到三年之后我跳槽离开,可以说积累了一些开发经验。从工资级别上看,离开时也是高级软件工程师里的最高级了。
套用一句郭德纲的经典台词:“我很欣慰”。
三年里做过5,6个项目,还有1,2个自己做的小项目,从一开始的简单的修改一些变量、常量,用ireport一点一点画一些表格,到用cognos开发报表,做一些BI项目的前端展示,到独立开发模块,再到最后和我的小师父一块研究jbpm开发工作流的业务项目。顺便提一下我的小师父,也是我的同事,只因为他比我还小,但技术上很牛,又带过我,所以简称小师父了。
回想三年,虽没有像很多更牛、更成功的程序员们的经历辉煌,但从我自己来看,我真的“很欣慰”。
因为,我知道,我一点一点磨到这一步中间的代价是什么,是我多少个夜晚没睡好觉,去一点一点抠代码该怎么写换来的。三年了,我真真正正睡过几个舒心的觉呢?
但我又觉得我可能不适合这个行业,我没有Robbin或者我的小师父那么牛的技术。别人我不知道,单从我小师父干活时表现出的那种素质,技术,我就总觉得我真是太菜了,而且我还耗费那么多时间不睡觉去一点一点学,还花银子去买各种技术书籍,这些我小师父是很少去做的。我发现我们的“投入产出比”实在过于悬殊。
回过头想一下,我觉着我当时选择转到软件工程专业也挺合适我的,因为我原先是学的数学,是理科,转到软件工程,算是工科,从理科转到工科这才是我转专业的本质,我认为虽然我在开发上技术还不够精湛,但是我要是在理科可能混的更惨。我喜欢工科,我喜欢可以时不时的出些小成果的工作。
所以说,做到现在我也喜欢上了这个工作,这个行当,而且我希望自己技艺能更精湛,或者说编码能更快点、质量能更高点,并且我庆幸我在第一份工作经历中能遇到技术高手,又能亲自带我、教我,更庆幸的是我通过第一份工作经历使我对软件开发有了更多的兴趣,让我对自己的定位不模糊。虽然我现在不如这些技术牛人,但是我会坚持,借用一句名言“I came,I saw,I conquer”。我相信有那么一天,我会做的很好,我不会担心自己在工作时间里憋不出那几行代码,我不会为了消除这种担心而用宝贵的睡眠时间去提前开始思考、编码,我不会不敢给项目经理报我的进度。
我以为经过这三年的经历我能得到很多很多的回报,但是当我从这个公司辞职后去找第二家公司的时候,我发现我能得到的回报是IT界的一种普遍回报的平均数。
二、第一次跳槽
从西安那家公司离职后,我来到北京,开始我的第一次跳槽经历,三个月找工作的经历,让我知道了我到底值多少钱,更让我知道了什么是竞争的残酷性、理智性。
其实我找到第一份工作的过程很简单,由于原来部门的经理是我的校友,可能出于对学校的一种回报,答应给软件学院一些招聘名额,当时什么都不会的我就去试了试,又正巧面试我的副经理出差,就由经理问了问一些笔试中的问题,和一些Java方面的问题,我记得答的不怎么样,不过可能也没完全答错,也就过关了。后来想想,经理主要是做C的开发,那个副经理才是Java出身,如果真让副经理面了,恐怕结果也不会这么顺利。
也就是说,我第一份工作得来的还是很容易的,没有经过那么多次的选择。
也许正是第一份工作得来的相对容易,第二次找工作的经历就被上帝公平地安排一下,参加应聘的次数变多了,找工作的时间也延长了,用了3个月才定了下来。
人未到北京,网上的简历已经投了很多,到了北京没几天就有招聘的电话打来。
三、人力外派的招聘
1.人力外派公司的职位
是一家做人力外派的公司给我打来的电话。由于我有银行业软件开发的背景,而他们也正有某国有银行的项目需要,所以给我打了电话。到北京之前我就想,不能定的太快,要多比较一下,卖个好价钱。出于比较的心理,我答应到公司去面试。
公司就在上地那个有着亚洲第一厅堂的大厦里,来之前由于住的地方不能上网,也没好好查这个公司的基本情况,并不知道是做人力派遣的,到了之后,公司的总监很哥们似的把我拉到角落,给我介绍大致的情况。
“公司目前有两个职位,一个是给某银行做报表方面的项目,算是高级软工,另一个是给国家某总局做项目,并且是跟另一家公司合作,算是系统分析师级别”。一听这个情况,我首先反应,希望能更上一层楼,做做系统分析师,所以就说想做后者。再说到待遇,银行那个项目给到税前6K,某总局的那个项目可以给到7K。
2.期望待遇与实际待遇有差距
我以为凭在西安工作了三年,而且又被原单位非常认可的程度(包括获得优秀员工的奖励,工资级别是高级软工的最高级这两点),我认为我在北京应该得到至少至少7K的水平。而这个系统分析师的职位也才给到7K,使我相当不爽。但是我也知道,不争取是得不到好东西的,我就给那总监说,我的理想待遇是8K,总监说不太可能。
虽然价钱没谈拢,但是我还是想试试自己的面试能力,就同意和合作公司的技术方面的负责人去面试。
我原本以为就自己去面试,中途又加了一个,听总监说有近10年的工作经验了,能力相当强,我是一个尊重经验的人,因此对这位大哥也是抱着十分尊崇的心情的。
我、10年经验的大哥以及外派公司的总监,我们三人就到了某总局的项目开发现场,与合作公司的技术负责人见面。
3.第一次跳槽之第一次面试
来之前,我大致准备了一下,主要是想了想该怎么介绍自己的项目经历什么的。由于我最后一个项目的经历算是集大成之作,而且也因这个项目得到了“优秀员工”的荣誉,所以我着重准备了最后一个项目,有关工作流的项目。
面试主要也是问经历。合作公司的负责人拿着我的简历看,我给他在来个同期声,把我的经历介绍一下,其实这个介绍和简历上的也差不多。
我介绍自己:在某某年几月到某某年几月,我参与某信托投资公司的综合业务系统的开发,主要利用了
JBPM
工作流引擎实现该系统的流程部分。我的主要职责是对JBPM进行了技术攻关、分配一些模块、开发公用接口等工作。
负责人问了我如何对JBPM进行的技术攻关的问题。其实当时有我小师父在,他基本已经弄清了JBPM的使用了,因此我的主要任务是把这个工作流引擎运用在项目中,比如做出一个实际的例子,但是也有一部分对JBPM学习的任务。我就大致说了一下对JBPM技术攻关的过程,比如看了JBPM提供的例子、技术文档,而且我们部门还邀请了上海一家公司给我们做了几次咨询、培训,把他们运用JBPM的项目拿出来给我们进行了讲解。为了体现出我的价值,我着重强调了自己在这个项目中封装了一些流程的接口,用于给项目组成员使用,使他们不必对JBPM更深入了解,降低了开发难度。
之后,负责人又问了问以前我做过的项目,也没什么太特别的问题,这里就不再赘述了。
轮到10年经验大哥面试了,这位老兄瘦瘦的,戴副眼镜,歪歪一坐,一副谁也不吊的样子。负责人也像问我似的,让他自己说说自己的经历,我一听我都快坐不住了。这位老兄经验丰富,而且听他说自己非常喜欢玩各种新技术,很喜欢自己鼓弄,由于这个项目中可能用到有关搜索方面的东西,他也说自己也用过搜索引擎lucense,其实这个我也见过,可惜从没碰过,当时很后悔,至少也应该了解了解啊,这样至少有的说嘛。
负责人又问了他有没有做过项目经理,他说也做过,不过还是喜欢做技术,所以也没做多久。给我的感觉就是,技术很牛,很有经验!
我真是都不想再待在那个面试的房间里了,明摆着我就是一个陪衬。不过,我还是想,既来之则安之,面就面到最后。
合作公司的技术负责人面试完毕了,合作公司的项目经理也过来面试我们。项目经理问了我们一些个问题,我记得的一个问题是让我说说我的优缺点。
4.我的缺点
其实在离开上一家公司之前,技术总监曾经找我最后谈话,了解我离职后的打算以及对项目后期的建议,谈完后,我特意问了技术总监一个问题,我问他认为我的缺点有哪些,我希望通过领导的眼睛看到我不能看到的问题。
由于我们原先的公司规模不大,软件开发部总共也就100人左右,而且我当时所在的信托项目由于问题很多,技术总监直接进入我们项目组,指导我们的设计,并对我们实现的功能进行把关,最紧张的时候项目组全体成员
14,5个人封闭开发,这也包括技术总监,因此技术总监对我们项目组每个人的情况都非常了解。
在我眼中,技术总监是一个很聪明,看问题能看到本质的人,因此我信他说的。
作为领导,作为有着丰富职场经验的老手,他首先评价我有很多不错的地方,比如我能够从大局看待项目,这主要是指当时我们项目极度缺乏详细设计文档,而缺乏设计文档在开发初期给项目组造成了很多开发上的困难,开发人员不能又开发,又琢磨要实现什么。我把这个问题反馈给了技术总监,并且详细的列出了需要哪些功能的详细设计文档。
负责写详设的是我另一位师傅,这位同事在我进入第一个项目组的时候给了我很大帮助,这次我没有给我这位师傅留太多面子,直接把问题反应给了技术总监,估计也造成了我和这位师傅之间的一些隔阂。
接着技术总监看我对自己缺点的问题还是比较认真的,就继续说了下去。他说其实我在项目中也暴露出一些问题,可能也不算是缺点等等的,可见技术总监的说话还是滴水不漏的,一点也不会把事情搞得让我很难堪。
他认为我在项目紧张开发的那段时间里没能安排好自己的工作,当时分配给了我几项工作,包括开发公用模块、给其他开发人员分配任务以及开发一些自己的模块等等,在这些工作开展的时候,我没能把精力集中在对流程核心接口的开发中,有些任务可以分给其他人来做的没有分配,导致代码质量不是很高、效率底下等情况。技术总监也说,这也有他们分配任务没考虑过细的原因等等。
我在听完他说我的这个缺点之后,我的心里其实没有太服气,但也说不出到底是什么不服,可能有这样一个想法,为什么你们当时不给我指正呢?为什么项目经理有那么多问题,技术总监都给他及时的批评指正,而我却得不到领导的这种指导呢?我不服气的是,我认为技术总监偏袒项目经理,说难听点就是有帮派习气。
虽然我对技术总监有不满的情绪,但是对他做事的风格,实事求是分析问题的方法还是非常佩服,所以对技术总监说的我的缺点很留心,离职后,我立马琢磨他所说的意思。
后来我在吸收了技术总监意见的基础上,总结出了我的缺点就是,有时候不能安排好自己工作的优先级。针对这样的问题,我自己想了想解决方法,应该先把公用的东西优先做出来,涉及到别人的东西也要先做,可以分配给别人做的应该分出去,自己只做精力允许的、最重要的那部分。
我到现在都对我当时向技术总监征求个人缺点的看法很得意,技术总监看问题就是不一样,如果让我自己总结自己的缺点,怎么也不可能想到自己在安排自己的工作上出问题。而且经过提炼,我还可以把自己的缺点放到面试中去说。
5.出人意料的结果
我把自己的缺点讲给合作公司的项目经理,面试又进行了一会就结束了,人力公司的总监和合作公司的负责人出去商量最终结果。
在这空当,我主动找10年经验大哥聊了聊,我表达了我对他技术上、经验上的钦佩,而且希望以后能交流交流的意愿,我向他要了手机号码。没想到这位老兄说“你要我电话干嘛,没必要给你电话”,让我很诧异,我心说了,还有这么刺头的人,他又说“最近装修搞得他头都晕了,别再给我打电话了“之类的,简直让我觉得很尴尬,一下子对他的敬意全无。
人力公司总监回来了,结果很明显。他用车把我俩往回送,对那老兄说了一些什么,那老兄到了就下了,就剩总监和我了,他问我说“你猜录取谁了?”,我很平静的告诉他,肯定是那位有着10年工作经验的大哥无疑了。
但是,结果出乎我的意料,总监说录取我了。
我很意外,总监跟我解释道,主要看中我的团队意识,虽然那位老兄有10年经验,但是不易合作,即使技术强也不合适,因此决定要我。
听到这个结果,自己还是比较满意的,毕竟是首战告捷了,虽然我是不会选择去这家人力外派公司的,但是对自己能够获得这个工作机会还是很高兴的。
经过第一家公司的面试,虽然是人力外派类的公司的面试,但是由于成功过关了,所以自己的信心增强了。
四、兵败外企
1.T公司
其实在来北京之前,自己心里就已经有非常向往的公司了,也就是外企T公司。
知道T公司是因为我原来的同事强子曾经应聘过T的西安分公司,而且这个公司在软件行业内的口碑非常好,在IT红黑榜网站上查这个公司的评价,基本都是好评,不像其他公司似的,某某公司拖欠工资、某某公司领导很坏之类的负面评价。这些都与T公司绝缘。
最让我对T公司产生兴趣的还是他们的开发方式。
2.敏捷开发
T
公司在开发上很有特色,公司采用敏捷开发方式,我理解敏捷开发是一种开发方法论,为了能成为T公司的员工,我买了本《敏捷开发》的影印版开始看。
敏捷开发大致就是说以实际的软件、代码作为和客户交流需求的载体,而不是用文档,欢迎变化而不是遵循计划之类的。
在来到北京不久,一家专业的编程方面的杂志社联合T公司举行一年一度的敏捷中国大会,我到了北京的时候已经错过了报名参会的时间,不过好在我跟杂志社联系了一下,补上了报名。
会议组织得很专业,包括宣传材料、会议胸牌、茶歇等都组织的非常好。会议由许多演讲组成,值得一提的是,大会的主题演讲的演讲者也是敏捷开发的提出者之一,同时也是T公司的科学家。
我参会的目的很明确,想通过敏捷开发大会进一步了解敏捷开发,另一个就是想多和T公司的员工们交流一下,取得应聘T公司的经验。
实际上,T公司主办的这个敏捷开发大会的目的也是和我的目的类似,也是要宣传敏捷开发的理念,宣传T公司,而且提倡参会人员和T公司的员工自由交流。
演讲的很多都是老外,虽然我极力认真去听他们讲的是什么,但是我英语还没达到能直接听懂他们在讲什么。
虽然参加了这个会的收获一般,但是由于和T公司能走的更近,所以觉得也是做应聘准备的一个重要步骤,我想象在应聘的时候可以给他们说我参加了这个会议,从一个侧面也能表明我对敏捷开发的兴趣。3.电话面试
开过这个敏捷大会后,我就开始着手准备因为看重,所以慎重。
我到网上搜关于
T
公司的面试、笔试了。
T
公司的应聘信息,包括笔试、面试的题目等等,结果不多。倒是碰到一个做T公司职位的猎头,就加了MSN,我说明了我的情况,这个女猎头主要做高端的,也就是5年以上工作经验的。我追着问她T公司招聘的流程,甚至题目。女猎头心地很善良,发给我一份文档,写了T公司面试的一些情况。
T公司是外企,外企面试一般都是先进行一次电话面试,电话面试可以使人力了解应聘者的口语水平,电话面试通过后再真正面试。女猎头的文档列出了T公司电话面试的一般问题,比如有个人介绍、曾经遇到的一些困难什么的。看上去问题都不太难,我用英文把教育经历、三年的工作经历、项目中承担的责任、收获都写成了稿子,并熟记于心。
投简历后的第2,3天进行了电话面试,时间定的是下午4:00,到了3:50的时候我还没有不一样的感受,可是当时间到了3:55的时候,我发现自己心跳加速了,到了4:00的时候简直不能平静了。
好在T公司是4:00多给我打来的电话,我尽力地平息着我的紧张。首先人力要求我做一个英语的个人介绍,这个不难,我已经有了稿子,只要照着念就OK了,不过在念的过程中我还是有意识的放慢速度,稍微打些磕巴,免得被看穿。
个人介绍很快念完了,人力开始提问了,“what is your challenge in your current job?”,其实我已经听懂了她所问的,就是说遇到过什么挑战,但是由于紧张,突然听不懂“current”这个单词,问题说完了我就在不停的回想current到底是什么意思。我估计因为我已经离职了,当前并没工作,而她问在current
job(当前工作)中遇到什么挑战就导致我有点神智不清了,不过很快我反应了过来,从稿子中找到遇到的困难那部分,就开始往上套。
首先我说了个技术上的挑战,如何在信托项目中使用JBPM工作流引擎,以及如何把这个工作流引擎结合具体业务在项目中使用。说完,人力继续问我如何解决的,我就把技术总监给我们指明的要把“业务和流程分开”的解决思路说了。之后人力又继续追问,还有没有其他方面的挑战。我都被问得快有点撑不住了,想了想就把自己当时没能安排好自己工作优先级的这个缺点改造了一下,说了说。但是由于这部分没能预先准备,边想边说,说得特别磕巴,有的词发音都没发准。
说到半截,可能人力已经知道我的外语水平了,就不要我再用英语折磨她了,让我可以说中文了,我就把没能用英语表达清楚的地方用中文重新说了一下。
时间已经过去了15分钟,最后人力让我提问,为了给人力留下深刻印象,我问了5,6个问题,有关于敏捷开发在T公司的开发效果的,有对敏捷开发能否在大型项目中应用的,有关于T公司是否做国内项目的,反正我尽可能的想了很多问题,体现自己对他们公司的兴趣。
这个电话面试时间总共有20分钟,完后我的感觉并不太差,不过我也明确地知道了我的英语口语水平实在不怎么样,但是,我总以为上天会照顾我,至少让我能过了电话面试这第一关,哪怕让我进入下一关再出局。
4.晴天霹雳
想到这里,我心情还不错地和女朋友一块去逛超市买东西,从超市高高兴兴买了东西回来后,我习惯性的看了一下邮箱,发现了T公司的一封信。信的内容让我失落到谷底:
“After careful consideration, we are unable to match your skills and background with any of our current open positions.”
晴天霹雳!而且原以为要几天才会有结果,一看邮件到达的时间就是我电话面试后的15分钟后,我觉着他们太轻率了!但也只能接受这个结果。
我反复琢磨着“技能和背景与现有职位不匹配”一句的含义,最终,我理解为一方面,我原先的工作单位规模不大,另一方面,我原先的开发方式也和他们的不同,我虽然看了敏捷开发的书,但是从没实践过,更别说口语水平了,真是彻底失败。
那一晚我想丢了魂似的,可不么,理想实现不了,真是很痛苦。不过,我总归还得继续找工作,这家最理想的不行那就换点别的吧,退而求其次,还是希望能进入到外企工作,不但拿钱多,而且学到的东西也多。
从网上看到有路X社北京研发中心的招聘启事,我给他们也投了,没多久,来了个电话面试,让我说了说经历,用中文问了些诸如HashMap和HashTable的区别之类的问题,过后也没有了音信。
后来,通过猎头我还接到了
S公司的电话面试,S公司是发明了J语言的公司,电话面试的内容也大同小异,我用我磕磕巴巴的英语应付了这些电话面试。
再后来,通过其他猎头还给一家韩国公司投了简历,囧的是,连猎头这关都没过。
5.认识自我
这几家外企的应聘,我基本都在电话面试就结束了自己前进的步伐,几次失败让我非常现实地认识了我当前的水平、经验、技能、背景这几个方面,与外企要求的条件相比差距还是相当大的。口语不过关,工作过的单位也不是规模大的公司,做过的项目也不是非常大,这些都导致了我和我最向往的公司以及那些高薪的外企的远离。
清楚了自己的水平,自己也认为目前应聘外企是不适合的。而现在,我要做的是改变求职的方向,不能把重心都放在外企上,所以最终我决定以应聘国内的大型公司为主。这么做是希望自己可以从大公司中学到小公司所欠缺的更加规范化的东西。
五、转变方向有代价
1.做ERP的大公司K 继续在人才网上搜索大公司,联系到了一家,是在ERP领域做得很大的K公司。K公司的笔试,试题分了几类,量很大,题目应该说不算难,包括JAVA的一些基础知识、写SQL查询语句等等。还有要写一个单例类的题,我没想起来怎么定义的,忙发短信找同事求援,幸亏小师父找了一个,让我少丢10分。
上午笔试,下午面试。面试时间比较长,首先面试官先介绍了一下K公司,K公司是做ERP产品的大型公司云云。我还是介绍我做过的项目,尤其是对工作流技术的研究以及在项目中的运用这方面着重多讲,并引起和面试官的一些讨论。气氛还比较融洽,席间我投瞄到我上午的笔试卷子,好像是60多分。面试到了最后,面试官认为我所讲的经历都是项目经历,而K公司是以做产品为主,这其实是一个差别。
面试过后,回去等待结果,过了几日,K公司人力约我和北方区的总经理见面,我也如约而至,其实主要是总经理再和我聊聊期望薪水,再了解一下我过去的经历。关于期望薪水,我给K公司报的是9K,但是我也说可以考虑减少到8K,其实我心里算计的怎么也应该比7K要多。
K公司规模很大,招聘流程也很长,北京公司这边负责笔试面试等工作,最后还要把我的资料送到总公司那边,总公司再进行一下最后把关,我也被告知我需要等待1周左右的时间来等结果。
在这一周里,正好又有家做咨询、技术解决方案的公司找到我。
2.挣开源的钱
姑且给这家公司起名叫P公司好了,公司的发展方向比较独特,利用开源软件给做软件开发的公司提供咨询、技术支持的服务赚钱。
P公司代理了从操作系统到数据库以及web服务器等各方面的开源软件,通过卖许可证、技术咨询等方式挣软件开发商的钱。
可能正是因为我在简历中有“开源”的关键字,又在项目中用过JBPM,所以得到了P公司的面试机会。公司有位副总,人称马总,曾经在美国带过项目,而且巧的是也用JBPM开发过项目,还拿到了一个美国的大奖,9年后回到了祖国。马总相信开源,也很会玩开源的东西。3.与马总的上海之行
和马总交流并且能得到他的一些指导,对我而言也是种收获。在我眼中一些技术高手、大牛们总是高高在上,很难沟通。
马总却很具有亲和力。P公司在上海召开了一个给软件开发商宣讲开源解决方案的大会,到了快开会的时间还有很多人没到场,为了不让已经到的人等的心急,马总上台预热,他称之为“和大家聊聊天”,他的“聊天”方式很放松,做几个小调查,比如问谁知道“开源”,还推出了有奖问答,凡是举手回答问题的还能得奖,使得会场气氛很热烈。
我也跟着去了上海,和马总一块给一家上海的软件公司将开源报表的解决方案,我侧重讲解iReport的使用。由于JasperSoft出了一个管理报表的引擎JasperServer,用于管理报表,权限等信息。马总让我对这方面也进行了解,尤其是在机子上配置好这个软件用于讲解,整了一晚上也没整出来,马总用候机的时间给配了出来。
那天正好K公司给我打电话,商量薪酬的事情,他们给我开了一个非常吃惊的价钱,开的是6K,而我期望能在9K,听到这个价钱我很难接受,因此直接就说这个价格没法接受之类的话,后来想想有点后悔。
凭着用过iReport,做报表的过程讲解的还算到位,但是对如何使用参数、变量这些稍微复杂的地方,我就没太多讲,能看出来有些让马总失望。
在结束上海之行的时候,马总找了个机会跟我谈了一下,我记住了他的一句话,说“你还要再上三个台阶才行”,这句话我觉着是对我的一个十分中肯的评价,虽然工作三年了,也做过一些项目,似乎有了些积累,但是并没在技术上特别精通,而且在沟通方面也没能锻炼的很好。我认为这种技术支持、咨询类的公司需要既懂技术又能讲解、还能懂架构的技术支持人员。4.从开发转变为咨询?我准备好了吗?
我对P公司有好感,主要是两个方面,一个是开源,另一个就是马总,我觉着我如果选择开源作为事业的方向将能引导我走向成功,再加上有马总这样的经验丰富的领导指导、培养我,我觉着我将会有很不错的前途。
但我认为自己还是一名水平不太高的软件开发工程师,还需要用几年时间向架构师、项目经理的方向奋斗才行,而做咨询、技术支持是属于需要依靠很丰富的经验才能做好一种工作,虽然我能快速学习,但还是会缺乏在项目中的实践,很难给客户以很好的支持,最终可能也会让马总失望。
从上海回来后,我和人力谈了我的想法,我说自己还是应该在开发上面多做一些工作,目前的工作可能不适合,把P公司的应聘结束掉了。
5.从做项目转变为做产品,也要付出点代价。
我又赶紧和K公司联系,K公司人力抓住了K公司是做产品的而我是做项目出身的这一差别作为6K待遇的理由,又说让我权衡是进入一个大型的平台以后不断发展,还是为了眼前的待遇而放弃进入大公司。我更看重K公司这样的大发展平台,但是还是希望人力能再提高一些待遇,毕竟我这是在北京工作,刨去税真的感觉“回到了解放前”。
人力让我等几天和总公司协调,最后等来的结果就是,总部不批准我的应聘申请。我很难过,因为我找工作已经从5月20号一直找到了7月20多号了,K公司又是大公司,我后悔从一开始就把不满意薪水的话说给了人力,又忙和人力又沟通看有没有什么补救,因为毕竟北京公司这边认为我还是不错的,可是结果已经出来了,也无法改变了。
如果应聘上了,那种薪酬,也就是从做项目转变为做产品要付出的一种代价吧。6.从做银行业务的软件开发转换为给某家居公司做系统?
这种可以转变我工作方向的机会很多。有一家家居公司B要上ERP系统,用的SAP的ERP,但是有些功能还是要自己开发,因此他们想招一些高级软件工程师。
面试中谈了谈项目经验,走走过场,基本就搞定了。待遇是税前7K。面试完了,我也就决定了,肯定不去。
我想以我目前三年的开发经验,到企业中做信息化的工作,要做到技术总监或者CIO的话肯定也是很难的。因为很多人都是在有了很丰富的软件实施经验后,才跳到非软件公司做企业自身的信息化方面的工作的,我自然还不合适。
7.从开发转变为测试?代价依然很高。
找工作找到现在,出现了没有可选的局面了,有点抓狂,有点绝望。这时候,一家知名公司,神X公司约我面试。和面试官谈了才知道,虽然我投的是这家公司的高级软件工程师,但是他们想找我过来做测试,这个测试不是一般的黑盒测试,要写测试代码、脚本之类的。考虑到如果在这样的大公司做测试也是一种机会,我也乐意考虑这个职位。但是谈到待遇,只比应届生的工资高点,实在是打击,面试官的理由是我对写测试脚本还有网络性能这些测试方面的东西还不了解,还需要学习一段,所以给这个价钱。
事后,我想了,我如果应聘了测试,就是在用我的弱势去应聘,而把我的强项(开发经验)没体现出来,那自然得不到好的待遇,虽然是一个机会,但是我还是希望在软件开发这条道路上继续发展,即使我选择换一种方向,经过自己衡量所需要付出的代价,我还是选择放弃这个知名公司的测试的职位。
第四篇:Java程序员成长路线
www.xiexiebang.com
Java程序员成长路线
Java程序员
高级特性
反射、泛型、注释符、自动装箱和拆箱、枚举类、可变
参数、可变返回类型、增强循环、静态导入
核心编程
IO、多线程、实体类、集合类、正则表达式、XML和属性文件
图形编程
AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace
www.xiexiebang.com
网路编程
Applet、Socket/TCP/UDP、NIO、RMI、CORBA
Java语法基础
类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范
Java开发环境
JDK、JVM、Eclipse、Linux
Java核心编程技术
Java,设计而又非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。
1.Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、Linux下Java程序的开发和部署等。
www.xiexiebang.com
2.Java语法基础:基于JDK和Eclipse环境,进行Java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。
3.Java核心API:基于JDK提供的类库,掌握三大核心功能:
A。Java核心编程:包括Java编程的两大核心功能——Java输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML和属性文件。
B。Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI库SWT和Jface;
C.Java网路编程:Applet组件编程,Socket编程,NIO非阻塞Socket编程、RMI和CORBA分布式开发。
4.Java高级特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高级特性,包括反射、泛型、注释,以及java高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。
JavaEE初级软件工程师
www.xiexiebang.com
JSF框架开发技术
配置文件(页面导航、后台Bean)、JSF组件库(JSF EL语言、HTML标签、事件处理、)、JSF核心库(格式转换、输入验证、国际化)
Javaweb核心开发技术
开发环境(Eclipse、Linux)
三大组件(JSP、JavaBean、Servlet)
扩展技术(EL、JSTL、Taglib)
网页开发技术
HTML、XML、CSS、JavaScript、AJAX
数据库设计技术
SQL、MySql、Oracle、SQLServer、JDBC
Web服务器(Tomcat/Jetty/Resin/JBossWeb)
www.xiexiebang.com
JavaWeb核心技术:
JavaWeb项目开发的全过程可以分解为:
网页开发+数据库设计——>JavaWeb项目开发,其中,javaWeb由6项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是将这6种技术进行有机结合的技术框架:
JavaEE中级软件工程师
四种经典架构SSH1、SSI1、SSH2、SSI2
Struts1表现层框架
入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh集成、集成Hibernate/iBATIS
Struts2表现层框架
入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS
www.xiexiebang.com
Spring业务层框架
入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发
Hibernate持久层框架
MySQL、Oracle、SQLServer iBATIS持久层框架
MySQL、Oracle、SQLServer
Web服务器(Tomcat/Jetty/Resin/JBossWeb)
Java高级软件工程师
javaWeb开源技术与框架
工作流、规则引擎
www.xiexiebang.com
搜索引擎、缓存引擎、任务调度、身份认证
报表服务、系统测试、集群、负载平衡、故障转移
JavaWeb分布式开发技术
JTA(Java事物管理)
www.xiexiebang.com
JAAS(Java验证和授权服务)
JNDI(Java命名和目录服务)
JavaMail(Java邮件服务)
JMS(java信息服务)
WebService(web服务)
JCA(java连接体系)
JMS(java管理体系)
应用服务器(JBossAS/WebLogic/WebSphere)
JavaEE系统架构师
面向云架构(COA)
COA、SaaS、网格计算、集群计算、分布式计算、云计算
www.xiexiebang.com
面向资源架构(ROA)
ROA、RESI
面向web服务架构(SOA)
WebService、SOA、SCA、ESB、OSGI、EAI
Java设计模式
创建式模式:抽象工厂/建造者/工厂方法/原型/单例
构造型模式:适配器/桥接/组合/装饰/外观/享元/代理
行为型模式:责任链/命令/解释器/迭代子/中介者/备忘录/观察者/状态/策略/模板方法/访问者
Java与UML建模
对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程
www.xiexiebang.com
CTO首席技术官
发展战略
技术总监
团队提升
团队建设
项目管理
产品管理
一般情况下,java的发展路线是这样的,当然,具体情况因人而异。比如,有的可能后来转入产品职位或其他职位了。另外,每个企业里面java从业人员的title是不同的。比如,有的企业有CTO,而有的企业则只有技术经理或技术主任等,叫法不同,但本质和所需掌握的技术大致相同。
(ps:本文章由北大青鸟广安门校区搜集自互联网)
第五篇:java程序员的成长之路
Java目前是最流行的语言之一,是很多公司和程序员喜爱的一门程序语言.而且, Java的入门比C++相对来说要简单一些, 所以有很大一部分程序员都选择Java作为自己的开发语言.我也是其中之一, 就是因为觉得学C++太难, 当初在学校学了将近一个学期的C++, 啥进步都没有, 哈哈, 天资太差, 所以才选择自学Java(当时学校并没有开设Java的课程), 才走上了程序开发这条路.Java虽然入门要容易, 然而要精通它, 要成为专家却很难.主要原因是Java所涉及的技术面比较宽, 人的精力总是有限的.有些Java方面的技术是必须要要掌握的, 钻研得越深入越好, 比如多线程技术.1.基础阶段
基础阶段, 可能需要经历1-2年吧.这个时段, 应该多写一些基础的小程序(自己动手写的越多越好).计算机是一门实践性很强的学科, 自己动手的东西, 记忆非常深刻, 效果要胜过读好多书.当然, 学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附带的很多工具, 这些你都要熟练得跟屠夫操刀一样.也可以看看
3.高级阶段
高级阶段, 我就不敢妄言了.呵呵, 我感觉自己也是处于中级阶段吧.也是根据自己的一些经验, 谈谈自己的理解吧:
这个阶段, 需要研究各种框
架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我觉得这个时候, 只要是用Java实现的经典框架, 你都可以去研究.------在此申明一下, 我的意思不是说会用.光会用其实是远远不够的, 你可以选择自己喜欢钻研的框架, 去好好研究一下, 兴趣是最好的老师嘛.建议开始的时候, 研究Junit和Struts吧, 小一点, 里面都采用了很多的模式, 呵呵, 可以熟悉一下, 尽量想想人家为什么这么做.我建议主要的精力可以花在spring和jboss上, 尤其是jboss,经典中的经典, 设计, 性能, 多线程, 资源管理等等, 你从中可以学到的东西简直是太多了.而且它还有一本写得很好的参考书, 叫
程和UML方面的资料, 或者自己主持一个项目玩玩, 不一定非得出去拉项目赚钱(能赚钱当然更好), 不管成功或失败, 都是很宝贵的经验, 都能提高很多!