Advanced TypeScript

March 28th, 2020
typescript

Building a TypeScript Framework

This is my third real weekend off, being the conclusion of my third week of work as a Software Developer. It's so nice to have a structured weekend, where everyone else is off work at the same time. At the golf course, if I was off work, it meant others were working there, and I could still receive calls with questions about some thing or another. I always had it in the back of my mind, that something could go wrong that I messed up while I was working and there wasn't much I could do about it. Now, when I'm off for the weekend, everyone else at my office is off as well, and if anything is going wrong, it can wait until Monday. What I'm getting at, is that it gives me a better opportunity to truly shut work off for a couple of days. It also feels like more of a real weekend, for whatever reason. It's a trivial difference, and I still enjoyed my weekends where they fell when I worked at the golf course, but I seem to enjoy them a little more now. I think the biggest difference is that I'm not physically exhausted. Yesterday, I was definitely mentally drained, but I had plenty of energy throughout the night and even more this morning. Instead of dragging myself around for a day and then dreading the coming week on my last day of my weekend, my Saturdays are much more productive. I spent a good chunk of today cleaning up around the house, which is more important than ever with the Coronavirus. The rest of the day was spent with my little girl, just playing around the house, and then studying while she napped. I've been the one going to the grocery store since the outbreak, but today my fiancé went instead. She did pretty well, and got us stocked up for, I would say, at least 3 weeks. It's difficult because we don't have a lot of freezer room, but we did some reorganizing and packed it full.

code

While I've been doing plenty of coding during the day at my job, my learning journey on my own has persisted, if not strengthened. There was a good chunk of time, almost 2 months, where I felt somewhat downtrodden about trying to get a job in the industry. Starting back in December with a series of unsuccessful interviews, my motivation really took a hit. I would still code at least an hour every day, but often that would be the extent of it. This, coupled with my lack of energy from working so hard during the season at the golf course, really impeded my progress. I was wiped out and running on steam, and by the time I got around to studying, I just didn't have much left to give. In the first week of my new job, I started ramping back up. I felt a little overwhelmed at first, and my energy levels were still on the lower side due to just coming out of the other job, but after a good restful weekend after that first week, I was rearing and ready to go. Ever since then, I've been putting in at least 2 or 3 hours every night. Between work and my own efforts at home, I figure I'm either learning or coding for around 60 hours every week. At that rate, I'm going to advance my skills a lot quicker than I was.

javascript

During my time at home, I've spent the last week devouring Stephen Grider's TypeScript: The Complete Developer's Guide on Udemy, a 24-hour course that goes from beginner all the way through the more advanced features of TypeScript. I'm on track to finish the course either tomorrow or Monday, depending on how much I can get done tonight and tomorrow. While at first, I was swimming along nicely in this course, the water has gotten pretty deep in the last couple of sections. TypeScript can get really complex, and the nice thing about it is that if you only want to use it at the rudimentary level, that's totally acceptable. As you progress, you can ramp up the complexity. It's totally scalable. TypeScript has a lot of ties to the class-based world of JavaScript and object-oriented programming, so a lot of the course has focused on using TypeScript with classes. OOP has never been something I've spent a lot of time on, and especially in the React world today, it's not something you come across often. Therefore, this portion of the course has been extra challenging for me. I understand the syntax, but it's not a world I live in. There are a lot of features in this portion of the course I can't see myself using very often, if at all, but I'm trying to soak in as much as possible. The section I'm just about to finish up, which is nearly 7 hours long, builds a basic framework like React out of classes with TypeScript, and we used a lot of really advanced features of both classes and TypeScript to do so. I had never heard of abstract classes before this course, but now I understand them pretty well. While this project isn't anything I would put in my portfolio, it was a great exercise to learn these advanced concepts for both of these topics. Still, I'm glad I'm almost done with that section. After that, we take a trip into using it with Node, and then we go into a 2 hour section on using TypeScript with React, which I'm obviously the most excited about. This should be the highlight of the course.

Until tomorrow!

Created by Sam Thoyre, © 2019