DEV Community

Discussion on: What you should learn to become a Master Yoda in Java

Collapse
 
selawsky profile image
John Selawsky

Hi,

It is not the best idea to read pure servlets specs, I presume.

However, you really need to be familiar with this technology, because the Spring (MVC) uses servlets beneath the hood and the same story with databases. It is difficult to find a project that doesn't use databases.

The simplest option is a relational database and working with it through JDBC. Every ORM framework use this, but it doesn’t mean you need to write your own templates code, close connections, write finally blocks (and catch exceptions in them again). You can google a request such as "top java frameworks 2019" or something like that.

If we mean Java not only as a language for the backend of apps, but also as the skills that developer needs, let’s highlight the following directions: architecture (monolith, SOA, microservices), application build (Maven, Gradle, ...) and deployment. It depends on architecture. We can use Tomcat for deploying, writing Compose files for Docker and a few dozen variations of working with the database (something from ORM: Hibernate, MyBatis, Spring Data JPA, ...), design and work with API (REST, gRPC), security (Spring Security) testing (JUnit, TestNG) - unit & integration.

So… What is the best for you? Some people like watching videos on youtube, the others prefer to read reference documentation. I am an apologist of practice. As you can see from the list of technologies above, Spring ecosystem offers solutions in many ways, so I would recommend starting with Spring.

I highly recommend this resource: spring.io/guides/. There you can find some small examples of code with explanations. So, download the template project from github, follow the instructions and explanations, check that output is the same as in the reference implementation. Unfortunately, I can say nothing of "Spring is the equivalent of Django", because I am not a Python guy. To sum up, you need to understand the basics, and be able to use modern technologies that are built on these basics. So, don’t waste your time just reading specifications.