Peeling Back the Layers of Complexity
Redux is by far the most complicated and confusing topic I've covered in my journey, so far. Most people that have become comfortable with Redux find it to be really straightforward and simple, but have also gone through the same struggle I'm going through right now. I've taken 3 or 4 different courses so far that have covered Redux in one way or another, some better than others. The first time I covered it was in my second course on React, Andrei Neagoie and Yihua Zhang's Complete React Developer in 2019(now 2020). This course was way more advanced than I was ready for, but I trudged through and was able to learn quite a bit in the process. But, the Redux section went right over my head. As I said yesterday, the first couple of times I encountered Redux, my JavaScript skills were not up to the task yet, and I ended up just copying the code I was supposed to without a full comprehension of what I was doing. I was able to get it to work, but if you asked me what the code actually meant, I would have been completely lost. I think this course would have been great to take now, in this part of my journey, than that early on. Right after that, I took a course by Neil Cummings called Build an app with React, Redux, and Firestore from scratch that was along the same difficulty level, actually even a little more difficult. Again, if I had taken this course now instead of then, I think I would have gotten a lot more out of it.
Shortly after completing that course, I realized I needed to go a lot deeper with JavaScript before I got any further with React. I would never be able to fully understand what I was doing and be able to do it on my own if I didn't. This is when I got into Frontend Masters, and this changed everything. I took several courses on Frontend Masters before I found Will Sentance's courses, and some of them were really good, but I didn't know what I was missing. When I got into Will's courses, I suddenly started to gain a much deeper understanding of JavaScript, and was able to break it down, step by step, and realize what the code was doing. There are many concepts about JavaScript that I still feel like I need a lot of work on, and some I'm completely mystified by, but for the sake of writing React apps, I wouldn't be in the shape I'm in today if it wasn't for Will's courses. After spending a couple months strictly on JavaScript, I moved back to working with React, and found it much more manageable. The more complex functions associated with Redux and Firebase now made sense. That's still not to say I could do them without help, but I could look at the code and trace the steps back easily enough. In fact, I still feel that way to a certain extent; I think if I were asked to create a complex app with Redux with a gun to my head, I would be in deep trouble. Nevertheless, I'm a lot closer to these goals than I was, and things are certainly starting to click.
If I had come across the course I'm working on right now, Stephen Grider's Modern React with Redux when I was first getting into React, I think I would have had a much better time with it than I did at that point. Although, at the same time, maybe my JavaScript skills weren't in a place at that point to be able to understand it on the level I do now, but it's hard to tell. I will say, I haven't found any other instructors able to break down these concepts as clearly as Stephen does. He is systematically peeling back the layers of complexity, introducing the basic concepts, spending time breaking them down, and then going a little deeper. So far, I have a much better understanding than I did 2 days ago of each piece of the Redux puzzle, however looming ahead are some really complex concepts, like understanding how thunks work, and dealing with API requests with Redux. I think, though, given his style of teaching, he will take his time to introduce these slowly, and explain everything in depth before jumping in the deep end. I'm confident I will be close to being able to implement Redux on my own by the end of this class, and that is certainly a useful tool to have in the tool belt.
Until tomorrow!