At the very least to master the following things to make a master ~ ~
Learn it slowly ~ ~ Learning ~ ~
On the macro level:
1. Breadth of technology
At least be proficient in many open source technology, study the source of struts\spring and so on.
2. Project Experience
With a few major projects from beginning to end, the head refers to the demand phase, including demand research.
Tail refers to the delivery of the line, including the maintenance phase.
3. Architectural Experience
Have experience in architecture and development of distributed systems. It has extensive experience in structural optimization of cross-system, performance index of data storage, etc. What cache ah, vertical segmentation of the database What, business abstraction and horizontal split Ah, these should all pro bar.
4. Field of industry
At the very least, you have to be proficient in one or two business, the so-called proficiency, such as financial securities business, at least when the half of the analysts. Do electricity business, at least as half as a power engineer.
5. Personal cultivation
Have some of their own unique ideas, will not conform to the same.
On the Micro:
1. You need to be proficient in object-oriented analysis and Design (ooa/ood), involving patterns (GOF,J2EEDP), and integrated patterns. You should have a great understanding of UML, especially Class,object,interaction and Statediagrams.
2. You need to learn the basics of the Java language and its core class library (collections,serialization,streams,networking, Multithreading,reflection,event, Handling,nio,localization, and others).
3. You should understand jvm,classloaders,classreflect, and the basic working mechanism of garbage collection. You should have the ability to decompile a class file and understand some basic assembly instructions.
4. If you are going to write a client program, you need to learn the Web applets (applets), must master the ideas and methods of GUI design, and the swing,awt of desktop programs, SWT. You should also be aware of the JavaBean component pattern of the UI widget. JavaBeans is also used in JSPs to separate business logic from the presentation layer.
5. You need to learn Java database technology such as JDBCAPI and use at least one persistence/orm architecture, 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, how it affects the interaction of the business object with the relational database, and the results of its operation, as well as the application of different database products, such as: Oracle,mysql,mssqlserver.
7. You need to learn Java Sandbox security mode (classloaders,bytecodeverification,managers,policyandpermissions,codesigning, Digitalsignatures,cryptography,certification,kerberos, and others) also have different security/authentication APIs, such as Jaas ( Javaauthenticationandauthorizationservice), JCE (javacryptographyextension), JSSE (javasecuresocketextension), and JGSS (Javageneralsecurityservice).
8. You need to learn servlets,jsp, as well as Jstl (standardtaglibraries) and optional third-party taglibraries.
9. You need to familiarize yourself with the mainstream web frameworks, such as Jsf,struts,tapestry,cocoon,webwork, and the following patterns of their involvement, such as Mvc/model2.
10. You need to learn how to use and manage Web servers, such as Tomcat,resin,jrun, and know how to extend and maintain web programs on top of them.
11. You need to learn about distributed objects and remote APIs such as RMI and RMI/IIOP.
12. You need to master a variety of popular middleware technical standards and implemented in conjunction with Java, such as Tuxedo, Croba, and of course, Java EE itself.
13. You need to learn at least one of the XMLAPI, such as JAXP (javaapiforxmlprocessing), JDOM (Javaforxmldocumentobjectmodel), dom4j, or JAXR ( javaapiforxmlregistries).
14. You should learn how to use JAVAAPI and tools to build webservice. For example Jax-RPC (JAVAAPIFORXML/RPC), SAAJ (Soapwithattachmentsapiforjava), JAXB (javaarchitectureforxmlbinding), JAXM ( javaapiforxmlmessaging), JAXR (javaapiforxmlregistries), or JWSDP (Javawebservicesdeveloperpack).
15. You need to learn a lightweight application framework, such as Spring,picocontainer,avalon, and their ioc/di style (setter,constructor,interfaceinjection).
16. You need to be familiar with different Java EE techniques, such as Jndi (Javanaminganddirectoryinterface), JMS (Javamessageservice), Jta/jts ( Javatransactionapi/javatransactionservice), JMX (Javamanagementextensions), and JavaMail.
17. You need to learn about Enterprise-class JavaBeans (EJBS) and their different component modes: Stateless/statefulsessionbeans,entitybeans (contains bean-managedpersistence[ BMP] or container-managedpersistence[cmp] and its ejb-ql), or Message-drivenbeans (MDB).
18. You need to learn how to manage and configure a Java EE application server, such as Weblogic,jboss, and take advantage of its additional services, such as cluster classes, connection pooling, and distributed processing support. You also need to know how to encapsulate and configure applications on top of it and be able to monitor and tune its performance.
19. You need to be familiar with aspect-oriented programming and attribute-oriented programming (both of which are easily confusingly abbreviated as AOP), as well as their mainstream Java specifications and execution. such as AspectJ and Aspectwerkz.
20. You need to be familiar with different useful APIs and frame work to serve you. For example log4j (logging/tracing), Quartz (scheduling), JGroups (networkgroupcommunication), Jcache (distributedcaching), Lucene (Full-textsearch), jakartacommons and so on.
21. If you are going to be docking or working with an old system or local platform, you need to learn JNI (Javanativeinterface) and JCA (javaconnectorarchitecture).
22. You need to be familiar with Jini technology and the distributed systems associated with it, such as mastering Croba.
23. You need Javacommunityprocess (JCP) and his different javaspecificationrequests (JSRs), such as Portlets (168), JOLAP (69), Dataminingapi (73), et cetera.
24. You should be proficient in a javaide such as Sunone,netbeans,intellijidea or Eclipse. (Some people prefer VI or Emacs to write files.) Whatever you use:)
25.JAVA (which is precisely some configuration) is verbose and requires a lot of manual code (such as EJBS), so you need to be familiar with code generation tools such as Xdoclet.
26. You need to be familiar with a unit test system (JNUNIT) and learn about different build and deployment Tools (Ant,maven).
27. You need to be familiar with some of the software engineering processes that are often used in Java development. For example, Rup (rationalunifiedprocess) andagilemethodologies.
28. You need to be able to learn more about skilled operations and configure different operating systems, such as Gnu/linux,sunsolaris,macos, as a cross-platform software developer.
29. You also need to follow the pace of Java development, such as now can be in-depth learning javame, as well as various Java new specifications, technology, such as the new Web rich client technology.
30. You need to know something about opensource, because at least many of Java's technologies are driven by open source, such as JAVA3D technology.
What you need to learn to become a senior Java engineer