¿Cómo empezar con el autoaprendizaje de Java?

La dificultad del autoestudio es no saber por dónde empezar y cómo aprender, y no existe un camino de aprendizaje sistemático. Ahora los programadores de Dark Horse han lanzado recientemente una hoja de ruta de aprendizaje de Java, que resuelve un muy buen problema. Puedes buscar y ver.

Primero que nada, Java Foundation

Para aprender cualquier lenguaje de programación, lo primero que debes aprender es la sintaxis básica. El primer paso para comenzar a aprender Java es, por supuesto, dominar los conceptos básicos de la informática, la sintaxis básica de la programación, la programación orientada a objetos, conjuntos, flujos IO, subprocesos, concurrencia, excepciones y programación de redes, a lo que llamamos conceptos básicos de JavaSE. Una vez que haya dominado estos contenidos, puede instalar software de escritorio como el software de descarga Thunder, el cliente de chat QQ, el sistema de gestión de asistencia, etc. en su computadora.

Los conceptos básicos de JavaSE son el punto de partida para los programadores intermedios de Java y la única forma de ayudarle a aprender programación desde un principiante.

Hay seis submódulos en el módulo básico de Java que deben aprenderse:

Árbol tecnológico

Segundo, base de datos

Lo más valioso en Internet son los datos. Cualquier lenguaje de programación necesita resolver el problema del almacenamiento de datos, y la tecnología clave para el almacenamiento de datos es la base de datos. MySQL y Oracle son sistemas de gestión de bases de datos populares entre las empresas. Las tecnologías de comunicación más comunes entre programas Java y bases de datos son JDBC, Druid y C3P0. Después de aprender estas tecnologías de bases de datos, podrá dominar las tecnologías de operación y mantenimiento de bases de datos, diseñar especificaciones para estructuras de tablas comerciales complejas, operaciones SQL comunes en el trabajo, almacenamiento de datos de software, etc.

La base de datos no es sólo un curso obligatorio para los ingenieros de desarrollo de Java, sino también una habilidad que otros lenguajes deben dominar. Se utiliza para almacenar datos de los clientes durante las interacciones.

Esta sección incluye bases de datos relacionales y no relacionales.

Por ejemplo: MySQL, Oracle, Redis, MongoDB, etc. Después de conocer la base de datos, puede almacenar datos en la base de datos o consultar datos de la base de datos mediante declaraciones SQL. Combinado con proyectos Java, se pueden guardar los datos de sitios dinámicos.

Árbol de tecnología

Tercero, tecnología front-end

La página web que el navegador muestra al usuario es la interfaz. tres tecnologías básicas, a saber, HTML, CSS y JavaScript. Después de aprender esto, para crear una experiencia interactiva mejor y más deslumbrante, necesitamos aprender jQuery, ElementUI, Vue, Ajax y la herramienta de empaquetado webpack. Después de aprender estas tecnologías, podemos desarrollar subprogramas WeChat, sitios web responsivos, sitios web móviles, centros comerciales B2B2C como JD.COM y backends de administración.

La etapa Javaweb incluye front-end, base de datos y páginas web dinámicas. Javaweb es un curso de introducción a proyectos de Internet y la base para el aprendizaje de cursos avanzados.

Primero, echemos un vistazo al panel frontal. Esta sección incluye principalmente los siguientes módulos:

Después de aprender la tecnología front-end, puede completar el trabajo de preparación para proyectos front-end como JD.COM y Taobao.

Árbol tecnológico

Cuarto, páginas web dinámicas

Dominar la tecnología front-end solo puede crear sitios web estáticos, pero los datos de la página permanecen sin cambios, mientras que los sitios web dinámicos pueden basarse en la base de datos Los datos cambiantes muestran contenido diferente y se usan más ampliamente, por lo que los programadores deben aprender a crear sitios web dinámicos. El uso de Java para crear un sitio web dinámico requiere aprender un sistema de conocimiento completo como Servlet, Filtro, Sesión, Cookie, JSP, expresión EL, JSTL, etc. Después de aprender, podrás desarrollar sistemas OA, sitios web de contenido, BBS, etc.

Las páginas web dinámicas son la base de la programación del lado del servidor para programadores intermedios y un curso necesario para el aprendizaje avanzado del framework. El marco y la capa inferior del servicio del aprendizaje posterior se basan en tecnología web dinámica.

Esta sección incluye las tecnologías centrales de Javaweb, incluidos Servlet, solicitud, respuesta, cookie y sesión.

Al aprender estas tecnologías, puede completar el desarrollo dinámico del sitio, completar mejor la interacción entre el servidor y el cliente y "mover" los datos de la página a un pequeño sistema de aplicaciones.

Árbol tecnológico

Mejora de la programación de verbos (abreviatura de verbo)

He aprendido los conceptos básicos de JavaSE antes, pero no es eficiente y tiene poca escalabilidad en aplicaciones empresariales. La mejora de la programación consiste en fortalecer la base de JavaSE, lo que mejorará la eficiencia de ejecución del negocio de procesamiento de programas y mejorará la escalabilidad del programa. La mejora de la programación fortalecerá el aprendizaje avanzado de subprocesos múltiples, que involucra memoria de subprocesos, comunicación de subprocesos y otras tecnologías. Después del aprendizaje, puede aumentar la reserva de conocimientos de un programador intermedio y sentar una buena base durante el proceso de entrevista o más adelante.

La mejora de la programación es una comprensión y aplicación profundas de la resolución de problemas prácticos. Fortalece la base de JavaSE y respalda la comprensión subyacente de los marcos de automatización posteriores y algunos marcos de servicios.

El módulo de mejora de programación incluye principalmente los siguientes módulos: subprocesos múltiples avanzados, que involucran memoria de subprocesos, comunicación de subprocesos, etc. La optimización de JVM, optimizando la capa inferior de JVM, mejora la eficiencia de ejecución del proyecto; NIO, la IO sincrónica sin bloqueo mejora la eficiencia.

Aprender esta etapa puede optimizar el proyecto original y hacer que el programa sea más rápido y estable.

Árbol tecnológico

Gestión de proyectos de software con verbos intransitivos

El desarrollo empresarial es un desarrollo colaborativo en equipo. Para comprender mejor el desarrollo real, también necesitamos aprender en común. Se utilizó la plataforma de gestión de proyectos, el controlador de versiones, la herramienta de construcción de proyectos y la herramienta de implementación automatizada. Las actualizaciones de versión son necesarias durante el desarrollo del proyecto. Se requieren plataformas de sistemas como Git, Maven y Sonar para gestionar el progreso y las versiones del proyecto. Después de aprender a gestionar proyectos de software, dominará el proceso de desarrollo real de todo el proyecto, así como las herramientas de desarrollo colaborativo utilizadas durante todo el proceso de desarrollo del proyecto.

Los conceptos básicos de JavaSE son el punto de partida para los programadores intermedios de Java y la única forma de ayudarle a aprender programación desde un principiante.

El módulo básico de Java tiene seis submódulos: sintaxis básica, que puede ayudarle a establecer el pensamiento lógico de programación básica; almacena datos en el desarrollo posterior; IO, las operaciones básicas de lectura y escritura de archivos de disco; los subprocesos múltiples y la concurrencia mejoran la eficiencia del programa, la escritura de la lógica del código es más sólida y el aprendizaje del servidor de aplicaciones es más sólido; datos.

En esta etapa de aprendizaje, puedes completar algunos sistemas de gestión simples, juegos de batalla de tanques, comunicación QQ, etc.

Árbol tecnológico

7. Marcos tecnológicos populares

Después de dominar Javaweb, tendrá la capacidad de desarrollar proyectos empresariales prácticos, pero la eficiencia del desarrollo es baja y el La cantidad de código es grande, el ciclo de desarrollo es largo y el costo de desarrollo es alto. Las empresas utilizan ampliamente algunas tecnologías marco excelentes para resolver los problemas anteriores, por lo que todavía necesitamos aprender tecnologías marco. Las principales tecnologías SpringMVC en el desarrollo de proyectos incluyen Spring MVC, Spring, MyBatis, MyBatis Plus y Spring Java. Estas tecnologías marco son habilidades esenciales para un buen programador.

Es completamente posible utilizar Javaweb para el desarrollo a nivel empresarial, pero la eficiencia del desarrollo es relativamente baja, por lo que las operaciones lógicas comunes se encapsulan para formar un marco, por lo que el marco es una habilidad de nivel básico para las empresas. desarrollo.

Hay varios marcos principales en los tableros de marcos populares: Spring Framework, que ocupa una posición dominante y su ecosistema involucra una variedad de soluciones; MyBatis Framework, que utiliza ideas ORM para operar bases de datos.

Después de estudiar esta sección, podrá desarrollar proyectos reales a nivel empresarial y los proyectos que cree estarán más en línea con los requisitos de la empresa.

Árbol tecnológico

8. Arquitectura distribuida

Se requiere tecnología de microservicio distribuido. A través del estudio de este curso, podrá adquirir las capacidades de la arquitectura SOA y la arquitectura de microservicios a gran escala, y dominar las tecnologías necesarias y la experiencia práctica para proyectos de microservicios a gran escala. En el proceso de desarrollo empresarial, el volumen de negocios y los usuarios aumentan gradualmente.

Para garantizar la disponibilidad del sistema, los sistemas son cada vez más complejos y el número de personal de investigación y desarrollo aumenta. Es difícil para todos mantener un sistema complejo y, a menudo, parte del contenido se modifica, lo que afecta a todo el sistema. Por lo tanto, necesitamos actualizar la arquitectura del sistema.

Con el desarrollo de Internet, es necesario mejorar la complejidad de la experiencia empresarial y del usuario, por lo que surgió la arquitectura distribuida. Esta sección explica principalmente soluciones relacionadas con la arquitectura distribuida.

Incluye principalmente los siguientes módulos: DubboSpringBoot, un marco de llamada y publicación de servicios RPC de alto rendimiento, que simplifica el proceso inicial de construcción y desarrollo de aplicaciones Spring Cloud, que es un centro de registro, configuración y carga de descubrimiento de servicios; Equilibrio y disyuntor, monitoreo de datos y otra recopilación ordenada de una serie de marcos.

Esta parte del estudio puede equiparlo con la tecnología necesaria y la experiencia práctica para el desarrollo de proyectos de Internet a gran escala y sentar las bases para ingresar a BATJ.

Árbol Tecnológico

9. Middleware de Servidor

En la arquitectura de sistemas distribuidos, la comunicación asincrónica entre servicios es uno de los requisitos más comunes, y precisamente nació el middleware de mensajes. para resolver tales problemas. Actualmente, el middleware de mensajes principal en el mercado incluye RabbitMQ, RocketMQ y Kafka. Nos basaremos en estos tres middlewares de mensajes para implementar la comunicación asincrónica en proyectos distribuidos. Después de aprenderlos, podrá implementar la comunicación asincrónica de proyectos distribuidos, la recopilación de registros de aplicaciones distribuidas, las transacciones distribuidas, etc.

En proyectos de Internet a gran escala, el middleware es necesario. El middleware de servicio puede ayudar a que cada submódulo logre funciones como acceso mutuo, intercambio de mensajes o acceso unificado. Incluyendo middleware de marco de servicio remoto, como el marco RPC Dubbo de Apache, etc. Middleware de cola de mensajes, como: middleware distribuido de código abierto de Alibaba RocketMQ, servicio de transmisión y publicación de mensajes de alto rendimiento Kafka, etc.

El middleware de servicios de aprendizaje es una tecnología necesaria para los ingenieros y arquitectos JavaEE intermedios.

Árbol de tecnología

Tecnología de servidor X.

Una vez desarrollados los programas, los empaquetamos y los implementamos para ejecutarlos en el servidor, por lo que necesitamos aprender lo común. tecnologías de servidor. Los servidores comunes incluyen Linux y Windows Server. Linux tiene un alto rendimiento y actualmente es la corriente principal. El proyecto que escribimos requiere un software para ejecutarse, que se llama contenedor web. Necesitamos instalar un contenedor web en el servidor para publicar el proyecto. Actualmente, los principales contenedores web incluyen tomcat, jetty, nginx y undertow.

Ya sea que se desarrolle usando Javaweb nativo o usando un marco, el proyecto debe lanzarse al mundo exterior para que personas de todo el mundo puedan acceder a él. La placa del servidor puede resolver este problema, por lo que el servidor. una tecnología necesaria para el lanzamiento del proyecto. Esta sección incluye aprendizaje sobre virtualización y servidores de aplicaciones web, e incluye principalmente los siguientes módulos: Vmware, software de máquina virtual; LinuxNginx, un sistema dedicado a servidores, un servidor proxy inverso para la implementación de clústeres, Tomcat, el servidor principal utilizado para el lanzamiento del proyecto;

Después de estudiar esta sección, podemos publicar el proyecto desarrollado en el servidor y dejar que tus amigos accedan a él de forma remota. ¡Súper genial!

Árbol Tecnológico

XI. Tecnología de contenedores

Con el sistema operativo del servidor y los contenedores web, podemos implementar un sitio independiente. En un sistema distribuido, si se utiliza un método de implementación de una sola máquina, se invertirá mucha mano de obra y la probabilidad de errores es alta. Por lo tanto, la tecnología de virtualización de servidores como Docker también se considera una tecnología esencial en la actualidad. Docker puede ayudar a los operadores a lograr una implementación y un mantenimiento por lotes rápidos. Utilice Kubernetes para implementación automatizada, escalabilidad masiva y gestión de contenedores de aplicaciones.

La tecnología de contenedores ha sido un tema candente en los últimos dos años. El entorno se puede encapsular mediante tecnología de contenedorización, lo que facilita el trasplante y mejora en gran medida la eficiencia del desarrollo. Esta sección cubre la tecnología de contenedorización Docker y su motor de gestión de plataformas Kubernetes.

Docker es un motor contenedor de aplicaciones de código abierto que puede empaquetar aplicaciones y paquetes de dependencias en una imagen portátil y luego publicarla en cualquier máquina Linux o Windows popular, que también se puede virtualizar. Kubernetes es de código abierto y se utiliza para administrar aplicaciones en contenedores en múltiples hosts en una plataforma en la nube. El objetivo de Kubernetes es hacer que la implementación de aplicaciones en contenedores sea simple y eficiente. Al estudiar esta sección, puede utilizar las tecnologías anteriores para crear rápidamente un entorno, ahorrar tiempo de desarrollo y mejorar la eficiencia del desarrollo.

Árbol Tecnológico

Doce. Soluciones empresariales

El desarrollo empresarial encontrará algunos escenarios empresariales comunes, como motores de búsqueda, almacenamiento en caché, programación de tareas, flujo de trabajo, exportación de informes, gestión de registros, supervisión del sistema, etc. , estas soluciones comunes también tienen disponible un excelente middleware gratuito y de código abierto. Como ElasticSearch, Lucene, Solr, redis, MongoDB, slf4J, ECharts, Quartz, POI, etc. El plan de negocios y las dificultades técnicas del curso de soluciones comerciales resuelven más de 90 puntos débiles y dificultades en el desarrollo empresarial.

Aunque ya contamos con tecnologías básicas y avanzadas, si queremos combinarlas con el desarrollo empresarial, todavía necesitamos explorar soluciones comerciales para proyectos reales. Esta sección recopila soluciones reales en escenarios empresariales reales. Las soluciones comerciales comunes incluyen: soluciones de escenarios comerciales de búsqueda, soluciones de escenarios de recopilación y análisis de registros, soluciones de escenarios de motor de flujo de trabajo, soluciones de escenarios de programación de tareas, soluciones de escenarios de plataforma de desarrollo de mapas, soluciones de escenarios de plataforma abierta de pago, soluciones de escenarios de visualización de gráficos. Al analizar el negocio real para aprender este conjunto de tecnologías de solución, puede alcanzar el nivel de ingeniero intermedio o incluso superior.

Árbol Tecnológico