Getting my hands dirty with C#

Add me on Twitter, Bluesky or LinkedIn! I'm rebuilding my network from the ground up. You can cite this post as a reason for reaching out if you're shy.

I know that GPT-4 is all the rage right now, but I decided to spend some time this weekend on something a little less sexy: learning to work with Microsoft’s original attempt at a Java killer, C#. Some quick projects:

“Really, C#? Why? You already know like, Python and Haskell and a million random command-line tools. What’s the appeal?” Money, baby. Outside of the Valley everyone and their uncle is still using either Java or C#, and I had enough Java in AP Computer Science twelve years ago. Besides, working my way through Haskell Programming from First Principles last year while I was unemployed was something I did for me, not for the market; I’m a firm believer in listening to the market when it’s giving you hints.

I’m also a firm believer in the wisdom of the traveling salesman. Your first programming language might be an arbitrary choice, but your second one almost certainly won’t be, nor will the first database you work with, the first third-party library import, etc. How do you choose what to learn or do next? Turns out you can get pretty far just learning the most obvious, popular thing.

In my case, the “most obvious, popular thing” is C#. I already know PowerShell better than I have any reason to, and C# ties in to PowerShell beautifully. The backend developers at my current job all use C# - and a lot of them are veterans, having progressed to C# from the halcyon days of Finnish ’90s and ’00s C++. These guys know their stuff! And, finally, I’ve already been immersed in the Microsoft and Azure twin ecosystem for months now – SQL Server is in my bloodstream right now, as are all the most common assets created on that cloud platform. C# works with all of those technologies impressively well.

Here’s what my setup looks like so far: