What do you need to learn to become a Java senior engineer

In general:

1. In terms of technical breadth,
at least be proficient in multiple open source technologies, and have studied the source code of struts\spring.

2. In terms of project experience, I have
followed several large projects from beginning to end, and the beginning refers to the demand stage, including demand research.
Tail refers to after the on-line delivery, including the maintenance phase.

3. Experience
in architecture and development of distributed systems. He has rich experience in cross-system structure optimization and data storage performance indicators. What kind of caching, vertical segmentation of databases, business abstraction and horizontal splitting, these should all be familiar.

4. In the field of industry,
you must be proficient in one or two businesses at least. The so-called proficient means, for example, in the financial securities business, at least half of the financial analyst. If you are in the power business, you should be at least half a power engineer.

5. Personal cultivation
has some unique insights of his own, and he will not follow suit.

Microscopically:

1. You need the official website: www.fhadmin.org Proficient in object-oriented analysis and design (OOA/OOD), involving patterns (GOF, J2EEDP) and comprehensive patterns. You should have a good understanding of UML, especially classes, objects, interactions and statediagrams.


2. You need to learn the basics of the JAVA language and its core libraries (collections, serialization, streams, networking, multithreading, reflection, event, handling, NIO, localization, and others).


3. You should understand the JVM, classloaders, classreflect, and the basic working mechanism of garbage collection. You should be able to decompile a class file and understand some basic assembly instructions.


4. If you are going to write client programs, you need to learn WEB applets, you must master the ideas and methods of GUI design, as well as SWING, AWT, and SWT for desktop programs. You should also have an understanding of the JAVABEAN component pattern for UI widgets. JAVABEANS is also used in JSP to separate the business logic from the presentation layer.


5. You need to learn java database technology, such as JDBCAPI and use at least one persistence/ORM framework, such as Hibernate, JDO, CocoBase, TopLink, InsideLiberator (domestic JDO red factory software) or iBatis.


6. You should also understand the meaning of the impedance mismatch of the object relationship, and how it affects the interaction between business objects and relational databases, and its operation results, and also need to master the use of different database products, such as: oracle, mysql , mssqlserver.


7. You need to learn JAVA's sandbox security model (classloaders, bytecodeverification, managers, policycyandpermissions, codesigning, digitalsignatures, cryptography, certification, Kerberos, and others) and different security/authentication APIs, such as JAAS (JavaAuthenticationandAuthorizationService), JCE ( JavaCryptographyExtension), JSSE (JavaSecureSocketExtension), and JGSS (JavaGeneralSecurityService).


8. You need to learn Servlets, JSP, and JSTL (StandardTagLibraries) and optional third-party TagLibraries.


9. You need to be familiar with mainstream web frameworks, such as JSF, Struts, Tapestry, Cocoon, WebWork, and their underlying models, such as 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 官网:www.fhadmin.org和工具来构建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技术以及与它相关的分布式系统官网:www.fhadmin.org ,比如掌握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)官网:www.fhadmin.org,并且学习不同的生成、部署工具(Ant,Maven)。


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


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


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


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

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326996311&siteId=291194637