Recently, I joined my friends Dave and Victor on creating a podcast called DevCoaches.  In our first episode, we talk about our adventures with The Software Guild, where the 3 of us are instructors.  Dave and Victor are currently focused on our .NET curriculum, whereas I spend time in both .NET and Java curriculum and currently teach a Java cohort.  These guys lovingly refer to me as “a traitor”, since I’m a Microsoft MVP yet not teaching on the Microsoft stack.  So… I wanted to talk about my interesting position and why I shouldn’t be seen as a traitor. In the computer programming system, the people are represented by two separate, yet equally important groups – the people who write the code and the people who teach those who write the code.  These are their stories.

Microsoft & Other Platforms

First of all, just because I’m not on the Windows platform doesn’t mean I stop caring about Microsoft and their technologies.  From my early days in computing, I believed in Microsoft and their cross-platform dreams.  At PyCon 2009, I presented on running IronPython (a Microsoft .NET implementation of Python) on Linux through the help of Mono.  Why?  More like… why not?!?  I’m in technology because I love to play with tech and see the capabilities.  Running Microsoft technologies in a non-Microsoft operating system intrigued me, so why couldn’t I play?

Fast forward to today, where Microsoft isn’t only able to run on other platforms, but they’re bringing in other platforms too.  From .NET Core to bringing bash into Windows, it’s astounding to see where Microsoft is venturing.  Further more, it’s great to see the community embracing it – even those of us who grew up in a Windows world understand that there is more out there and it could be possibly the right mix for us.

Microsoft was once seen as an evil empire, but is it still that way?  It looks a lot like they’ve changed their tune.  Hopefully that image is changed as well.

C# vs Java?

If there’s one thing you should know about me, it’s never one programming language versus another.  It’s never “my semi-colons are better than yours”.  It’s all about knowing which tool is to be used in the appropriate situation.  Thankfully, I think Microsoft realizes that as well.  While I’m not specifically talking about C# anymore and took an opportunity to teach Java, I still recommend that my apprentices learn both.  If you can learn one, the other isn’t that much more difficult – though Java’s namespaces are still awful to the file system. So many folders… (I digress…)

As a Microsoft Most Valuable Professional, I am aware of the tools that Microsoft has and am able to give them the feedback they need to hear from those of us in the field, using their tools.  Armed with this knowledge, I actually do use a Microsoft technology in my class.  When it comes to web development and managing my apprentices’ sites, I have them organized well and use Visual Studio Code to look at their CSS, HTML, and JS.   Work has me using a Mac – which is a blog post of its own – and Visual Studio Code works fine on it.  I’ve also used Visual Studio Code in an Ubuntu virtual machine without issues.  (And yes, I have used other text editors as well.  But did I mention that I have a lot of chaos going on?  Sometimes, it helps to have one UI with a familiar layout to keep me grounded.)

Also, little do they realize that even though I’m teaching Java, I’m still looking at the C# curriculum and have to make changes to things.  So I need to keep my C# skills on point if I want to write relevant lessons.

The Power of a Polyglot

Let’s face it – I’m a polyglot.  I have a problem – if A&E had a Hoarders episode for those who hoard programming languages, I would be on that episode.  I’ve always enjoyed various programming paradigms and switching between languages – yes, even when my apprentices ask me about a perl script they’ve found and what it could look like in the languages we’ve shown so far.  I like that I’m not tied to one IDE, one platform, one programming language, one train of thought.  I like that I have the flexibility to change platforms and tools as needed.  And I’m thankful that Microsoft still keeps me as Most Valuable Professional – with involvement in the community being key – and is supportive of those of us living a polyglot life.  It’s definitely an interesting realm.

Programming languages… gotta learn them all! 🙂