Can You Learn Spring Boot without Prior Knowledge of the Spring Framework?
Recently, I was asked if one can learn to build applications with Spring Boot without having any knowledge and experience of the Spring Framework. Here's my answer to this question.
TLDR; Yes, I think you can start to learn Spring Boot. You'll pick up Spring on the go - as a by-product of actually building something. Will you now anything? Probably not, but who does?
I've been working with Spring for almost a decade now and I think the basic aren't that complicated at all. However, I know from the outside it seems like you must know a lot to get even productive. It is complex, like any other Framework or toolchain out there. However, I think many developers are approaching this from the wrong perspective.
The first thing is, most developers think they must truly understand ever nuts and bolts or a Framework before they can even start to build something. It's looking like Mt. Everest and many dive into a daunting task - they buy books or videos and torture themselves by reading thousands of pages or hours of videos.
And at the end, they got the "read the book" achievement but actually did not get any further. They still can't develop a tiny thing, like here a simple Spring Boot application.
Here are few fallacies at work.
First, whatever the topic is, no one does ever know anything. Not even the masters of whatever topic know everything. If you ask highly specialists, they still think they don't know enough about the topic.
Take Spring, you've got, Core, MVC, Security (several modules), Data, Data JPA, Cloud, and a bazillion more. Do you need to know all of them as a master to build a simple Web app?
Second, you don't need to be a master or have extensive knowledge for starting and learning. No one, not even the masters did start as masters. All started on the same ground. However, the master did practice and persist.
The common ground here is to understand what Spring actually does at its core. It's job is dependency injection and Inversion of control. Nothing more, nothing less. All the other modules are nice to have stuff. However, besides the concept, you don't even need to know how to do it in Spring as you will pick this up learning Spring Boot
Third, you don't need to be a master to get productive as a developer with a new Framework.
I met many developers who can develop web apps with MVC and Data JPA but have no clue of Security or Cloud. Yet, they still do their work effective.
Fourth, as massive consumption of resource does only do one thing. A buffer overflow in your mind and the typical result is that you start to procrastinate and after some time just move on.
That's indeed the biggest obstacle here. IMHO this massive consumption prevents any action. What works best for me is to have an actual achievable goal. It should be a small one like building a simple CRUD app on a topic you know; nothing fancy, just plain old CRUD. You don't even need a UI for that.
Important is that you have a simple goal and you actually build something.
Depending on your style, you can either now hack away and do research on the go like I usually do or layout a learning plan for you like John Sonmez does.
How could that look like now for a developer learning Spring Boot without having Spring knowledge?
- Check the concepts from above if you aren't familiar with them.
- Understand the basics of the Spring Container
- Understand what an application context is in Spring
- Build an easy application with it
- Move to a Spring Boot tutorial
Or just take my FREE Email course for Spring Beginners. You will learn the fundamental concepts of Spring Core and get ready for taking Boot.
It is possible to learn Spring Boot without Spring first.
However, it is up to you which path you go.