RUTA QUE EL DESARROLLADOR JAVA DEBE CONOCER

RoadMap para desarrolladores de Java 2021 

 

No es necesario que comprenda todo en esta hoja de ruta para convertirse en un desarrollador estrella de rock. De hecho, ni siquiera es necesario que los tome tan en serio si no lo desea. En su lugar, utilice estos mapas como punto de partida para guiar su aprendizaje sobre la marcha.

6 Habilidad obligatoria para cualquier desarrollador de Java

Antes de pasar a cosas específicas de Java, repasemos algunas habilidades obligatorias que se requieren tanto para el desarrollador principal de Java como para los desarrolladores de Java de pila completa. Estas son las habilidades esenciales para cualquier programador o desarrollador de software y le servirán durante mucho tiempo. 

1. Git y Github

Uno de los sistemas de control de versiones más populares. Simplemente ya no es posible vivir sin Git.

2. Linux

No solo un desarrollador web, sino para cualquier programador, la línea de comandos de Linux es muy, muy importante, y le recomiendo encarecidamente que dedique algún tiempo a aprenderlos.

3. Estructuras de datos y algoritmos

Estos son los componentes básicos de cualquier programa, y un buen conocimiento de los algoritmos y la estructura de datos es vital para su próximo trabajo o para hacerlo bien en su situación actual.

Al menos debe estar familiarizado con las estructuras de datos esenciales como una matriz, una lista vinculada, una tabla hash, un árbol binario, una cola, una pila y un gráfico.

Si conoce estructuras de datos avanzadas como Trie, B-Tree, AVL, entonces está muy bien. Pero, si no lo sabe.

4. HTTP / HTTPS

El protocolo HTTP es la columna vertebral de la web, y un buen conocimiento de HTTP y HTTPS es obligatorio para un desarrollador web.

5. Fundamentos de la informática

Si está creando aplicaciones globales que muestran información en muchos idiomas diferentes en todo el mundo, debe tener un buen conocimiento de las codificaciones de caracteres. Básicamente, le dice a su navegador cómo mostrar sus datos.

6. Patrones de diseño

No hay duda de que todo programador debería conocer Git y Github, ya que son el estándar en términos de control de versiones y repositorio de código. 

 

El RoadMap completo para desarrolladores de Java

Ahora, exploremos juntos esta hoja de ruta para desarrolladores de Java y descubramos qué herramientas, marcos, bibliotecas y API pueden aprender

1. Herramientas

La sección de herramientas está dividida en diferentes secciones. Primero, su IDE, que es su herramienta principal y puede hacer casi todo lo que solicitó, como compilar, ejecutar, depurar, perfilar, probar, comparar archivos y código, refactorizar y mucho más.

La segunda parte es la herramienta de construcción, que necesita para construir e implementar sus proyectos como Maven y Gradle . Cualquiera de estos sería suficiente. Acabo de enumerar ANT, pero eso es para proyectos heredados. Para todos los proyectos nuevos de Java, prefiera Maven o Gradle.

Y la tercera y más importante parte incluye contenedores como  Docker y Kubernetes , herramientas de CI / CD como Jenkins y TeamCity, y herramientas de automatización de infraestructura como Ansible.

Si está interesado en aprender sobre estas herramientas, aquí hay algunos cursos útiles para aprender a construir herramientas e IDE.

2. API de JDK

El siguiente aspecto importante que debe aprender son las API de JDK, que es muy, muy importante para cualquier desarrollador de Java. Esta es una sección bastante grande, y es por eso que está dividida en áreas centrales como el marco de colecciones de Java, Java Concurrency, Java IO y Java 8 API, exploremos cada una de ellas.

2.1 Marco de colecciones de Java

Esta es una de las API de Java más esenciales que todo desarrollador de Java debería aprender. Esta API proporciona implementaciones de estructura de datos estándar en listas enlazadas, conjuntos, pilas, colas, tablas hash, colas de prioridad y otros similares a los de Java.

Al menos debe conocer todos los objetos cotidianos como ArrayList , HashMap , HashSet ,  LinkedHashSet , TreeSet, etc. Cada uno de ellos tiene su propiedad diferente, como ArrayList es una matriz dinámica que puede crecer, HashMap es una implementación estándar de la tabla hash y puede utilizarse para almacenar pares clave-valor.

Del mismo modo, HashSet es una implementación establecida que no permite elementos duplicados.

2.2 Concurrencia de Java

Después de las colecciones de Java, la siguiente API más importante en Java se trata de multiproceso y concurrencia, y creo firmemente que si desea ser un desarrollador de Java competente, debe tener una comprensión y un dominio sólidos de la API de concurrencia de Java.

No solo debe tener una comprensión profunda de conceptos fundamentales como Thread, Runnable, Object Lock y Synchronization, sino que también debe estar familiarizado con conceptos como deadlock, livelock, condiciones de carrera y cómo lidiar con ellos.

También debe aprender sobre conceptos avanzados de Java, como sincronizadores agregados en Java 5 y versiones posteriores, me refiero a CyclicBarrier, CountDownLatch, Phaser y CompleteableFuture, etc., junto con Futures y cómo realizar la operación asincrónica en Java.

2.3 Java IO

He entrevistado a más de 100 programadores Java y he notado un patrón; todos tienen muy poco conocimiento de las API de IO y NIO de Java en comparación con las colecciones de Java y la API de subprocesos múltiples de Java. Puedo entender que muchas personas pasan mucho tiempo aprendiendo esas dos API, pero no puedes dejar atrás estas API críticas.

Si tiene que codificar una aplicación Java central del mundo real, deberá usar clases como File, InputStream , OutputStream , Reader, Writer del paquete java.io, que es el núcleo de la API de IO de Java. Del mismo modo, también necesita conocer ByteBuffer , FileChannel , Selector y otras clases críticas de  java.nio API, si desea escribir una aplicación basada en socket.

Desafortunadamente, no hay muchos recursos dedicados a la enseñanza de Java IO y Java NIO API, pero The Complete Java Masterclass es un gran recurso para dominar esta API. Encontrará muchos conceptos esenciales de esta API en este curso.

 

2.4 Funciones de Java 8

Ahora, la siguiente y otra API necesaria, un programador de Java, debe aprender son las características de Java 8, que ha cambiado por completo la forma en que se codifica y se programa Java en la actualidad. Para convertirse en desarrollador de Java en 2021, debe saber cómo utilizar una expresión Lambda, una API de transmisión, clases opcionales y una nueva API de fecha y hora.

Sin conocer estas API, sería muy difícil escribir una aplicación Java en 2021. La mayor parte de la biblioteca también deja de admitir versiones anteriores a Java 8, lo que significa que debe aprender las funciones de Java 8 ahora que en el futuro. Ya han pasado 5 años desde que se lanzó Java 8, por lo que literalmente no te queda ninguna excusa.

Cuando se trata de aprender las características de Java 8, hay muchos recursos excelentes disponibles en el mercado. Aún así, si ya conoce Java.

Si bien las características de Java 8 son esenciales para los desarrolladores de Core Java, si puede, aprenda todas las demás características nuevas introducidas desde Java 9 a Java 15 como módulos, var para variables locales, métodos de fábrica estáticos para colecciones, bloque de texto, cadena en conmutador, registros , Clases selladas y muchos más. 

3. Marcos

Lo mejor de Java es que tiene un ecosistema vibrante, lo que significa que hay muchos marcos y bibliotecas para casi cualquier cosa. Por lo general, no sugiero que un desarrollador de Java aprenda un marco hasta que necesite usarlo en su proyecto. Aún así, hay algunos marcos y bibliotecas, que creo que todos los desarrolladores de Java deberían conocer, como Spring, Spring Boot, Hibernate, Log4j, JUnit, etc.

3. 1 marco de primavera

Si desea convertirse en desarrollador de Java en 2021, le recomiendo encarecidamente que primero aprenda Spring Framework. Este es uno de los marcos de Java más populares y, literalmente, casi todas las aplicaciones de Java en las que he trabajado en los últimos 5 años utilizan este marco.

Spring Framework fomenta la escritura de código limpio, que es más fácil de probar y mantener al proporcionarle características como Inyección de dependencia e Inversión de control. También tiene una API rica para la mayoría de las tareas diarias, y es por eso que todos los desarrolladores de Java deben aprender el marco de Spring.

 

3.2 Hibernar

El segundo marco que recomiendo a todos los desarrolladores de Java que aprendan es Hibernate, que se basa en JPA (API de persistencia de Java). Para ser precisos, Hibernate vino antes que JPA, pero debido a que JPA es una API estándar para implementar la capa de persistencia en Java, Hibernate la implementa.

Ahora, ¿por qué debería aprender a Hibernate? Bueno, porque la mayoría de las aplicaciones Java con las que trabajará interactuarán con la base de datos, y es insoportable lidiar con la base de datos en Java usando JDBC y sin un marco adecuado como Hibernate.

Proporciona algunas de las características esenciales como el almacenamiento en caché y las transacciones listas para usar, lo que significa que tiene más tiempo para concentrarse en la lógica de su aplicación y luego implementar el almacenamiento en caché en su aplicación. Esto mejora seriamente el rendimiento de la aplicación Java y, hasta ahora, mi razón más importante para usar Hibernate.

 

3.3 SPRING BOOT

Este es otro marco que recomiendo a todos los desarrolladores de Java que aprendan en 2021 y en el futuro. Spring Boot tomó la filosofía de simplificación de Spring y facilitó el trabajo con Spring. Al igual que Spring facilita la creación de una aplicación Java, Spring Boot facilita la creación de una aplicación Java basada en Spring.

Las características como la configuración automática eliminan la mayor parte del dolor asociado con la configuración de la aplicación Spring. De manera similar, las características de POM de inicio agruparon la dependencia de uso común en POM reutilizables simples.

 

3.4 MicroProfile, Micronaut y Quarkus

Si bien aprender Spring Boot y Spring Cloud es suficiente para desarrollar microservicios en Java, hay un par de marcos más avanzados que puede explorar, como Eclipse Microprofile, Micronaut y Quarkus.

3.4.1 Microperfil de Eclipse

Es una iniciativa que tiene como objetivo optimizar Enterprise Java para la arquitectura de microservicios. Está impulsado por Eclipse, una de las organizaciones líderes de Java y la compañía detrás del popular Eclipse IDE. El objetivo de Eclipse of MicroProfile es definir API estándar para crear microservicios y entregar aplicaciones portátiles en múltiples tiempos de ejecución de MicroProfile. La versión actual de Eclipse Microprofile es 3.2, y es un marco de trabajo Java útil para aprender en 2021.

 
 

3.4.3 Micronaut

Este es otro marco de Java que puede aprender en 2021. Micronaut es un marco moderno, basado en JVM y de pila completa para crear aplicaciones de microservicio y sin servidor modulares y fácilmente probables. Es un marco políglota y te permite crear una aplicación usando Java, Kotlin o Groovy. Algunos de los puntos clave de conversación de Micronaut son el tiempo de inicio reducido, el rendimiento ultrarrápido y la huella de memoria mínima.

 
3.4.3 Quarkus

Quarkus es una pila Java nativa de Kubernetes diseñada para OpenJDK HotSpot y GraalVM, elaborada a partir de las mejores bibliotecas y estándares de Java. Quarkus adapta su aplicación para GraalVM y HotSpot para obtener un tiempo de arranque increíblemente rápido y una memoria RSS increíblemente baja (¡no solo el tamaño del montón!).

También proporciona escalabilidad instantánea y utilización de memoria de alta densidad en plataformas de orquestación de contenedores como Kubernetes mediante una técnica llamada arranque en tiempo de compilación. También puede utilizar tanto el código imperativo familiar como el estilo reactivo sin bloqueo al desarrollar aplicaciones para Quarkus.

En resumen, una de las mejores plataformas para que los desarrolladores de Java creen una aplicación y algo que valga la pena aprender en 2021.

 

4. Pruebas

Las pruebas son una habilidad esencial para cualquier desarrollador de Java, particularmente las pruebas unitarias, las pruebas de integración y las pruebas de automatización. Como mínimo, todo desarrollador de Java debe estar familiarizado con JUnit y Mockito , dos de las bibliotecas de prueba unitaria y Mock más populares.

Si conoce estos dos y sabe cómo usarlos para crear una prueba unitaria de manera efectiva, será un desarrollador de Java mucho mejor que sin ellos.

También existen bibliotecas más avanzadas como Cucumber para pruebas impulsadas por empresas, Robot Framework para pruebas de integración, pero no hay sustituto para JUnit, siempre lo necesitará.

Cuando se trata de una biblioteca simulada, tiene un par de opciones como PowerMock, Mockito y EasyMock. Aún así, le sugiero que aprenda Mockito porque es una biblioteca enorme, y también muchos desarrolladores y empresas de Java lo están haciendo. Poco a poco se está convirtiendo en la biblioteca estándar para crear objetos simulados en Java.

5. Bibliotecas de utilidades

El verdadero poder de Java radica en su vibrante ecosistema de bibliotecas de código abierto. Encontrará bibliotecas para hacer casi cualquier cosa en Java, desde registro hasta aprendizaje automático, desde enviar una solicitud HTTP hasta analizar JSON, y mucho más.

Aparte de eso, Java también tiene la suerte de tener bibliotecas de utilidades como Apache Commons y Google Guava, estas dos bibliotecas complementan de manera efectiva las bibliotecas JDK. También he compartido una lista de 20 API y bibliotecas de Java para desarrolladores de Java.

Le sugiero que revise esa lista, es probable que ya tenga la mitad de ellos, pero si no los aprende, son muy, muy útiles y lo ayudan a escribir mejores programas Java y entregarlos más rápido.

Si se trata de aprender esta y actualizar de manera constante los conocimientos en Java nada mejor que los cursos y paquetes de CJava perú así como la adquisición de cualquiera de sus membresías que te mantendrán a la par tecnológica en el transcurso de los años.
Consulta cualquiera de nuestros cursos en : https://57g.987.myftpupload.com/cursos/