As an electrical engineer with a master’s degree who had published several first-author IEEE journal papers in a PhD program, I came from a background several years long of writing software and implementing designs in MATLAB, C/C++, Python, and a few engineering CAD tools. Additionally, I had some experience with C# and XAML in .NET from internships with a large semiconductor company and a scientific government agency. While prior experience with programming languages of any kind helps when learning any new language, my background in engineering and scientific computing had little in common with the wild world of the modern web browser. Not only were the tools for web development less mature, but the design patterns of reactive extensions were completely different than the imperative style of MATLAB. Additionally, my experience in .NET was not nearly as deep as a full-time .NET developer.
- Find the best introductory material, and
- Consume it rapidly
Since graduate school had endowed me with a preference for self-learning, I began looking for resources on my own to build an initial runway. This was both highly rewarding and successful. However, I quickly found that my understanding of programming exceeded popular choices such as Codecademy, W3 Schools, and Learn-JS.org. While these resources are definitely helpful for many people, I needed to find tutorials that were geared more toward current developers and less toward those who are new to programming in general.
I found that the most important part of learning thoroughly from Pluralsight videos was to do each step of the tutorials on my own, and my key method for learning quickly from Pluralsight was to set the videos to play at 1.5-2.0x speed. While this meant that the voices sounded more like a rural auctioneer and I had to pause frequently to implement the steps in VS Code, the browser, or command line, I found that speeding up the videos significantly increased the speed of my learning. Additionally, I found it extremely useful to save my notes in text files named with the current date so that I could simply “Find In Files” in VS Code to look up things I learned later.
Oasis Digital Angular Course Materials
One caveat to learning Angular, or other frameworks, on Pluralsight is that you can accidentally learn patterns that are either outdated, in the case of jQuery, or that are really only used in small beginner apps. For example, courses on Angular that I watched on Pluralsight used the simpler, but ultimately discouraged, methods of two-way bindings using [(ngModel)] or using the template for logic such as form verification that should reside in TypeScript. Nonetheless, I still highly recommend Pluralsight; for the most part, learning outdated methods can be avoided largely by paying attention to the dates on the videos that you watch.
Another issue for me came while learning reactive programming. Unfortunately, while Pluralsight was very useful for learning Angular, RxJs was largely absent in Pluralsight videos. Luckily our course materials emphasize both RxJs and minimizing template logic, and I switched from Pluralsight to our course materials at a good time during my learning. After finishing the fourth module of our course materials, I went back to my first Angular application and re-wrote it several times using different reactive design patterns such as RxJs Observables and @ngrx/store, and I saved these as separate versions so that I could easily compare them. I found this very beneficial for building good mental models.