Starting on Spring Boot

I wanted to start a series on a "Journey" of learning, spring boot. I see this as a Journey because at the beginning

  • I do not know where to start
  • I know what springboot is, but no idea how to use it to write backend
  • No Idea how different simple, common backend issues/concepts are implemented, such as:
    • SSO, OAuth
    • RBAC
    • Feature Flagging
    • Multitenant (Apartment Logics)
    • Testing
    • Integrations (S3 etc...)
    • Guards & Proper REST Responses
    • Scaling & Deployment

A Brief space about me:

  • Worked predominantly in frontend at the time of writing. So have a good grasp of JavaScript & CSS & FrontEnd Libraries.
  • Studied Bachelors in CS
  • Worked in a SaaS based company for 2 years & recently joined a SaaS based FinTech Startup to pioneer it's FrontEnd Stack Predominantly

Why I'm writing this?

I've tried to self-learn many things since college, including the frontend basics, new tools & paradigms in frontend such as Astro, Svelte, SvelteKit, Vue, Next and it goes on...

I've approached with several mediums for learning, such as:

  • Go through course in YouTube or Udemy & it's likes.
  • Try to follow a course & create some project they walk us through
  • Write & maintain personal notes, believing that writing will etch it in my mind

How I learn something new

But with years (~3 years) of trial & error in trying to learn anything in CS background has landed me in a niche spot on how I approach to learn something.

  • Stop #1: The Official Tutorial/Docs (to get an overall idea)
  • Pit Stop: Clear doubts, decide if to learn more, or it's enough (most time, you'd stop here)
  • Stop #2: DIY Tutorials / Videos to get hands-on (Try to deviate from the tutorial & explore as much as possible)
  • Stop #3: Follow people on Twitter, watch Conference talks on YouTube, subscribe to blog/newsletters. Basically, keep yourself updated

  • Finally: Start using it in "Real Life", and continuously learning when you come across niche problems to solve with it. This is where I'd actually even read any dev.to articles by random people on super specific things such as "How to do X using Y" (Y being what you try to learn). But, Hey, if you want to read such articles on a daily basis, you totally can.

  • Beyond the end line: Contribute to that project (:P)

Stop 1: Official Docs & Tutorials

  • Official Docs is the first place I go to learn about something. No one could explain it better than the author
  • Read through them, try to understand what the tool solves with as less mental stress as possible.
  • This is kinda like "Testing the water" before diving deep.
  • Run it through your mind how you'd use a tool/lib of such kind, for what purpose. If you know something similar to it (for EG: if you know react & learn svelte, basically both are frontend tools, so you can pit one against another in your mind on each concept that's covered in svelte's docs)

Most of the time, The Official Docs is the place to start your "Journey" (I did the same in case of Spring, actually I refreshed my Java a bit with following Oracle Guides in Java)

22