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 和 framework 等来 为 你服 务 。例如 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 技 术 。