1. You need to be proficient in object-oriented Analysis and Design (OOA/OOD), Touch patterns (GOF, J2EEDP), and composite patterns. You should know UML, especially class, object, interaction, 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, Local) Ization and others).

3. You should understand the basic workings of the JVM, ClassLoaders, ClassReflect, and 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 the Web applet, must master GUI design ideas and methods, as well as the desktop program SWING, AWT, SWT. You should also be familiar with the JavaBEAN component pattern for UI widgets. JavaBEANS are also used in JSPS to separate business logic from the presentation layer.

5. You will need to learn Java database technology and be able to use at least one Persistence /ORM framework such as Hibernate, JDO, CocoBase, TopLink, InsideLiberator or iBatis.

6. You should also understand the meaning of impedance mismatch of object relationships and how it affects the interaction of business objects with relational databases, as well as its running results. You also need to master different database products, such as Oracle, MySQL, SQL Server.