General Spring problem

Hey guys, I’m currently going through the Java course as I’d like to switch careers to programming. I find everything fairly easy and self explanatory but once Spring started I’m having troubles to wrap my head around everything. I’m currently on Travel Adventures API task and I’m struggling to go through it without watching and following the video, I’ve already went twice through the relevant lesson and I’m not sure if I’m doing something wrong. Going forward, do you guys have any tips on how i can understand this better? Should I do these classes over and over until I can do the tasks by myself or should I follow through with the videos and hope it clicks? Thanks

edit: I think the issue might involve dealing with a lot of new concepts at once, for example in this task I’m forced to use Optional classes and @Entity @Table annotation classes despite never seeing that in my life. Even though it kind-of makes sense I’m not sure if I should try and remember all of it. Any tips would be welcome, thank you

The best advice I ever saw regarding learning to code was don’t just do the lesson as you do the lesson. Take the concepts you learn and push them to their limits. Ask questions of yourself like “what can I do with this” and “if I do this, what happens”. Don’t be scared to break things and get errors by randomly doing thing’s and then investigating the errors when they don’t work to figure out why.

Having said that, there is a lot of “do this because it works” and you’ll pick up an understanding as you play with it. It sounds like you’ve hit that part of the learning process. I know a big ah ha moment for me was learning the jargon by sheer power of google and various books. As an example mutable was one concept that I felt absent from most Java based resources, even though it’s a programming concept worth understanding. Also variable assignment vs reference assignment. Another thing to wrap the head around especially early on is the differences between static and non-static. Variable scope is another thing to understand along that same level of detail. Once you can visualize in your head what the code is actually trying to do at the object level, it unlocks a lot of things for you.

As a final thought. No one can memorize every concept. Google often and learn the keywords you need to plug in to get the results you’re looking for. Knowing the jargon helps here so when you find a word you don’t understand in a method description, don’t just skip past it as “stuff I don’t know” latch onto a word you don’t know the meaning of and google it with the word “java” tacked on. If the explanation for that has words you don’t get either, keep going until you hit a description you can understand then work backwards. If at any time you get overwhelmed and feel like your head is overloaded, walk away. Clear your head of all thought of it and do something else for a few hours. Your brain will process in the mean time without you thinking about it and the next time you come back you’ll feel better about it. I like to think of it as letting my brain “digest” the stuff I’ve learned. It really helps.