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.
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!
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. Forgotten/opticalreflex/CC BY
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.
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
Chris has never officially met a hipster. Aside from vintage clothes, what hipsters and zombies have in common is denial.
Chris Eargle is a Microsoft C# MVP with over a decade of experience designing and developing enterprise applications, and he runs the local .NET User Group: the Columbia Enterprise Developers Guild. He is a frequent guest of conferences and community events promoting best practices and new technologies. Chris is a native Carolinian; his family settled the Dutch Form region of South Carolina in 1752. He currently resides in Columbia with his wife, Binyue, his dog, Laika, and his three cats: Meeko, Tigger, and Sookie. Amazingly, they all get along... except for Meeko, who is by no means meek.
Copyright © 2016, Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.