Growing the Skills
So, I left off just after taking my first course on React. I had already built quite a few projects through tutorials using React and Vue, but I didn't really have any idea of what I was doing. After taking this course, though, I was able to understand it much better. I loved that React made it so much easier to develop with JavaScript, and was much more semantic than working strictly with HTML, CSS and JavaScript. It just seemed to make sense, but I was only at the beginning of my journey with React. In this first course, I was introduced to a litany of concepts, like state, and passing down props, and all kinds of packages that come along with the React ecosystem. What I didn't realize at the time was this course was relying on an outdated way of writing React. It relied heavily on class-based components, with passing state through the old fashioned way. In the past 4 months, I've written one class-based component at work or in my own personal projects, and that was only because of some issues I was having with a third-party package playing nice with functional components. I suppose it's important to learn this way of doing things, but I think I would have been much better off learning hooks straight off the bat.
I wanted to keep going with React, so I took to searching Udemy for some more courses. I picked up a course by Andrei Neagoie, which was the first of his courses I would take. This was a huge jump from Colt Steele's course, and it left me feeling dazed and confused. There were times I wanted to quit and walk away; I felt so lost and the pace was relentless. Halfway through this course, I got an interview with a company based in Spain. It sounded like if I got past the first interview, I would be given a more technical interview with JavaScript. At this time, I felt like I just didn't know JavaScript well enough to be able to understand what I was doing with React. I think this was definitely true at the time; I was still having a hard time understanding the basic syntax of JavaScript. Like many people, I had been lured into the world of frameworks well before I was ready. I don't think there's necessarily anything wrong with this, but I don't recommend it as the preferred path. More than anything, I think it's important to have a good base of understanding of the language, or at least of programming in general. I'm in the process right now of learning Python, and learned about as much Python in 2 weeks as I did in 5 months of learning JavaScript. The difference was that it was my first language, and just understanding the basic principles of programming was a huge leap for me.
Regardless, I completed the course on JavaScript, but I still felt pretty hopeless. I was starting to make some headway on the language, but it wasn't nearly as easy as I thought it would be. Learning your first language is really hard, and it takes a lot of determination to keep going. I still feel shaky in a lot of areas of JavaScript, but I'm comfortable in a lot of areas too. I didn't get a second interview with this company, so I returned to my React course. This was the first time I was introduced to my enemy: Redux. I've attempted learning Redux about 5 or 6 times now. Every time, I feel like I understand it a little better, but I never feel like I could write it on my own. If I were forced to use it at work, I think I could get pretty proficient with it in a couple weeks, but luckily we use useContext and useReducer to manage state globally, which is surprisingly similar to Redux, but with less boilerplate. I don't want to jump ahead, so the bottom line was this course was rough, I struggled, but I made it through. I took another couple courses on React on Udemy before I decided I really needed to work harder on JavaScript. I yearned to have those fundamentals in place, and I just wasn't getting that from what I was doing. In my next installment, I'll go into how I started with Frontend Masters and met my pair programming buddy, Matt. This is when things really started to take off.
Until tomorrow!