Great article. I am currently at a stage where I am comfortable with Collections and Exceptions. However, I have not experimented with any JAVA frameworks. I come from Python background and as a result I have worked for good amount of time on Django. Now, I understand that Spring is the equivalent of Django in Java environment, but whenever I research on how to get started with Spring, I find servlets as a requirement. My understanding is that servlets is the old way to do web related programming and Spring happens to be built on top of servlets.
So, my question is, to be an able web programmer( mostly for the backend ) in 2019, is it recommended to start with Spring and other related technologies like - Hibernate, Spring boot etc. or should I take a course of Servlets and related tech - JPA etc before. At work we use Olingo for creating REST services and turns out Olingo has Spring compatibility. So considering all these, is it wise to devote time to learn servlets etc or Spring would suffice ?
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.
1) Go for Spring Boot and then cycle through every Spring related technology.
2) Learn some microframeworks (the equivalent of Flask) I have a post about some of my favorites here
Check out this Spring course: youtube.com/playlist?list=PLqq-6Pq...
I highly recommend it, it goes straight to the point.
You might want to check out Grails framework. Easy to get started and uses Spring under the hood.
May the force and Lord be with me!
Really a great article, the way you have segregated the topics it's very helpful. Currently I am working as a Java developer and I am not expert in same for now. I am planning to move to Python but since I have already invested 4 years in Java so I am getting confused.
These days I am learning from scratch from GeeksforGeeks. Please suggest from where and how I should get all my Java concepts cleared so I can crack an interview.
Hi John, this is a very good write-up for every beginner. I am a student and have once learned Java using the Head First series and later dropped it. Unfortunately for me I never enjoyed the power of Java.
Today, I am back learning through Java The Complete Reference.
I will like you to help me point out some open source projects or project ideas I can use to deepen my skills.
Thank you very much for this.
Thanks for the resources!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.