Make Some Resolutions!
Surviving three apocalypses in two years was so exhausting that I managed to miss three others
. We supposedly have five more years before the next, but I fully expect a hipster apocalypse or zombie uprising before then. It may even be the same event if a nefarious person discovers NSA back doors in Apple products.
I have neither the psychic powers nor statistical genius of Nate Silver, so I cannot accurately predict these events. The best advice I can give is to be prepared! Invest in a Windows RT device and avoid coffee shops.
Now that 2013 is unexpectedly here, it’s time to make promises to ourselves that we don’t intend to keep. I know, you do “intend” to go to the gym. Well, I’ll see you there!
I'm a developer, I do developer things, and I make developer resolutions.
Fun in the Sun
My first resolution is to get some sun. At some point in the past few years, I trashed my last CRT monitor (Office Space style), and I have become progressively paler ever since. Unfortunately, our bodies have not evolved to produce vitamin D from coffee, so radiation is a bit of a necessity.
Kill your PC/Metro Centric/CC BY
Since I no longer have to worry about Quetzalcoatl wandering the beaches of Cancun, I may plan a trip there. If you've found a good way to keep the glare off my laptop screen, please let me know.
Learn a New Language
My native tongue is C#, and I am conversational in a few others. Unfortunately, I primarily know object-oriented programming languages. Taking pride in knowing C#, VB.NET, and Java is like taking pride in understanding American English, British English, and Redneck.
My resolution is to learn a new language in a completely different paradigm.
A is Z, B is Y/Tim Sheerman-Chase/CC BY
Before everyone starts fighting over Haskell and Miranda, let me repeat: “different paradigm.” I need a programming paradigm that is in no way familiar to me. The goal isn't to write production code in this language, it’s to learn how to think about problems differently.
I'm currently considering APL. Here’s an example.
If you run this example, you get Conway’s Game of Life. How? Beats me. That makes it perfect!
Improve Something Old
A couple of years ago, my mother gave me a box of artifacts from my time in grade school. I began reading my old essays with nostalgia that turned into horror. An essay I wrote in 3rd grade had terrible grammar, limited vocabulary, and a complete lack of appropriate citations.
Much like writing, programming is a skill that improves with experience. I've been a programmer since I discovered GW-BASIC on my DR-DOS box at 14, and I have dozens of projects I haven’t look at in well over a decade. I know there are gems that could use a little polish.
My next resolution is to find an abandoned project from the days of yore, and recreate it applying current (and refined) principles and techniques.
It’s possible I won’t find anything exciting, and I may not be able to recover programs stored on old media. That’s no problem. Many people leave their garbage in public repositories for others to clean up.
You may be scratching your head at why I would choose to do something so masochistic. Untangling nasty legacy code to create something beautiful is rewarding in itself, kind of like rebuilding the engine of your first car. More importantly, it exercises skills such as testing and refactoring legacy code.
The source code doesn't need to be extremely old. Even updating a C# 2 project to C# 5 is great for this purpose. Microsoft officially released Visual Studio 2005 over seven years ago, and much has changed since.
Invent Something New
I find it rather blasé when someone proclaims the world is changing. Just how many life-altering technological inventions and innovations have to occur before people stop stating the obvious?
This industry requires you to keep abreast of new technology, since we are the ones writing the code that makes it run. However, simply learning what others know isn't enough for me.
My final resolution today is to invent or discover something new.
Back in time/JD Hancock/CC BY
I want to indulge my inner-hipster in the ultimate way possible. If I manage to create the next big thing, I can grab my double soy latte and observe, with an air of superiority, everyone talking about my creation. When someone tries to show this cool new thing to me, I can scoff that I discovered it first. There is no way to be out-hipstered!
The hipster apocalypse is coming. You have been warned.
Chris has never officially met a hipster. Aside from vintage clothes, what hipsters and zombies have in common is denial.