成为一名Java高级工程师你需要学什么

宏观上:

1.技术广度方面

至少要精通多门开源技术吧,研究过struts\spring等的源码。

2.项目经验方面

从头到尾跟过几个大项目,头是指需求阶段,包括需求调研。

尾是指上线交付之后,包括维护阶段。

3.架构经验方面

有过分布式系统的架构和开发经验。对于跨系统的结构优化,数据存储的性能指标等有丰富经验。什么缓存啊、数据库的垂直切分什么的,业务的抽象和水平拆分啊,这些应该都轻车熟路吧。

4.行业领域方面

最起码得精通一到两门业务吧,所谓精通,就是比如做金融证券业务的,至少等当半个经融分析师。做电力业务的,至少等当半个电力工程师。

5.个人修为

有自己一些独到的见解,不会人云亦云啦。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载,也可以交流不懂的问题可以提问。

微观上:

1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。

2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。

3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。

4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT, SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。

5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。

6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如:oracle,mysql,mssqlserver。

7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。

8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。

9.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。

10.你需要学习如何使用及管理WEB服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护WEB程序。

11.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。

12.你需要掌握各种流行中间件技术标准和与java结合实现,比如Tuxedo、CROBA,当然也包括javaEE本身。

13.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

14.你应该学习如何利用JAVAAPI和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

15.你需要学习一门轻量级应用程序框架,例如Spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。

16.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (JavaManagementeXtensions),以及JavaMail。

17.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean- ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。

18.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。

19.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。

20.你需要熟悉对不同有用的API和frame work等来为你服务。例如Log4J(logging/tracing),Quartz (scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching), Lucene(full-textsearch),JakartaCommons等等。

21.如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI (JavaNativeInterface) and JCA (JavaConnectorArchitecture)。

22.你需要熟悉JINI技术以及与它相关的分布式系统,比如掌握CROBA。

23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。

24.你应该熟练掌握一种JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)

25.JAVA(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet。

26.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。

27.你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。

28.你需要能够深入了解加熟练操作和配置不同的操作系统,比如GNU/linux,sunsolaris,macOS等,做为跨平台软件的开发者。

29.你还需要紧跟java发展的步伐,比如现在可以深入的学习javaME,以及各种java新规范,技术的运用,如新起的web富客户端技术。

30.你必需要对opensource有所了解,因为至少java的很多技术直接是靠开源来驱动发展的,如java3D技术。

时间: 2024-08-22 06:40:36

成为一名Java高级工程师你需要学什么的相关文章

教你如何成为一名Java初级程序员

程序|程序员 目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员.本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享. 个人认为想成为一个合格的JAVA初级程序员应该具备如下知识: 一.面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;

怎样成为一名A“.NET研究”ndroid开发者

Chris(克里斯)是一位来自波兰的Androi上海企业网站设计与制作d应用开发者,作为一名非著名的开发者,他开发的应用在Android Market上免费提供下载,并通过广告获得收入,最近他在自己的博客上面分享了从事Android开发带来的收入情况,并通过自己的经历给予Android开发入门者非常忠实的忠告.作为国内从事Android开发的同行,APP虎第一时间发现并翻译了他的文章,以与广大Android开发者和即将进入Android开发的人们分享. 很多人认为从事Android开发是一件赔本

怎样成为一名Android开发者

Chris(克里斯)是一位来自波兰的Android应用开发者,作为一名非著名的开发者,他开发的应用在Android Market上免费提供下载,并通过广告获得收入,最近他在自己的博客上面分享了从事Android开发带来的收入情况,并通过自己的经历给予Android开发入门者非常忠实的忠告.作为国内从事Android开发的同行,APP虎第一时间发现并翻译了他的文章,以与广大Android开发者和即将进入Android开发的人们分享. 很多人认为从事Android开发是一件赔本的买卖.他们说,如果你

浅谈:想要成为一名SEO优化高手 需要哪些基本素质

相信每一个初涉SEO关键词优化这一行的新手都有这样一个目标,下定决心要成为一名优秀的SEO优化人员,成为这一行业的高手获得出色的成绩.貌似还真是这样的,我刚开始进入深圳网站优化这一行的时候也是这样想的,想着既然决定从事这一行就一定要在这一行做出一点成绩能够体现出自己的价值所在.只是这个目标实践过程已经过了一年,事实却仍在 原地踏步,我并没有缩短现实与目标之间的距离,反而有点儿越走越远.究其原因,我认为或许是因为我这一年来都没有明确的方向,不明白实现这个目标需要朝着 怎样的方向努力.仍然想成为这个

作为一名Java程序员,我为什么不在生产项目中转向Go

自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go.随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区. 那么问题来了,业余时间好学是一回事,真正要将一个新东西运用到生产中则是另一回事.JavaScript的开发者可以义无反顾地选择Node.js,但是对于Java开

从不懂seo优化到后来成为一名seo从业者的经历

本人接触seo优化是从2010年6月份的时候开始的.记得踏入网络行业是2009年的5月份吧,当时对于seo并不了解.每天只会去模仿人家的做法,当时我还不会去查询百度指数,只看到人家做的网站标题是某些关于网赚类型的关键词,然后查看他们的收入裁图十分吸引我,每天都是几百几百的收入裁图,我想,如果我可以复制他们的标题和和内容,说不定我的网站也会有这么好的排名和收入.于是自己也复制了他们的标题.之后描述和关键字的地方全部复制了人家的,连文章也复制了人家的. 我的第一个网站就此诞生了,名字叫做美美网赚网,

如何成为一名C++程序员

入门: 入门就是要初步对编程的思想有个了解,并且能编程解决一些小问题.入门一定要选好书,难度如果太低了会造成对读者的误导,以为编程就是这么回事:也不能太高深,免的打击读者的信心.既然编程的入门要求是编一些小程序解决小问题,那么就没必要直接学习C++,我觉得循环.判断.跳转.指针才是最基本的编程思想,学通了这些对以后学习C++很有帮助. 我建议应该先把C扎实地学好,不光要掌握C的语法,因为学习编程的最终目的是解决实际问题,所以还要适当掌握把实际问题与编程联系在一起的能力,我推荐< C程序设计语言(

成为一名“足球控”

摘要: 亚洲杯上国足小组赛全胜的战绩让国人为之振奋,春节假期里,中超球队在亚冠首轮纷纷战胜对手,拿到开门红的消息,也让平常对于足球不是太热情的我,开始有些痴狂地追着看着关 亚洲杯上国足小组赛全胜的战绩让国人为之振奋,春节假期里,中超球队在亚冠首轮纷纷战胜对手,拿到开门红的消息,也让平常对于足球不是太热情的我,开始有些痴狂地追着看着关于足球的资讯和新闻. 不过对于"真球迷"来说,他们对于足球讯息的要求显然比我这个"伪球迷"要更加专业和深入."足球控"

如何在三年内快速成长为一名技术专家

工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯.在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前.本文和大家一起探讨下如何在三年内快速成长为一名技术专家. 作者:清英 学习方法 1:掌握良好的学习心态 2:掌握系统化的学习方法 3:知识如何内化成能力 4:广度和深度的选择 实战技巧 1:你需要学会的编码习惯 2:在业务团队做开发如何成长 掌握良好的学习心态 空杯心态 首先要有空杯的学习心态,而不是傲娇自满,故步自封