Review of Angular 2 Master Class by Thoughtram

Review of Angular 2 Master Class by Thoughtram

On July 6 and July 7, 2016 I attended the Angular 2 Master Class by Thoughtram in the Showpad offices in Ghent.

The purpose of this review is to share how I experienced the class as an attendee. It summarizes my personal thoughts only and is by no means influenced by the instructors.

Class details

  • Date: July 6 + 7, 2016
  • Location: Showpad offices, Ghent, Belgium
  • Instructor: Thoughtram
  • Ticket price: 700 EUR (excl. VAT) for 2 days
  • Number of attendees: limited to 30

Ticket ordering was handled via EventBrite.

The instructors

Thoughtram was represented by Pascal Precht and Christoph Burgdorf.

Pascal Precht is the author of angular-translate and actively contributes to AngularJS and Angular 2. His knowledge about JavaScript and Angular is incredibly thorough and he has a remarkable talent of explaining things fleuntly and efficiëntly.

Pascal Precht

Christoph Burgdorf is a friendly giant with extensive programming knowledge that reaches far beyond JavaScript and Angular. He has a great nose for detecting code smell and put in a great effort to provide us with many prepared exercises. He is also the author of Nickel.

Christoph Burgdorf

Day 1

09:30 — Introduction

Pascal and Christoph kicked off the Master Class by introducing themselves, outlining the plan for the next 2 days and thanking everyone for joining the Thoughtram training.

09:45 — Jump-start tutorial

I the first lesson we learned why the Google team decided to develop Angular 2.

We then learned the basics of ES2015 and TypeScript with Classes, Modules and Type Annotations. As an exercise we bootstrapped our first Angular 2 application.

Next we learned about Directives, Components and Property Binding and updated our application to display a list of contact data.

Finally we explored Services, Dependency Injection (DI) and Lifecycle Hooks and refactored our existing application to use a contactsService service.

12:30 — Lunch

Lunch was awesome. Thoughtram had commissioned Roof Food to deliver fresh healthy meals.

All attendees received 5 bowls filled with fresh made foods, made from vegetables that were grown on the roof  of the Roof Food building.

I had never eaten a Roof Food menu before and it tasted delicious.

13:30 — Jump-start tutorial (continued)

In the afternoon we first learned about the injector tree in Angular 2 and how it relates to the component tree.

Then we had a look at Component Router and learned how to define routes, display components, link to routes and how to retrieve parameters from the active route.

As an exercise we added multiple routes to our contact application.

Next we learned about the Angular 2 Http service and updated our contact application to use the Http service to fetch data from a REST API.

16:30 — Break

Quick break.

16:40 — Jump-start tutorial (continued)

In the final lesson of day 1 we learned about two-way data binding with NgModel and how to use pipes as data transformers.

Finally we took a closer look at the async pipe and finished off with some coding exercises.

18:00 — End of day 1

Day 2

09:30 — Observables

Pascal and Christoph kicked off day 2 with Observables.

We learned what Observables are and how they relate to Angular 2.

Then we had an in-depth look at the Observable API and operators like flatMap, switchMap and merge.

As an exercise we were asked to to create an "instant search" so we could put the theory into practice.

We discussed the shortcomings of our current solution and  learned about debounce, deduplicate, and out of order responses to improve our existing code and make sure search results were displayed in the correct order.

12:30 — Lunch

Lunch on the 2nd day was also served by Roof Food and again it was delicious.

13:30 — EventBus

In this lesson we learned about component communication.

We learned about Presentation Components, Business Components View Components, Inputs and Outputs and saw an example of how we can use a Subject as a custom EventBus to pass state inside our application.

14:45 — Forms

In this lesson we learned about Template-driven forms and Reactive forms in Angular 2.

We learned how to validate data, how to show friendly error messages and how to create custom Validators.

Finally we had a look at Async Validators and Async Validator Directives.

16:30 — Routing

Finally we had a look at more advanced routing topics.

We learned how to define Nested Views, how to protect users from navigating to routes with Navigation Guards and how to Lazy Load components with ComponentResolver.

18:00 — End of day 2

Conclusion

As with AngularJS Master Class in 2015, I really liked the focus on why in this 2016 Angular 2 Master Class.

Instead of just teaching us how, Pascal and Christoph try to make sure everyone in the class understands why things work the way they do.

The class was packed with a wealth of information. All material was well structured and divided into logical sections.

Each lesson was followed by practical exercises that were prepared in advance and nicely presented.

Both Pascal and Christoph were incredibly humble, patient and helpful towards everyone during the whole class.

I really enjoyed the class and already look forward to the next edition!

Would I recommend this workshop to others?

Yes, without a doubt!

If you are looking for an intense and in-depth 2-day Angular 2 training, then Angular 2 Master Class is just what you need.

An additional benefit of attending the Class is that you get free lifetime access the Thoughtram Classroom website.

The Thoughtram Classroom website contains all training materials of the class you attended and is constantly kept up to date by Thoughtram.

So if you attended the Master Class once, you retain permanent access to the latest materials and updates.

How sweet is that!

The only difficulty would be to get a ticket because the Thoughtram trainings are incredibly popular and tickets sell like hotcakes.

If you are interested in attending a Master Class, you can check out their upcoming trainings right here.

Have a great one!