As I progress it almost feels like a trial & error game or like I’m completing a step by step Lego set using instructions. As I plug along I’m definitely getting more familiar with syntax and concepts but in a way it almost feels like I’m not actually learning how to code.
Should I slow down and “study” each concept ( like repeating new concepts over and over in something like VS) or should I just keep plugging along to familiarize myself with various concepts (DOM Events, unfamiliar objects, etc. hoping it eventually all comes together?
Disclaimer to take this with a grain of salt as this is just my opinion and people may disagree but if you don’t feel like you’re actually learning the new content you’re covering, I would personally suggest taking a brief step back (or at least slowing down from) learning new stuff and going back to practice the concepts you’ve recently learned.
Just like learning a real life language or a musical instrument, the more you practice the more you will actually retain and become confident at the concepts you’re learning. Exactly how you want to practice is really down to personal learning style and it’ll take a little bit of trial and error to work out what works the best for you but there’s generally a few more popular options:
Use a dedicated code practice site. Some of the popular options are FrontEndMentor for HTML/CSS design projects (some are unfortunately locked behind a paywall but there’s still a few good free ones) and something like Codewars/HackerRank/Edabit/LeetCode for more algorithm-centered JS projects.
Taking notes. While this is a slightly more controversial one as it works well for some people but not so much for others (I’m unfortunately in the latter category), taking notes on the new topics you’re learning is a pretty popular choice. One thing I’ve seen a couple times is actually making a small website to contain all your notes, with a page for each concept, which is especially good as you would be practicing HTML/CSS as well as making notes.
Making projects locally. This is probably the best way to practice in my opinion and it’s fairly self-explanatory. When it comes to web development, it basically just entails making websites (it doesn’t have to be anything fancy) that use the concepts you’ve learned and want to practice. If you’re looking for ideas, some would be to make a website for notes (as above) or to make a website for a particular business/organization, be it real or fictional.
All that said, an important thing to note is not to stress about memorizing everything. While some things like basic syntax are pretty important to know, the really important thing to practice is the general problem solving, i.e from a high-level approach how a particular problem might be broken down and tackled as any specific syntax can be googled if needed, but that’s one of the things that will just develop over time and the more coding you do the less often you’ll find yourself having to look things up.