First Weekend Off

Re-grouping and thinking about next steps.

I've spent so many Saturdays in the office that it felt really weird to take a two day weekend. Not needing to get up and go to work on Monday was even odder. It would have been nice to take a break except now I have even more pressure to prove myself as a programmer.

Over those two days I actually did very little of use. We've had the hottest weather so far this year over the last few days, peaking on Sunday at 95 degrees Fahrenheit. My first priority was just to clean up enough to make room for everything I brought home from the office, and to setup a workspace. I cleaned in two shifts both days, and only finished up Monday afternoon.

During breaks on Saturday I hit Agile Principles, Patterns, and Practices (APPP) hard, finishing over nearly twenty chapters. On Sunday I took another break from uncle Bob and started doing some LeetCode exercises in C#. I want to start some big project in C#, but I think it was good to start with those exercises. It forced me to think about very simple algorithmic problems without the distractions of application architecture.

I have been using dynamically typed programming languages almost exclusively for as long as I've been programming. When I have used statically typed languages all the type declarations just seemed like a pain. They didn't add anything I didn't already have in for example Python, they just made me spell-out things that could easily be inferred.

Over the last few years there has been a bit of a holy-war brewing over the merits of dynamic vs. static. It seemed dynamic was winning out with the rise of Python, Ruby, and Javascript. Recently Haskell has been balancing the scales, but the Haskell community seems to enjoy intellectual obfuscation as much as powerful abstractions. Having written a little C# now though I am starting to see some merits to the way static languages work, especially with respect to classes as types.

Don't get me wrong, I still find the additional ceremony required for even simple things irritating. For instance many of the patterns demonstrated in APPP are completely unnecessary in Python, mainly due to duck-typing and the lack of private/public distinctions in the language. I also have yet to see the amazing number of problems static+compiled supposedly catch.

Anyway, it's hot and I want to get back to programming.