Acquiring New Skills
Well, yesterday I mentioned I had finished a course, Andrew Mead's The Modern JavaScript Bootcamp on Udemy, and was in the process of deciding what my next action would be. I also mentioned that I was leaning towards Stephen Grider's Advanced React and Redux course, but it turns out this is not the path I decided to choose. I was actually in between that course and a React course by Maximilian Schwarzmueller for a while, but at the last second, I decided to take a different route. For whatever reason, when I started looking into this other option, it seemed to make a lot more sense and the decision became clear and easy. Like I said yesterday, these decisions are usually a lot more difficult than you would think, since it impacts how I will be spending many hours in the coming weeks, and if I choose the wrong path, it can demotivate me quickly. I always(except that one time) see a course all the way through, so I don't want to choose something that won't be beneficial, or even interesting. When I started looking closer at Stephen's React course, I noticed the main focus was on testing and Redux, which are both great skills to have, but not ones that we focus much effort on at work. In fact, we don't use Redux at all, and the other developer really hasn't put any time into building up a testing system.
As the title suggests, I decided to go down a completely different, yet very relevant, route: TypeScript. Over the last year or so, TypeScript has risen to the forefront in the front end developer world, and is now almost a mandatory skill for most front end positions. If you're not familiar with it, TypeScript is sort of a layer that sits on top of JavaScript that is meant to clear up any issues with type checking throughout your applications. For example, if you were to assign a variable to be a string, and then reassign it to be a number in the future, TypeScript would let you know of the issue inside of the text editor, instead of having to troubleshoot this issue without knowing the error you made. This is a rudimentary example, and TypeScript is much stronger than that. I was first introduced to TypeScript in a course I took on Frontend Masters months ago, but it was a very brief interlude in the course, and I quickly forgot the majority of what I learned in that section, other than the general idea of what TypeScript does. It's been on my mind for quite a while to do a deep dive into it, but I never seemed to get around to it. In my first week of work, I was tasked with aiding in the migration of a pretty major application from JavaScript over to TypeScript, and luckily, my fellow front end developer was able to walk me through this process. I learned a lot during this process, and have been adding on to this application using TypeScript ever since, but I feel limited in what I can do with it, and am using the type of "any," a kind of catch-all if you don't know what to do, way too often.
The course I signed up for is by one of my favorite instructors, in fact I named him in my top 3 instructors the other day: Stephen Grider. TypeScript: The Complete Guide, on Udemy, is a full walkthrough of the language, taking the student from the very basic beginner level all the way through to the nuanced features of the language you would seldom use. It's 24 hours long, and is mainly project-based, but starts off with more of a focus on obtaining the basic syntax through code snippets and slides. I've just gotten through those sections this afternoon, and am about to start the more comprehensive project-based sections. The first of these has us build a map application, where the user's information is generated randomly, I believe, and their location is displayed on a map within the page. We will be using classes extensively in this section, as understanding classes and object-oriented programming are integral to fully grasping TypeScript. So far, we've learned the different ways you can define types on variables, functions, and classes, and Stephen is doing a fantastic job with the structure of the course, as he always does. One of the things I really like about Stephen's course is that he will take a pretty small chunk of code and really dive deep into it. Instead of just rushing through the build of a project, like some instructors I've come across, he will write some code and then dwell on that code for quite some time, pointing out small details that really get at the ideas he's trying to get across. I'm about 4 hours into this course, and I would love to finish it by the beginning of next week, so let's see how I fare.
Until tomorrow!