Learning Angular Quickly

When approaching the task of learning Angular, it can be overwhelming to figure out the best content with which to get started. Here are the pieces of content and the activities I think will help you get started quickly.

Listening to Podcasts

You probably have time during the day when you can’t code but can listen to a podcast. Many people listen to podcasts or audiobooks on their commute, doing yard work, or when their boss is talking to them (just kidding Andy!). I’ve been using podcasts to learn programming from the beginning. Even if the material is beyond my current understanding, I find the immersion very useful for determining what to focus on when I do sit down and code.

For podcasts, Adventures in Angular from DevChat.TV is my favorite. The podcast is released weekly and covers an array of topics including how to get started, interviews with the Angular team, and practically all other areas of using the framework. The host, Charles Max Wood, has assembled a panel consisting of the “who’s who” in the world of Angular including John Papa, Joe Eames, Lukas Ruebbelke, Aaron Frost, and Ward Bell. The show typically runs for less than an hour and I often feel as if I’m hanging out with a group of (really) senior developers at a bar or coffee shop – laughing a lot and learning a ton. The show is less than a year old at this point so I recommend starting from the beginning and getting caught up on the recent history of Angular in addition to learning from some of the best.

Using Quick Start Tutorials

By “quick start tutorial”, I mean a tutorial that succinctly covers all of the high level aspects of the framework. I have looked at a handful of these and my favorite is by Lukas Ruebbelke on egghead.io. There is a handy GitHub repo that accompanies the course so download the initial project and then write code while watching the videos. I’m a fairly experienced jQuery developer and I found this video had the right pace as I could easily duplicate the HTML and JavaScript and really focus on the Angular details and structure.

Also, Todd Motto’s Ultimate guide to learning AngularJS in one day blog post is appropriately comprehensive for someone getting started. While it’s not a tutorial, he covers the main concepts and terms in Angular accompanied with code examples. Especially in conjunction with listening to podcasts, this post can help you translate the concepts you learned from audio into code on the screen.

There are certainly other tutorials. In fact, angularjs.org has three of them incorporated into the site. There’s one on the home page itself with videos, one tutorial in the documentation, and then also prominently displayed is a link to a code school tutorial. If you want, look at them all. But remember the goal here is to learn Angular, not review quick starts – don’t ask me how I know.

Writing Code

This is really what we are here to do. The podcasts and the quick starts are great, but at some point you will be left to your own devices to write code. This is something that I’ll be writing a lot more about but it’s important to remember that as good as it is to have podcasts, video training, etc., you won’t gain expertise until you write lots of code and push yourself to solve new problems.

Once you start writing code, this is where I expect you will use the Angular Developer Guide, API Docs, and internet search as a reference to solve specific problems and deepen your understanding of the framework’s functionality.

Blogging

Blogging can be helpful in many ways. By writing, you will often find that you don’t understand things as well as you thought you did. Once you have to start choosing the right words to put down on the page, you’ll start fact checking yourself. There is an important learning opportunity when readers comment on your posts including information from their own perspective. Also when there are readers, the accountability level goes up. There’s more of an incentive to continue the conversation and learning. (PS – thanks to everyone reading here!)

You should understand that blogging takes time away from coding but I’m convinced that the time spent is worth it. If you want to take this step, I found this free mini-course by John Sonmez instrumental in getting setup quickly.

Attending Community Events

Luckily where I am located, there are many user groups where developers can link up with other developers. Take a look on meetup.com to see if there are any near you. I recently attended the Philly.NET Code Camp and learned about technologies including Angular, Ember, React, TypeScript, and ECMAScript 6.

The talks were informative but just as important is that this event had a built-in after party. This is where I hung out with some of the presenters and discussed the finer details of these technologies. For instance, how beneficial (or not) are classes in EcmaScript 6? Spoiler alert, there is no definitive answer but by being a part of this discussion, I now understand some of the finer points to consider when choosing to use this feature or not. This learning is incredibly valuable and not often found when watching pre-recorded presentations.

In addition, you may decide to speak at an event like this one day. Take notes not only on the technology you are learning but also notes about what pieces of the presentations work well or what falls flat. This will give you a head start developing your speaking style.

Video Training

Another useful set of content is video training. I use Pluralsight which currently has 1,271 video courses covering a vast array of technologies. At the time of writing, a search for ‘AngularJS’ on Pluralsight returns 42 courses. Some people really do well with video training. Because it’s not a replacement for writing code, I tend to use it during times when I can watch a video but can’t necessarily type easily such as when I’m on the treadmill. I also may listen to more conceptual courses or re-listen to courses in the car where I don’t rely on looking at the screen to absorb the information.

Some of the courses on my radar for Pluralsight are: Building a Site with Bootstrap, AngularJS, ASP.NET, EF and Azure by Shawn Wildermuth, AngularJS for .NET Developers by Joe Eames and Jim Cooper, AngularJS Patterns: Clean Code by John Papa, AngularJS In-Depth by Lukas Ruebbelke, and HTML5 Offline Applications with Angular, IndexedDB and Bootstrap by Craig Shoemaker. There are so many more that look great – it’s an embarrassment of riches.

Other Techniques

This list is by no means exhaustive. For instance, you can contribute to open source. You can start your own podcast or user group. You can analyze the Angular source code, watch YouTube videos of ng-conf, pair program, read books, and many more. These are all great ideas and I’ll write about as many of these as I can.

In summary, the community has done a great job creating content for Angular. There are almost too many choices and there are only so many hours in a day. Hopefully, I’ve been able to shed light on a selection of content and provide tips for you to learn Angular quickly. Happy coding!

Which Angular Version Should You Learn?

angular 1 or 2?

If you are just starting with Angular, should you learn Angular 1.x or Angular 2.0? There are numerous resources available for all versions of Angular, but there’s only one version that you can pick for your first project. Which is the right one?

Also, you may have heard that Angular 2.0 is a significant departure from 1.x. Should you attempt to stay ahead of the curve and start with Angular 2.0? Which version will give you the best browser support? There is much to consider so this post is a summary of what I’ve found and what I recommend.

Angular 2.0 is Coming

Potentially the biggest question for Angular 2.0 pertains to the release date. Both Shawn Wildermuth and Craig McKeachie note that they expect Angular 2.0 to be released in late 2015. I haven’t seen an official date from the Angular team (maybe I’m missing it somewhere), however Brad Green provided some hints at the recent 2015 ng-conf keynote. Apparently, some teams at Google will start migrating their applications from Angular 1.x to Angular 2.0 starting in May 2015. He continues, “we are going to take the learnings from (this) and the feedback from all of you who use Angular 2.0 to determine when we are done and we can call it ready”. It is plausible that a fully-baked release of Angular 2.0 will be here in a matter of months. That being the case, you will at least want to pay attention to its progress.

However, take a look at the Angular 2.0 download page. The current build is listed as alpha. While alpha builds can be valuable for evaluating new features and improvements, they can be problematic for learning. You can reasonably expect to run into bugs or even find a drastically redesigned API by the time the first release candidate hits. As someone starting to learn a framework, you have an uphill battle already without the framework pushing against you.

Continued Angular 1.x Support

Also during the ng-conf 2015 keynote, the Angular team clarified they will not immediately seek to abandon Angular 1.x. While the team wants to super-heroically move the web forward, they are going to measure the traffic between the Angular 1.x website and the Angular 2.0 website to help determine 1.x support. Presumably if 1.x continues to show traction, they will continue supporting it. After the announcement of Angular 2.0, both K. Scott Allen and Dan Wahlin posted their thoughts. In summary, they can recommend continuing to use Angular 1.x going forward no matter the verdict with Angular 2.0. For some applications, it doesn’t make sense to invest time and money in a big migration. Therefore as an Angular developer, you should be prepared to maintain existing Angular 1.x applications for some time to come.

The Angular team is also considering the migration path. The Angular 2.0 router will be compatible with 1.x. The team also plans to offer several migration options and John Papa has volunteered to help create the migration guide. This points to an important skill for Angular developers to adopt in the not-so-distant future – migrating from 1.x to 2.0. In the short term, development teams will have valid options to stick with 1.x or move to 2.0 but the Angular team’s goal is to make it very attractive for teams to migrate. Therefore you should hone your skills accordingly and consider that you will likely need to know multiple framework versions.

Internet Explorer 8 Support

If you need to support IE 8, know that Angular 1.3 drops support for it. Being an ASP.NET developer who currently supports IE 8, I thought this was a deal breaker. But while there is no explicit support for IE 8 in Angular 1.3, it hasn’t been explicitly removed either and depending on what you do with Angular 1.3, it could still work.

Skimming through the migration guide from Angular 1.2 to 1.3, it appears certain, less-reliable, pieces of the API were deprecated. Potentially by starting with 1.3, you would write more reliable Angular code even if you eventually back port the project to 1.2 for specific IE 8 support at a later date. The guide also notes that 1.3 will require shims to work correctly in IE 8 which is only a minor hurdle. Another sign of hope for IE 8 support is this GitHub project which forked the Angular 1.3 source code with the intention of preserving IE 8 support – go community!

Drumroll, Please

By no means is this a one-size-fits-all decision but if you’re just starting to learn Angular, the latest version of 1.3 is most likely the best with which to start. It’s capabilities are well-understood. It’s also stable and the browser support appears sufficient. Of course when 1.4 is released, you should re-evaluate.  And finally, track the progress of Angular 2.0 and consider evaluating it after you get your feet wet with Angular 1.3.

In the next post, I’ll detail my favorite resources for learning Angular quickly and discuss strategies for mastering the material.

Angular First and Foremost

Angular ShieldWelcome! This is the first post in what I expect to be a fun and educational journey into the world of Angular – specifically for those writing software on the Microsoft stack.

Angular is going through a period of substantial change. Angular 2 is on the horizon and along with the adoption of new features and performance improvements, the community is preparing for a non-trivial upgrade effort. The Angular team appears to be closely listening to feedback and we can expect them to continue addressing developer needs. To better understand the changes, I recommend watching the ng-conf 2015 Day 1 Keynote.

On the server, the .NET Framework is undergoing a sea change. The core framework is open source and ASP.NET is now ‘cloud-optimized’. Visual Studio even has a FREE Community Edition. Furthermore, the recent friendship between Angular and TypeScript makes this a good time to evaluate developer productivity using Angular with the latest Microsoft frameworks and tools.

I’ll be honest, I haven’t written a single line in Angular. I’ll be learning from scratch – maybe like you. I’ll be drawing on my 7 years of experience developing ASP.NET applications and I expect that as I document my learning, I can help to curate the best resources for you on your journey with Angular.

One of the blessings and curses of software development is the rapid pace of change. Web developers have more to learn than ever and we want to get things done quickly with frameworks and tools we can depend on. My goal is to make it easier for you to decide which pieces to use and how to use them. If there are any specific topics you want covered, let me know. For now though, I’m starting with Angular First.