Tech-wise, personally, my goals for 2017 involve learning more about data science (especially R and Hadoop) and playing with .NET Core on Linux.  (Have I ever mentioned how excited I am about writing code in a language from Microsoft on an operating system that is not Windows?!?)  Work-wise, I should probably be focusing on C#, Java, and JavaScript-related topics – including which frameworks may win the framework adoption in the JavaScript realm.  Since I’ve heard Angular 2 was a much different beast than Angular 1, I figured I should probably learn more about Angular 2.  So with CodeMash – I knew I had to take advantage of learning from amazing minds on these things.

Pre-Compiler 1: Introduction to Angular 2 (Part 1)

Knowing we have Angular 1 mentioned in some of our curriculum at The Software Guild,  I figured I should at least know a bit more about what’s in Angular 2.  Seeing an Angular 2 pre-compiler in the lineup, I had to see what it was about.  Now, with Angular 1, we do all things in JavaScript – from templates to directives.  Angular 2, though, looks like a lot of TypeScript.

The pre-compiler’s description mentioned:

We will go over everyting that a developer will need to be productive in Angular 2, including components, directives, pipes, services, dependency injection, as well as overviews of RxJS and TypeScript.

Thankfully, I understand the above concepts very well in numerous languages.  However, I had only seen TypeScript in passing and hadn’t had any experience with RxJS.  That description though mentioned that there would be overviews of both, so I didn’t anticipate any issues.

In preparing for the pre-compiler, I installed my pre-reqs and ran through to make sure versions were correct.    I re-read the pre-reqs and still felt confident that this session would be for me.

Even though we will work in TypeScript, a working understanding of JavaScript is essential…

Experience with a modern web framework is not required but would be very useful (React, Angular 1.x, Ember, Vue)

An understanding of TypeScript would be helpful but is not required nor essential — there are lots of example provided

I’ve been working with JavaScript since the late 90s, so that didn’t phase me.  We cover Angular 1..x in one of our courses, enough for me to gather the overarching patterns of Angular.  However, again, no TypeScript here.

Going to this pre-compiler, I expected a little more guidance on how they structure their projects and how this code talks to each other.  However, there wasn’t much guidance.  The slides were also incorrect, but thankfully I know enough about git to  know how to search his tags and do git checkouts as needed.  For the first couple labs, I would check out the solution and then work backwards to understand how the code comes together and just what is going on in each of the TypeScript files.  Oh yeah… did I mention that this is heavily TypeScripted?  Yeah…

After a couple of labs of working backwards from the solutions,  I started to feel comfortable enough to attempt a solution on my own.  I was mostly there other than missing a little bit of component code.  However, I saw the pattern and started writing TypeScript files based on the pattern presented.  After a couple more labs, though, I realized we weren’t getting enough direction and were getting a lot of glossed-over descriptions of code. I could continue the lab on my own time and work backwards on my own time.  This wasn’t as beneficial as I had hoped – other than starting to pick up TypeScript and bolster my confidence in debugging and working backwards from solutions.  It’s time I use the law of 2 feet:

If you are neither learning nor contributing in a session, you are required to get up and leave and join another session in progress where you feel you’ll be more useful and inspired.

Pre-Compiler 2: Game Development with the Unity Game Engine (Part 2)

While talking with friends at lunch, my friend Victor convinced a couple of us to follow him back to Mike Geig‘s workshop on game development with Unity.  Thankfully, when I was installing pre-reqs for my pre-compilers, I installed Unity just in case I changed my mind.  I’ve known Mike from the conference speaking circuit, and I was curious to see his presenter style as well.  I was a little nervous as I really struggle seeing some aspects of games, and I really hadn’t had any background in Unity.  However, my C# background really helped in this when playing with the scripts.

I really like Mike’s presenting style:

  • Set the expectation of what we’re going to do
  • Do the thing while pointing out each step along the way
  • Recapping what he just did
  • Post the steps for us to do the same thing
  • Recap what we just did

For not having background in this and for jumping into the workshop halfway through, I honestly enjoyed this session a ton.  It was great to see how Unity works, and it gave me some ideas on things – granted I need graphics people for help, but it gets me thinking.  I also look forward to us having Mike come speak at our user group sometime this year, as he has some cool topics and has a presenter style that really works well.

Pre-Compiler Day 1 Conclusion

Overall, I learned quite a bit today.  There’s still 3 more days of learning at CodeMash to go.  However, today was quite an adventure in JavaScript, TypeScript, Unity, and C#.  I can’t wait to see what else I’ll learn!