En Backend, hoy en día, tenemos los servidores de aplicaciones que reciben todas las peticiones desde el lado cliente (frontend), realizan las gestiones oportunas, hacen las consultas a las BBDD y devuelven la información al cliene, por ponerlo de manera muy simple. Para conseguir desarrollar las aplicaciones que hacen todo lo anterior podemos utilizar lenguajes de programación como Java, C# y Phyton. Me encanta C#, pero me he especializado en Java, así que explicaré la parte de Backend utilizando este lenguaje. Eso sí, aviso que el mundo de Java es infinito y no termina nunca. Siempre aparecen nuevos frameworks que aprender, nuevas formas de trabajar, nuevas tecnologías, etc. Por ejemplo, pongamos que queréis dedicaros a esto (en la parte de Backend) y decidís empezar con Java. Esto sería lo que tendríais que aprender:
-Java SE. Esto es el lenguaje Java puro
y duro. Aquí aprendes a programar de forma estructurada y orientada a objetos:
sentencias de control, objetos, herencia, polimorfismo, colecciones, genéricos,
programación funcional, etc. No os asustéis por estos términos, ya que los
iréis aprendiendo uno por uno y con muchos ejercicios.
Nota: ya hace un tiempo que las
aplicaciones de escritorio no se llevan mucho, así que si tenéis prisa por
aprender podéis saltar la parte de interfaces gráficas: AWT, Swing, Java FX.
Personalmente, creo que se debe aprender todo y creando estas aplicaciones se
aprende sobre el patrón MVC, pero esto también se enseña en Java EE.
-Java EE. Aquí es cuando aplicas lo
aprendido con Java SE para empezar a programar aplicaciones web. Básicamente,
esto es lo más importante. Lo anterior es como un entremés para poder empezar
esto (como decía, es muy denso). Aquí aprenderéis a trabajar con tecnologías
como JDBC, JSP (Java server pages) y Servlets, patrón de diseño MVC, EJB, JPA
(Java persistence api), Java Server Faces, patrón de diseño DAO, Web Services, etc.
-Frameworks. Los frameworks externos a
Java implican nuevas formas de trabajo y facilitan de una manera enorme el
trabajo a la hora de programar. Algunos de estos frameworks son Spring, Struts,
Hibernate, Vaadin, etc.
Ahora mismo, el mejor tutorial que
puedo recomendaros que toque todo esto es
Universidad Java de Udemy
https://www.udemy.com/course/universidad-java-especialista-en-java-desde-cero-a-master/
Lo he cursado entero y es uno de los
mejores. Si bien es cierto que el profesor respondía a todo al principio, a
partir de un momento dejó de hacerlo. De todos modos, los compañeros también ayudan
y no paran de añadir contenido, así que está muy bien. Además, incluye HTML5,
CSS, Bootstrap, Angular, etc. Siempre se puede adquirir de oferta por 10-12€ y
es una de las mejores inversiones.
Otros de los cursos que merecen la
pena, y mucho, son los de píldoras informáticas:
Java SE
https://www.pildorasinformaticas.es/course-cat/java_se/
Java EE
https://www.pildorasinformaticas.es/course-cat/java-ee/
Curso Spring
https://www.pildorasinformaticas.es/course/curso-spring/
Consejos: en la mayoría de ofertas de
trabajo piden haber trabajado con JSP o Spring. Lógicamente, si trabajas con
JSP debes haber trabajado con Servlets. Si has aprendido a trabajar con
Servlets no te costará nada aprender Spring MVC. Llegados a este punto, es
importante que aclare qué es Spring. Es un framework enorme con una cantidad de
características abrumadora:
-Spring Boot, Spring MVC, Spring Cloud,
Spring Security, Spring Batch, etc.
Lleva un tiempo aprender a usarlo, pero
es muy importante hacerlo. Hoy en día no paran de pedir programadores java con
conocimientos en Microservicios, contenedores y Amazon Web Services. Todo esto
se trabaja con Spring. Por suerte, si has estudiado Java con los VT que he
aconsejado antes, verás que Spring reduce el esfuerzo del programador al
mínimo. El framework lo hace casi todo él solito. La verdad es que es algo increíble.
Para trabajar con bases de datos se
suele utilizar JPA (oficial de Java) o Hibernate (muy parecido a JPA). Una vez
aprendes el primero no es nada difícil hacerse con el segundo. Hay muchas más
ofertas de trabajo pidiendo Hibernate, pero siempre encuentras alguna con JPA.
Ambos utilizan una API llamada Criteria para las búsquedas de datos complejas
(por ejemplo, peticiones con muchos campos: nombre, apellido, año, curso,
dirección, etc. o búsquedas de datos con muchos filtros).
En resumen, aprendes Java SE para poder
aprender Java EE, pero esto no es suficiente así que aprendes Spring e
Hibernate (que resulta más fácil porque ya sabes lo anterior). Como decía,
infinito xD.
En microservicios aprenderás a
implementar todo lo aprendido anteriormente, pero dividiendo la aplicación en
partes pequeñas (microservicios) y distribuyendo éstas en distintos servidores.
Aquí es cuando entran los contenedores (docker, kubernetes).
Amazon web services no deja de ser más de
lo mismo, sólo que en lugar de tener tú las máquinas en la oficina, es Amazon
quien las hospeda. Por explicarlo de forma muy simple, Amazon web services te
permite crear copias de máquinas con el software necesario de forma muy rápida
y cómoda. En nuestro caso instalaríamos servidores de aplicaciones o de bases
de datos en cada máquina. Cada servidor tendría un parte pequeña (microservicio)
que se comunica con las otras. Cada microservicio puede acceder a la base de
datos que quiera (una puede utilizar MySQL, otra MongoDB, PostgreSQL, etc). Del
mismo modo, cada microservicio puede estar programado en Java, C#, Phyton, etc.
y se comunican entre sí utilizando tecnologías estándar (como se ha usado
siempre XML o JSON).
Si te gusta programar el mundo de Java es maravilloso, pero llegar a aprenderlo casi todo (fijaros que no he profundizado en el framework Struts o Vaadin) lleva mucho tiempo y picar código continuamente.
No hay comentarios:
Publicar un comentario