¿Quieres aprender a programar en JAVA y quieres darme algún consejo?
1. Debe dominar el análisis y diseño orientado a objetos (OOA/OOD), patrones involucrados (GOF, J2EEDP) y patrones integrales. Debe tener un buen conocimiento de UML, especialmente clases, objetos, interacciones y diagramas establecidos.
2. Debe aprender los conceptos básicos del lenguaje JAVA y sus bibliotecas de clases principales (colecciones, serialización, transmisiones, redes, subprocesos múltiples, reflexión, eventos, manejo, NIO, localización y otros).
3. Debe comprender JVM, cargadores de clases, classreflect y el mecanismo de trabajo básico de la recolección de basura. Debería poder descompilar un archivo de clase y comprender algunas instrucciones básicas de ensamblaje.
4. Si va a escribir programas cliente, necesita aprender subprogramas WEB y debe dominar las ideas y métodos de diseño de GUI, así como SWING, AWT y SWT de los programas de escritorio. También debe comprender el patrón de componentes JAVABEAN para los widgets de la interfaz de usuario. JAVABEANS también se utiliza en JSP para separar la lógica empresarial de la capa de presentación.
5. Debe aprender la tecnología de bases de datos de Java, como JDBCAPI, y poder utilizar al menos un marco de persistencia/ORM, como Hibernate, JDO, CocoBase, TopLink, InsideLiberator (software de fábrica roja JDO nacional). ) o iBatis.
6. También debe comprender el significado de la discrepancia de impedancia relacional entre objetos, cómo afecta la interacción de los objetos comerciales con las bases de datos relacionales y sus resultados operativos. También necesita dominar diferentes productos de bases de datos. tales como: oracle, mysql, mssqlserver.
7. Necesita aprender las diferencias en el modelo de seguridad sandbox de JAVA (cargadores de clases, verificación de bytecode, administradores, políticas y permisos,
codiseño, firmas digitales, criptografía, certificación, Kerberos y otros ) API de seguridad/autenticación, como JAAS (JavaAuthenticationandAuthorizationService), JCE (JavaCryptographyExtension), JSSE (JavaSecureSocketExtension) y JGSS (JavaGeneralSecurityService).
8. Necesita aprender Servlets, JSP y JSTL (StandardTagLibraries) y TagLibraries de terceros opcionales.
9. Debe estar familiarizado con los principales marcos de páginas web, como JSF, Struts, Tapestry, Cocoon, WebWork y sus modos subyacentes, como MVC/MODEL2.
10. Debe aprender a utilizar y administrar servidores WEB, como Tomcat, Resin, Jrun, y saber cómo expandir y mantener programas WEB basados en ellos.
11. Necesita aprender objetos distribuidos y API remotas, como RMI y RMI/IIOP.
12. Debe dominar varios estándares de tecnología de middleware populares y su implementación en combinación con Java, como Tuxedo, CROBA y, por supuesto, el propio javaEE.
13. Necesita aprender al menos una XMLAPI, como JAXP (JavaAPI para XMLProcessing), JDOM (JavaforXMLDocumentObjectModel), DOM4J o JAXR (JavaAPIforXMLRegistries).
14. Debe aprender a utilizar la API y las herramientas de JAVA para crear servicios web. Por ejemplo, JAX-RPC (JavaAPI para XML/RPC), SAAJ (SOAPwithAttachmentsAPIforJava), JAXB (JavaArchitectureforXMLBinding), JAXM (JavaAPIforXMLMessaging), JAXR (JavaAPIforXMLRegistries) o JWSDP (JavaWebServicesDeveloperPack).
15. Necesita aprender un marco de aplicación liviano, como Spring, PicoContainer, Avalon y sus estilos IoC/DI (configurador, constructor, inyección de interfaz).
16. Debe estar familiarizado con diferentes tecnologías J2EE, como JNDI (JavaNamingandDirectoryInterface), JMS (JavaMessageService), JTA/JTS (JavaTransactionAPI/JavaTransactionService), JMX (JavaManagementeXtensions) y JavaMail.
17. Necesita aprender Enterprise JavaBeans (EJB) y sus diferentes patrones de componentes: Stateless/StatefulSessionBeans, EntityBeans (incluido Bean-ManagedPersistence [BMP] o Container-ManagedPersistence [CMP] y su EJB-QL) , o Message-DrivenBeans (MDB).
18. Debe aprender a administrar y configurar un servidor de aplicaciones J2EE, como WebLogic, JBoss, etc., y aprovechar sus servicios adicionales, como agrupación en clústeres, agrupación de conexiones y procesamiento distribuido. apoyo. También necesita comprender cómo empaquetar y configurar aplicaciones en él y poder monitorear y ajustar su rendimiento.
19. Debe estar familiarizado con la programación orientada a aspectos y la programación orientada a atributos (ambas abreviadas de manera confusa como AOP), así como con sus especificaciones e implementaciones JAVA convencionales. Por ejemplo AspectJ y AspectWerkz.
20. Debe estar familiarizado con diferentes API útiles y marcos de trabajo para servirle. Por ejemplo, Log4J (registro/rastreo), Quartz (programación), JGroups (comunicación de grupo de red), JCache (almacenamiento en caché distribuido), Lucene (búsqueda de texto completo), JakartaCommons, etc.
21. Si va a conectarse o interactuar con un sistema antiguo o una plataforma local, necesita aprender JNI (JavaNativeInterface) y JCA (JavaConnectorArchitecture).
22. Debe estar familiarizado con la tecnología JINI y sus sistemas distribuidos relacionados, como dominar CROBA.
23. Necesitas JavaCommunityProcess (JCP) y sus diferentes JavaSpecificationRequests (JSR), como Portlets (168), JOLAP (69), DataMiningAPI (73), etc.
24. Debes dominar un Javaide como sunOne, netBeans, IntelliJIDEA o Eclipse. (Algunas personas prefieren VI o EMACS para escribir archivos. Independientemente de lo que uses:)
25. JAVA (alguna configuración para ser precisos) es detallado y requiere mucha codificación manual (por ejemplo, EJB), por lo que Debe estar familiarizado con herramientas de generación de código como XDoclet.
26. Es necesario estar familiarizado con un sistema de pruebas unitarias (JNunit) y aprender diferentes herramientas de generación e implementación (Ant, Maven).
27. Es necesario estar familiarizado con algunos procesos de ingeniería de software que se utilizan a menudo en el desarrollo de JAVA. Por ejemplo, RUP (Proceso Unificado Racional) y métodos ágiles.
28. Debe poder tener un conocimiento profundo y competencia en la operación y configuración de diferentes sistemas operativos, como GNU/linux, sunsolaris, macOS, etc., como desarrollador de software cruzado. software de plataforma.
29. También necesita mantenerse al día con el ritmo del desarrollo de Java. Por ejemplo, ahora puede aprender JavaME en profundidad, así como la aplicación de varias especificaciones y tecnologías nuevas de Java, como las nuevas. Tecnología de cliente web enriquecido.
30. Debes saber algo sobre código abierto, porque al menos muchas tecnologías Java están impulsadas directamente por código abierto, como la tecnología java3D.