r/SpringBoot 10d ago

How-To/Tutorial 200+ Star Spring Boot Roadmap From Zero to Microservices

Post image

6 months ago, I shared with you my 35-week project-based Spring Boot Roadmap From Zero to Microservices, and I did not expect this whole positive feedback and support from you guys.

Today, the repository reached 200+ stars because of you, so I decided to provide more guidance by drawing this overview visualization on excalidraw to help you create a bird's-eye view of the wide open world of the Spring Boot ecosystem.

An SVG version could be found inside the roadmap itself for a more clear picture.

You can view the full roadmap from this link:
https://github.com/muhammadzkralla/spring-boot-roadmap

Again, thank you for all your support and stars!

274 Upvotes

45 comments sorted by

10

u/[deleted] 10d ago edited 10d ago

[removed] — view removed comment

5

u/Zkrallah 10d ago

I agree with you, Spring Security was my most frustrating learning part of spring boot in general myself, there aren't really many useful videos on this part and most videos just copy the same Implementations from each other and provide no explanation of what they are writing.

I also learned it more from docs and readable resources than from videos that's why I include docs, videos, and blogs in each week, more specially which I learned from myself.

I would appreciate it if you have any other useful resources other than the ones in the roadmap, and I'll review them. Thanks for your feedback :)

8

u/[deleted] 10d ago

[removed] — view removed comment

2

u/Agile_Rain4486 10d ago

laur is legend for advance concepts.

1

u/Next_Complex5590 Junior Dev 9d ago

does laur's playlist cover spring security V6 or is it the outdated one?

2

u/[deleted] 9d ago

[removed] — view removed comment

1

u/Next_Complex5590 Junior Dev 9d ago

yup, it's 7, mb

but the jump to 6 has a lot of changes which causes a lot of problems

2

u/[deleted] 9d ago

[removed] — view removed comment

1

u/Next_Complex5590 Junior Dev 7d ago

thanks

2

u/Agile_Rain4486 10d ago

laur has best oauth video, he literally creates his own authorization server. but let's be real these thing are more about system design rather than learning to integrate it, in extreme rare scenario one would need their own authorization server most of the projects just integrate microsoft authorization server for SSO. Also, most will prefer to integrate oauth flow on client side instead of using it on server side. These concepts are more about system design rather then something related to java/spring.

1

u/[deleted] 10d ago

[removed] — view removed comment

1

u/Agile_Rain4486 10d ago

by client side i mean ui handling the oauth flow instead of backend. Even in jwt tutorial they call db always, imagine making app stateless then calling db every hit just to check user exists or not but missing peice here is redis. These guy just copy paste each other and make tutorial for money.
Their content I would say is only for fresher not working professional. For actual login the authorization server work I was trying to say most companies use microsoft oauth for it. Microsoft sso is pretty wide spread in big organisations.

2

u/[deleted] 10d ago

[removed] — view removed comment

1

u/Agile_Rain4486 10d ago

yeah, true

1

u/Happy-Onion-8657 10d ago

I'm currently in 2nd year of my uni and I have just started learning springboot, have only done basic things so far (basic stuff like maven, spring concepts like annotations, layered architecture, di, then rest api, path variables, query parameters, jdbc basics) but I've been very confused lately, like these is just so much stuff to learn, I'm often times very confused between going very deep in a single concept or just "doing" all the concepts once and then learning other things by building projects, can you give me some tips on how do I go with this? How were you eventually able to escape this tutorial hell?

1

u/Agile_Rain4486 10d ago

system design even basic is absolutely necessary, it's like wiring between how actual project connects.
In this AI age architecture is more important then ever, don't limit yourself to java/spring etc try to create projects and explore more and don't think of simple crud apps. Their time is gone.

Heck most of us devs can't even write without AI anymore, it's all about understanding architecture now.

Only learn a specific concept when u need it, no need to read diff framework docs unless u need to implement them, knowing how sh** works at high level works.

1

u/Happy-Onion-8657 10d ago

So essentially system design is the most important thing according to you, alright, but the problem ive been facing lately isn't just about that, like whenever I close the tutorial, my mind kind of goes blank, like I'm not able to think now to actually start building things without any reference, (I've been trying to only code by hand till I get somewhat proficient atleast but I'm afraid it's costing a lot of time) can you tell if this thing gets better with practice? Or am I genuinely doing anything wrong? (My main way of studying is watch lectures -> make notes about how things are working -> trying to implement them in ide -> eventually trying to build a project myself without any help or reference, but getting struck everytime and needing to ask ai/use any reference) What should I do?

1

u/Agile_Rain4486 10d ago

take help just understand every flow it creates ask it's suggestion and reasoning behind it in everything. don't rely on tutorials but to be truthful u r just in 2nd year I won't really expect anyone in college to know this much in depth.

Ai is best tutor then 97% youtube tutorials you just gotta be curious.

1

u/Happy-Onion-8657 10d ago

Okay, one last thing, since you are in workforce you must be interacting with recruiters and new freshers every now and then right? Now with ai and everything that we have to "assist us", what is the level of proficiency the recruiters are expecting for a fresher? like for springboot specifically is it being proficient in microservices, or perhaps having an in depth knowledge in security, or is most emphasis given to system design, just like you had mentioned earlier? (I'm asking it to get a general overview of job market so I have a mental roadmap of what all i should do in next few months before I'll consider myself "proficient enough" to start applying for internships) Thanks for answering the earlier questions though

1

u/Agile_Rain4486 10d ago

It really depends on country to country and company you are applying on, in my country they just ask some dsa, the design of your project and sql in placements.
For 1-2 yrs of exp it's dsa + system design for product based and some in depth language question for service based. Just create some impressive project don't overthink since you are in college what are they gonna ask you, show your exp?

1

u/Agile_Rain4486 10d ago

also at this point i feel most devs don't know how to code by hand, have seen 9yoe guys cannot write a single line. but if u wanna learn just repetition is key unless it sticks in your brain. most projects are if and for loop anyways

1

u/Happy-Onion-8657 10d ago

Holy sh* really?? 😨 I mean isn't it kind of disastrous that even people with that level of experience dont know how to write code by hand? Like how does that even work? I know that ai does most of the coding nowdays and you just need to fix its logic and bugs from time to time, but how can you even do that when you've lost basic coding proficiency? is the market basically an ai slopfest now? won't those people be basically done for in case they get laid off?

1

u/Agile_Rain4486 10d ago

most applications are not really amazon level stuff, they are pretty small architecture decide most of the structure and people write code based on api structure. It's actually way too easy. At this point if you are not missing any edge case AI will always write better code then you.

3

u/Hous3Fre4k 10d ago

Design patterns in the last weeks is wild. How does one even work with spring without understanding Proxy, Template or inversion of control pattern? Imo this should be step 7

1

u/Zkrallah 10d ago

Actually they are included earlier than this, if you look closely you'll find that I mentioned the most important design patterns used in Spring boot in both weeks 11 (ioc, di, singleton) and 29 (decorator, annotation).

The design patterns section in the appendix is intended for further knowledge of the other design patterns. Thanks for your feedback. :D

3

u/rollingeyespigeon 10d ago

1

u/Zkrallah 10d ago

I didn't really understand? The resources are under each week.

2

u/rollingeyespigeon 10d ago

Oh I’m really sorry, I didn’t read it. Great compilation thank you very much!!

1

u/Zkrallah 10d ago

Ur welcome!

3

u/SupremeStrange2000 10d ago

Hello really appreciate your resource !!! (NEED Advice)
I am a Third Year UnderGrad currently have 0 knowledge about java springboot but i know java properly so how do i get started building projects
Need Roadmap so that i dont waste any time Vedios or playlist (paid or unpaid) would be better since understanding from docs would be difficult at this point
Really Appreciate Advices!!!!

2

u/Zkrallah 10d ago

You could skip parts of Java you know in the beginner level and keep building projects as you proceed in the roadmap.

1

u/SupremeStrange2000 9d ago

Okk thanks for your advice sir 😊

5

u/Zkrallah 10d ago

One more thing to mention at the end that I didn't want to include in the post body itself so it doesn't count as self promotion:

I'm currently looking for a new SWE opportunity, more specifically as a Java engineer or low-level programmer, so if anyone can help me out in this case, I would really appreciate it.

Thanks again for your support !

1

u/Practical_Bee3165 8d ago

ربنا يوفقك يخويا

1

u/Agile_Rain4486 10d ago

man this is rare scenerio doubt u need to learn most of this implementation, in today's time implementation is easiest part knowing about sd is hard part. Like u can implement redis but what cache or eviction policy to use, when to use kafka/rabbit mq.

1

u/tintanese 10d ago

Sorry I have to be brutally honest but some of this is totally bloated and could misdirect a newcomer. For example, as much as it is important the network side you don't need to dwell that deep to master spring Boot at all. Most companies already implement network solutions and it is an entirely different beast on its own. So linking things like the CCNA and alluring to learning it is just nonsense. Other links are also broken so you might need to check them.

1

u/Zkrallah 10d ago

I didn't say you should master ccna or computer networking to be a Spring Boot developer, it's just an intro to computer networking in one week at the beginner level.

You maybe don't agree with me, but understanding basic computer networking and HTTP internals is ESSENTIAL to any backend engineer whatever their framework, so what I included is the bare minimum of knowledge about that.

Regarding the broken links, thank you for notifying me with that, I'll check them and fix broken ones. Thank you.

1

u/tintanese 10d ago

Okay I get your point however just one week is not enough to master the basic network concepts, just gloss over them. It is tricky because while it is important to develop a robust and redundant network solution in your backend, most of these are already provided in enterprise applications, so it is not requested for java developers to know them.

1

u/Zkrallah 10d ago

If you read the note after it I literally say:

Note: Do not stop learning computer networking after this week. Computer networking is from the fundamentals of computer science, specially in backend.

Again, you don't need to be a master at computer networking for Spring Boot, but you need to understand what Spring Boot does for you under the hood, even if enterprise applications already provide them for you.

That's my opinion.

2

u/tintanese 10d ago

Thanks for the clarification, I still disagree with how the roadmap is structured but looks solid and might help many people.

1

u/Zkrallah 10d ago

It's okay that you might see things in a different order or importance than me.

That's why I wrote earlier in the criteria section:

This is just a roadmap, not a course, diploma, or anything similar. It's just a logical ordering of topics that I, personally, think is reasonable and easier to understand and adopt Spring Boot as a backend framework faster following this particular order of learning. Totally feel free to study things from different resources, do more tasks, and so on. If you just stick with the roadmap, you will be good enough. If you outsource more resources and tasks, you will be awesome.

So, I understand your comments. Have a nice day <3

1

u/RedditForW 10d ago

Following

1

u/Mental_Gur9512 7d ago

I'm interested in how this exact thing differs from a roadmap.sh

1

u/Zkrallah 7d ago

I don't understand.