看了这篇名为《开发工程师之路》的文章,颇有感慨。特写此文与所有java爱好者共勉。
对于我个人来说,从事技术工作已快有两年了,有时问问自己,这些年来到底真正掌握的技术有多少?自己天天都做了些什么?如今有什么值得回味的呢?
一想到这些问题,就不免身冒冷汗。仔细一想,这两年来,每天除了工作就是学习(当然周末有例外),新技术,新工具,一个个的学,一个个的用。到如今呢,说学了什么?能列出来的不就是java相关的东西吗?技术方面:Servlet,JSP(TagLib),EJB,JNDI,JDBC,JMail,JMS,XML,UML,AOP,ICO,JMX。工具方面呢?开源的Ant,Log4j,Exe4j,Junit,dom4j,Xdoclet,Resin,Tomcat,Eclipse,Struts,Hibernate,Spring.其它工具:Jboss,Jbuild等,另外就是学了一些设计模式,项目管理相关的知识,再就是windows,linux下的一些其它东东。留下的看得见的东西可能就是做过的七八来个项目和一堆读书笔记(由于时间原因,未放在网上,我会陆续发表的,请关注)。
从整个JAVA的技术领域来看,我所学的只能算冰山一角,还有很多东西只是听说过而已,就拿J2EE来说,就有Web Services,JSF,SOAP,WSDL,JAAS还有其它JAVA技术JINI,JWS等等,还有当前正在流行的N多开源项目:HiveMind,Turbine,Tapestry,Ruby... 当然,还有很多J2SE的技术未包括:像java 2D,java sound,而且这还不包括J2ME的内容。对于已经学习过的东西,可能很快就被遗忘了,因为学的越多,忘记越多。要真正掌握一个领域内完成的知识体系,可能就像这篇文章《在十年里学会编程》 里所说的,真的需要十年时间!!!十年以后,就可成为一个领域内的专家?通才?不,很有可能是一个“什么都会”的技术狂人。“什么都会”意味什么?可能,目前流行工具你都会,主流技术你能用,但是新的技术,新的工具不断的涌现,你还需要不断地学。所以说,要做这样的技术狂人十年是远不够的!然而,象这样学习,十年,对于 我来说太长了!(当然,学习是一辈子的事,活到老,学到老嘛 ^ - ^ )
不要做技术狂人,要做就做技术牛人!!!人的精力是有限的,对于技术,我认为不可盲目追求,要适可而止。
为什么这么说呢?难道自己对技术没兴趣了,不。关键是目前的技术范围太大,太广,一个人不可能什么都懂,什么都会。当然这句话的前提是在时间有限的情况下。那么,如何在有限的时间里掌握更多的知识呢?
我觉得首先对所学的东西有一个着重点的认识,抓重点学。
什么是重要的?对于java来说,j2se是最重要的。最重要的也是最基础的,学好的基础的,其它学起来不仅轻松而且是效率高。学好了j2se里最基础的,学J2EE就快了。不要一开始就是EJB,JMS,当然这些技术可先了解。学好了j2EE,再来用Struts,Hibernate,Spring岂不是小儿科,三天搞定!!!声明一下,前而说的“学好了j2EE”,是指完全掌握其原理,对技术细节要有一定了解,至于其它方面,只需知道怎么查文档就可以了,也就是说对于某一细节,可快速查找到相应文档即可。再一个,前面说所的“三天搞定”,是指知道其原理,学会简单使用方法(复杂的使用查文档不就完了),实现细节就不用管了,因为有java基础,还愁不知道是怎么实现的?如果你起Struts,Hibernate,Spring觉得很难,一句话,基础知识没学好!这里不排除通过用Struts,Hibernate,Spring来学基础的人。
总之,学基础的,没错!什么是基础的?借用一名流行的话:一流的公司卖标准,二流的公司卖技术,三流的公司卖产品,标准就是基础。
其次,不要在掌握了基础之后,自己写一些所谓的工具。因为这些工具如果有用,你能想到的,别人肯定也想到了,所以没有必要花时间去创造东西,而是去寻找别人已经做好了的东西,学习使用别人的东西。http://sourceforge.net上有N多工具供你选择。如果你想到的别人没有呢,那好啊,做成项目(见下)
最后,用你可以用你所学的开发出一两个完整的项目。不要太多,两个就够!项目一定要完整,而且还要实用,最好从实际需求出发,整合自己所学的知识和第三方的工具。
另外,在自己的blog上多发表文章,多与人探讨。
做到以上四点,不用十年,绝对可成技术牛人!希望所有的java爱好者成为技术牛人!!!
作者简介:
施祖阳,网名sylilzy,1979年生。
2002年起从事软件开发工作,主要研究JAVA、Linux及相关技术。