Todo programador de Java debe tener una comprensión básica del desarrollo de software. Así que echemos un vistazo a lo que se considera "básico".
1. Algoritmos básicos
Lo primero que debe abordar al comenzar a aprender programación (no solo Java) es comprender los conceptos básicos. Por ejemplo, algoritmos.
Hay infinidad de ellos, y no deberías matar años enteros de tu vida tratando de aprender tantos algoritmos como sea posible: la mayoría de ellos no te serán útiles. Puede obtener el mínimo necesario de conocimiento del libro "Algoritmos de Grokking". Esto es suficiente para empezar, pero si quieres, puedes aprender del libro "Structures and Algorithms" o "Algorithms in Java" de Robert Sedgewick y Kevin Wayne.
2. Sintaxis Java
Después de aprender los conceptos básicos de los algoritmos, debemos aprender la sintaxis de Java. Después de todo, estás estudiando para convertirte en programador de Java, ¿verdad? El curso CodeGym es perfecto para esto.
A medida que realice innumerables tareas, tendrá en sus manos la sintaxis de Java y luego, sin dudarlo mucho, escribirá/leerá código Java como si fuera su idioma nativo.
Más allá de la práctica, también debe observar la teoría para comprender lo que está haciendo. Para hacer esto, puedes leer libros. Por ejemplo, uno de los siguientes:
- "Jefe primero Java",
- "Java para Dummies" de Barry Bird;
- "Java: una guía para principiantes" de Herbert Schildt.
Después de leer estos libros, puede pasar a libros más difíciles:
- "Pensando en Java", Bruce Eckel;
- "Java efectivo" de Joshua Bloch;
- "Java: la referencia completa" de Herbert Schildt.
Los últimos tres libros no son de lectura fácil para los principiantes, pero proporcionan una base sólida en la teoría de Java.
3. Patrones de diseño
Los patrones de diseño son ciertos patrones repetibles que resuelven problemas en contextos frecuentes. Incluyen patrones básicos y sencillos que todo programador que se precie debería conocer. Para comprender este tema, tome el libro "Head First Design Patterns".
Explica los patrones básicos de diseño de una manera accesible. Pero el libro habla mucho sobre Java, así que cuando consumas este libro también necesitarás fluidez en este lenguaje de programación.
Para una inmersión más profunda en los patrones, también puede leer "Patrones de diseño: elementos de software orientado a objetos reutilizables" de Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Una vez que haya estudiado este tema, comenzará a ver patrones prácticamente en todas partes de su código.
Preste atención a esto, especialmente a los patrones usados en Spring, ya que esta es una pregunta de entrevista popular.
4. Paradigmas de programación. Limpieza del código
Además de los patrones de diseño estándar, hay varios principios y paradigmas a tener en cuenta (SOLID, GRASP).
También necesita mantener su código limpio y legible. Para todo lo que necesita saber sobre este tema, consulte Código limpio de Robert Martin o consulte "Código completo" de Steve McConnell.
5. Sql
Nuestro siguiente paso es estudiar un lenguaje para bases de datos relacionales: SQL.
Las bases de datos son donde se almacena la información (datos) que utiliza una aplicación web. Una base de datos consta de varias tablas (la libreta de direcciones de su teléfono es un ejemplo sencillo).
Los desarrolladores de Java son responsables no solo de la aplicación Java, sino también de la base de datos con la que interactúa y donde almacena sus datos.
En las bases de datos relacionales (que son el tipo más común), toda interacción ocurre a través de un lenguaje especial llamado Lenguaje de consulta estructurado o SQL.
Para entender este tema, todo lo que necesita hacer es leer uno de estos libros:
- "Aprender SQL" de Alan Beaulieu;
- "SQL" por Chris Fehily;
- "Head First SQL" por Lynn Beighley.
Pero la práctica sin teoría no es suficiente, ¿verdad? Y en las entrevistas puede esperar una prueba de su conocimiento de SQL. Los entrevistadores a menudo (casi siempre) asignan una o dos tareas que implican escribir una consulta SQL.
Como resultado, es muy importante perfeccionar sus habilidades prácticas de SQL para mostrarse bien.
6. MySQL/PostgreSQL
Después de aprender el lenguaje SQL, debe familiarizarse con una implementación de base de datos específica. Dependiendo de la base de datos, algunos comandos pueden variar drásticamente. Y hay diferencias bastante notables en las capacidades de la base de datos.
Las bases de datos relacionales más comunes son MySQL y PostgreSQL. MySQL es mucho más simple, pero PostgreSQL tiene capacidades mucho más amplias. Estar familiarizado con al menos uno de ellos es suficiente para comenzar.
Puede estudiar implementaciones de bases de datos si usa sus habilidades de búsqueda en Google: encuentre artículos y tutoriales relevantes en YouTube. Deberá cultivar su capacidad para elaborar consultas de búsqueda adecuadas para las preguntas que necesita responder. Después de todo, un programador es alguien con cinturón negro en Google.
7. Experto/Gradle
Debe aprender el marco Gradle o Maven. Son para construir proyectos, y para usted, Java ahora no es solo para tareas que involucran un par de clases, sino también un lenguaje para escribir aplicaciones completas.
Debe comprender cómo compilar un proyecto, cuáles son las etapas de compilación, cómo cargar las bibliotecas externas necesarias con código de terceros y mucho más.
A pesar de que Gradle es más nuevo y más conciso, Maven se usa en la mayoría de los casos. Por lo tanto, preste especial atención al ciclo de vida de compilación de Maven.
8. Git
Git es un sistema de control de versiones distribuido. Esta tecnología permite a los desarrolladores colaborar en una sola aplicación sin interferir entre sí.
Por supuesto, existen otros sistemas de control de versiones. Por ejemplo, Subversión. Pero Git se usa más ampliamente y debe poder trabajar con él. Además de los muchos artículos sobre Git que puede encontrar en línea, YouTube tiene videos más que suficientes para ayudarlo a dominar esta tecnología, paso a paso.
Al principio, es mejor usar Git desde la línea de comandos en lugar de algún tipo de implementación de GUI, porque se verá obligado a hacer todo usando comandos. En las entrevistas, a la gente le gusta preguntar acerca de algunos comandos de Git, por lo que le recomiendo que los escriba y los guarde en un lugar cercano.
9. JDBC
Esta tecnología conecta su aplicación Java y una base de datos relacional. Para los conceptos básicos, lea cualquier tutorial de JDBC.
Hay una gran cantidad de artículos que explican JDBC y brindan ejemplos rudimentarios, aunque ya nadie usa JDBC desnudo directamente.
10. JPA. Hibernar
JPA es una forma de establecer una conexión entre una aplicación Java y una base de datos, al igual que JDBC. Pero al mismo tiempo, JPA es una tecnología de nivel superior y, por lo tanto, más fácil de usar.
Pero JPA es solo una especificación, no una implementación. Necesita una implementación concreta. Muchos de ellos existen, pero el más cercano a los ideales de JPA, el más popular y el más desarrollado es Hibernate.
Te encontrarás con esta tecnología más de una vez en tu carrera de desarrollo de software. Entonces, además de familiarizarse con esta tecnología leyendo artículos, puede valer la pena pensar en leer un libro, por ejemplo, "API de persistencia de Java".
11. Primavera
Cuando te conviertes en desarrollador de Java, Spring ya no es solo una palabra para ti. Conocer este marco es ahora tan importante como conocer la sintaxis de Java. Se podría decir que Spring tiene un hermano, es decir, Java EE. Pero Java EE está desactualizado y ya no se usa en nuevos proyectos.
La gran mayoría de los desarrolladores de Java ahora son desarrolladores de Java-Spring, por lo que es imprescindible conocer algunas tecnologías básicas de Spring.
Spring no es solo un marco, sino un marco completo de marcos:
Y esto es solo un subconjunto de los marcos que proporciona Spring. Para un principiante, conocer solo algunos de ellos es suficiente:
Núcleo de resorte
Debería poner esto en primer lugar, para que pueda entender qué es Spring: todo sobre contenedores Spring, beans, DI, IoC, etc. Para entender la filosofía misma de usar Spring, por así decirlo. Su estudio adicional de los marcos Spring se basará en esta base. Tal vez debería crear su propia pequeña aplicación en la que pueda incorporar gradualmente todas las tecnologías recién aprendidas.
Primavera JDBC
Anteriormente mencionamos JDBC como una tecnología para crear una conexión de base de datos. En general, el uso "desnudo" de la tecnología ya no se puede encontrar en los proyectos, por lo que puede concluir que no es necesario aprender JDBC. Esta no es la actitud correcta.
Al explorar el uso simple (directo) de JDBC, puede ver la tecnología en un nivel más bajo y comprender sus problemas y deficiencias. Luego, cuando comience a aprender Spring JDBC, se dará cuenta de qué es exactamente lo que mejora, optimiza y oculta este marco.
Hibernación de primavera
De manera análoga a la situación con JDBC desnudo, este marco aprovecha una tecnología existente, en este caso, Hibernate. Si considera usar Hibernate sin Spring, definitivamente se dará cuenta de los beneficios que ofrece Spring Hibernate.
Primavera JPA
Anteriormente hablamos sobre JPA y mencionamos que es solo una especificación, aunque tiene varias implementaciones. Entre estas implementaciones, Hibernate se acerca más al ideal.
Spring tiene su propia implementación ideal de JPA que usa Hibernate bajo el capó. Es lo más cercano posible al ideal de la especificación JPA.
Se llama Primavera JPA. En una palabra, simplifica enormemente el acceso a la base de datos.
Solo puede aprender JPA sin aprender JDBC, Hibernate, Spring JDBC o Spring Hibernate. Pero si adopta este enfoque, su conocimiento sobre cómo conectarse a una base de datos será muy superficial.
Primavera MVC
Esta tecnología hace posible mostrar la interfaz web de nuestra aplicación a los usuarios y facilitar la comunicación entre la interfaz y el resto de la aplicación. La tecnología también se puede usar sin pantalla cuando tiene una aplicación que es responsable de manejar la pantalla y está interactuando con la aplicación usando tecnología RESTful.
Para absorber mejor la información sobre Spring, además de artículos y conferencias de YouTube, puede leer varios libros. Por ejemplo, "Primavera en acción" de Craig Walls. Otro gran libro sobre Spring es "Spring 5 for the Professionals". Es más denso. Más como una referencia que es más valiosa para tener a mano que para leer de cabo a rabo.
Bota de primavera
Esta tecnología simplifica enormemente el uso de Spring. No lo puse al final de la lista por capricho. De hecho, esconde mucho debajo del capó, y para alguien que no esté familiarizado con el Spring vainilla, muchos puntos pueden ser confusos o incomprensibles.
Primero, para una mejor comprensión de cómo funcionan los marcos Spring, debe usar Spring normal y luego obtener todos los beneficios superiores de usar Spring Boot.
También debe familiarizarse con Spring Security y Spring AOP. Pero a diferencia de las tecnologías anteriores, todavía no se necesita un conocimiento profundo de estas dos.
Esta tecnología no es para principiantes. En las entrevistas, a los desarrolladores junior no se les preguntará sobre ellos (excepto una pregunta superficial, tal vez). Lea una descripción general de lo que son estas tecnologías y los principios detrás de su trabajo.
Cuanto más sepas, más rápido encontrarás tu primer trabajo.
GO TO FULL VERSION