Buscando mi experiencia en el aprendizaje de JAVA. y planificación de carrera
La experiencia de Java es la siguiente:
El primer paso para aprender Java es instalar JDK y escribir un Hello World. De hecho, aprender JDK no es tan simple. Preguntas importantes sobre JDK que tienden a preocupar a los programadores de Java: uno es el problema de CLASSPATH, de hecho, en principio, es descubrir cómo el ClassLoader de JRE carga la clase y el otro es el problema del paquete y la importación. el camino de la clase. Una vez que se aclaren estas dos cuestiones, se eliminará el mayor obstáculo para aprender Java y utilizar JDK. Se recomienda leer "Java Deep Adventure" de Wang Sen, que analiza en profundidad estos dos temas.
El segundo paso es aprender la sintaxis de Java. La sintaxis de Java es similar a C. Básicamente, los lenguajes de programación convencionales son similares a C o similares a C. No hay nada nuevo, por lo que medio día es suficiente para aprender la sintaxis. Lo único que necesita atención es que hay varias palabras clave que no son fáciles de entender, como público, protegido, privado, estático, cuándo usarlas, por qué usarlas y cómo usarlas. Esto puede requerir que alguien lo haga. Darte un consejo. En ese momento estaba completamente solo. Me llevó mucho tiempo entenderlo. Pero luego vi el libro "Pensar en Java" que habla sobre estos conceptos.
El tercer paso es donde aprenderá las características del lenguaje de programación orientado a objetos de Java. Por ejemplo, herencia, constructores, clases abstractas, interfaces, polimorfismo de métodos, sobrecarga, anulación y mecanismo de manejo de excepciones de Java. Para alguien que no tiene experiencia en lenguajes orientados a objetos, creo que este proceso lleva mucho, mucho tiempo, porque no tenía experiencia en C antes de aprender Java, solo me tomó aproximadamente un mes completarlo. Todos estos conceptos, reflexioné, revisé y probé repetidamente los ejemplos del libro. Leí el contenido de esos capítulos una y otra vez. Los leí no menos de 5 veces antes de comprenderlos completamente. Pero creo que si tienes experiencia en C, uno o dos días deberían ser suficientes. Entonces, durante este proceso, puedes leer más sobre el libro "Pensar en Java", que explica muy detalladamente la orientación a objetos. Es una pena que no leí este libro cuando estaba estudiando, así que dediqué mucho tiempo a aprenderlo a través de mis propias pruebas y especulaciones.
El cuarto paso es familiarizarse con la biblioteca de clases de Java. La biblioteca de clases básica de Java es en realidad el paquete jre\lib\rt.jar en el directorio de instalación de JDK. Aprender la biblioteca de clases básica es aprender rt.jar. Hay muchísimas clases en la biblioteca de clases básica. Se dice que hay más de 3000, pero solo hay 4 que son realmente fundamentales para nosotros, a saber,
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
El estudio de estos cuatro paquetes, cada paquete se puede escribir en un libro de texto grueso, y O'reilly hace exactamente eso. Siento que si hay poco tiempo, es imposible aprender leyendo cuatro libros. Creo que un mejor método de aprendizaje es el siguiente:
En primer lugar, lea todo el marco del paquete y comprenda la composición de las clases, interfaces y excepciones de todo el paquete. Es mejor encontrar artículos que lo presenten. todo el marco del paquete. Los primeros capítulos de estos libros dedicados a los paquetes deberían ser una introducción a estos contenidos del marco general.
Comprender el marco general del paquete no significa estar familiarizado con el uso de cada clase y recordar qué atributos y métodos tiene. No puedo recordarlo aunque quisiera. Más bien, necesita saber de qué clases se compone el paquete, cuáles son los usos de estas clases y qué funciones completan las clases principales.
Cuando entreno a personas, normalmente enseño un paquete a la vez, por lo que es imposible presentar el uso de cada clase en detalle, pero he enfatizado repetidamente que el propósito de contarles estos paquetes no es decirle cómo llamar al métodos de la clase. No requiere que recuerde las llamadas a los métodos de las clases, pero requiere que comprenda qué clases nos proporciona Java y cuándo se usa cada clase. Cuando encuentro un problema, sé qué clase. o donde una combinación de varias clases puede solucionar mi problema, ¡Eso es todo! , cuando escribimos un programa específicamente, es suficiente con que sepas qué clase usar para completar tu trabajo. Al codificar, la llamada al método específico es verificar la documentación mientras se escribe el código. Todo está en la documentación. No es necesario que lo recuerde. De hecho, no puede recordar el total de más de 3000 clases. 10 Miles de llamadas a métodos. Por lo tanto, resulta extremadamente importante comprender el marco general de cada paquete.
El quinto paso es aprobar el estudio anterior. Si ha aprendido de manera más sólida, habrá sentado las bases de Java. El trabajo restante es borrar la documentación, excepto los 4 paquetes anteriores. otras clases útiles. Creo que en este punto de progreso, la capacidad de autoaprendizaje de Java se ha desarrollado y ha alcanzado el nivel de aprendizaje directo de Documentación. Además de la programación GUI, otros paquetes útiles en el JDK son:
java.text.*;
java.net.*;
javax.naming .*;
En realidad, hay muy pocas clases utilizadas en estos paquetes, solo unas pocas, por lo que no necesita dedicar mucho tiempo.
El sexto paso, programación web Java
El núcleo de la programación web es el protocolo HTTP. El protocolo HTTP no tiene nada que ver con Java si no está familiarizado con el protocolo HTTP. También puedes aprender bien la programación de Servlet/JSP, pero no puedes llegar al estado de hacer inferencias de una instancia y comprenderlo todo. Por lo tanto, es necesario aprender el protocolo HTTP. Si está familiarizado con el protocolo HTTP y tiene una buena base en programación Java, aprender Servlet/JSP es fácil. Me tomó menos de una semana aprender Servlet/JSP y luego comencé a usar JSP para hacer proyectos.
En el estudio de Servlet/JSP, lo más importante sigue siendo la documentación de Servlet. Hay muy pocas clases más utilizadas en la API de Servlet y puedes dominarlas en relativamente poco tiempo. Lea estas categorías e intente escribir algunos ejemplos más. La esencia de la programación Servlet/JSP es llamar repetidamente a estas clases para comunicarse entre el servidor web y el navegador a través del protocolo HTTP. Además, para JSP, también debe estar familiarizado con varias etiquetas JSP de uso común. Si no recuerda el método de escritura específico, puede buscarlo temporalmente.
Además, el aprendizaje de programación web Java debe centrarse en los patrones de diseño de aplicaciones web, cómo analizar la lógica empresarial y realizar un diseño razonable, y utilizar Servlet y JSP para completarlo de acuerdo con los requisitos. del patrón de diseño MVC diferentes capas lógicas, domine cómo controlar el proceso y compartir datos entre Servlet y JSP, y cómo se debe configurar e implementar la aplicación web.
El séptimo paso, programación J2EE
Si el proceso de aprendizaje anterior es relativamente sencillo, la dificultad aumentará repentinamente en este paso. Debido a que el contenido de conocimiento anterior solo involucra un aspecto, y las especificaciones centrales de J2EE como EJB, JMS y JTA son a menudo el resultado de la aplicación integral de varias tecnologías Java, son relativamente difíciles de dominar.
En primer lugar, debe aprender bien JNDI. JNDI es el método para que App Server localice los recursos del servidor (componentes EJB, Datasouce, JMS). Si no está familiarizado con JNDI, es casi imposible. Aprenda EJB y JMS. JNDI es en realidad el paquete javax.naming.*, que es muy sencillo de usar. La dificultad radica en la configuración de los archivos de recursos del servidor. Para la configuración de los archivos de recursos del servidor, debe consultar especificaciones de documentos especiales, como cómo escribir web.xml, cómo escribir ejb-jar.xml, etc. Para cada servidor de aplicaciones diferente, también existe su propio archivo de configuración de recursos de servicio, con el que también debe estar familiarizado.
Luego podrás aprender JTA, principalmente para comprender cómo JTA controla las transacciones y cuándo usar JTA. Aquí hay un ejemplo simple. Sabemos que generalmente podemos realizar el control de transacciones en una conexión de base de datos (conn.setAutoCommit(false), ...., conn.commit()) como una operación atómica, pero supongamos que mi requisito comercial. es realizar operaciones en dos bases de datos diferentes como una operación atómica. ¿Puedes hacerlo? En este momento, solo se puede utilizar JTA. Supongamos que el proceso de operación consiste en insertar primero un registro en la base de datos A y luego eliminar otro registro de la base de datos B. No podemos controlar toda la operación como una operación atómica escribiendo nuestro propio código. Con JTA, el control lo completa el servidor de aplicaciones.
Antes de aprender EJB, debes aprender la serialización de objetos y RMI es la base de EJB. A continuación, aprenda JMS y EJB. Para EJB, lo más importante es comprender cómo EJB implementa llamadas a objetos remotos a través de RMI y en qué circunstancias se utiliza EJB.
Después de aprender EJB y JMS, es posible que te des cuenta de que no puedes esperar para aprender conocimientos en dos áreas, una es UML y la otra es Design Pattern. El diseño del software empresarial Java concede gran importancia al diseño del marco. Un buen marco de software es una condición necesaria para el desarrollo de software exitoso. En este momento, debe comenzar a concentrarse en aprender marcos y patrones de diseño y dominar los patrones de diseño de EJB y los patrones centrales de J2EE a través del aprendizaje y la experiencia práctica en programación.
En la especificación J2EE, además de EJB, JMS, JTA, Servlet/JSP y JDBC, hay muchas, muchas tecnologías empresariales, que no se presentarán una por una aquí.
También hay un campo más reciente, Servicios Web. Los servicios web no tienen nada nuevo. Es como un pegamento que puede unificar diferentes servicios para proporcionar una interfaz de llamada unificada. Como usuario, solo necesito obtener el WSDL que me proporcionó el proveedor del servicio (para la descripción del servicio). ) es suficiente. No tengo idea de si el servicio proporcionado por el proveedor del servidor es un componente EJB, un componente .Net, un componente CORBA o alguna otra implementación, y no necesito saberlo. Lo mejor de los servicios web es que permite compartir todo el servicio de Internet a través de un método de prestación de servicios y un método de llamada unificados. Es un campo técnico muy interesante. Parece que todavía no existen buenos libros sobre servicios web, pero puedes aprender sobre ellos buscando información en Internet.
El plan de carrera es el siguiente:
En primer lugar, aprender JAVA es definitivamente un buen trabajo en ciudades de primer nivel y el salario es alto. Personalmente, creo que será necesario. Hasta cinco años para escribir código, y probablemente se convertirá en un ingeniero de software senior. En este momento, el salario mensual es de aproximadamente 1 W, que varía según las habilidades personales. Después de eso, hay dos direcciones.
Una es continuar haciendo tecnología, que es más agotadora y hay mucho que aprender. Más tarde, cambio al diseño. En este momento, ya no necesito trabajar en tecnología. convertirse en arquitecto, sin embargo, es muy difícil para un arquitecto alcanzar este puesto. Incluso uno de cada 10 ingenieros de JAVA puede no alcanzar el nivel de arquitecto.
Otra dirección es hacer negocios. El requisito previo es comprender el negocio específico de un determinado sistema industrial, ser un director de proyectos, asignar trabajo a ingenieros y probar, implementar, etc. el proyecto y dejar que los clientes lo utilicen más cómodo. Si tiene fuertes habilidades de comunicación, puede continuar trabajando como gerente de departamento, etc.