“Let’s Go!” — Or, a Life-Long Love of Language

I have a collector’s mentality. If it comes in different colors, shapes, or styles, my natural inclination is to own one of each. In a lot of ways, it is about aesthetic beauty. I’ve collected Magic: the Gathering cards with their beautiful art, old Disston handsaws with their stunning etches and hand carved apple handles, and a lot of other things of beauty in my life. The one collection that seems to be consistent, though, is programming languages. It started early on, in my freshman year of college, and still affects my day-to-day relationship with software development. It might be hard to see how that relates to the other stuff, but to me the patterns and shapes of the written code carry their own unique loveliness that is kind of unique in the world.

So how did I get here, today? As a freshman, I took an intro to programming course that used C as the language for teaching basic logic and structures like loops and if checks and variables. The usual beginning stuff. I enjoyed what I was learning so much that halfway through the first semester, I changed majors from Electrical Engineering to Computer Science, and never really looked back. From there I took data structures with C++, then later on a Programming Languages course. Now, at some schools this is a comparative survey of languages, discussing features of each and the tradeoffs between, but at Tulane, we learned this stuff by implementing them (static vs dynamic typing, strong vs weak typing, various paradigms, etc) in a language interpreter, the basis of which was provided by the professor. This early look under the hood of real language features set me up for a life long interest in various languages.

By my senior year, Java 1.2 was released (December 1998), and I started looking into it and the JVM for a senior research and thesis project. Not too long after, Python 2 started showing up, and I really started showing my collector’s tendencies. Hey, this one is simple to learn, to boot!

Java stuck with me through my job after graduation, becoming the language I’ve used the most, but the interest in other languages never went away. I looked for places to expand my toolset, including quick prototypes and one-off projects. I once was asked, partially to get me to go away for a while, to build a service in Groovy, and the manager was a little perplexed when I came back in less than a week with a fully functional prototype. I first picked up Go in a similar way, when there was some internal learning work going on at Daugherty Business Solutions, and we built out some things just to learn. I was kind of in my element, picking up new things, and learning the inherent beauty of that language. This is what I consider exciting. The problem has been and seems to still be acquiring the depth to truly consider myself an expert at any of these.

Call me restless. Call me unfocused. Hell, call me a late-diagnosis ADHD case, which would all be true. But the fact is, my brain seems to do well with this sort of collecting. I consider it an advantage, and it is when I can focus it and actually become an expert at something I’ve learned.

Yet, there’s pride in being fast at something that others find difficult. Right now I’m channeling all that restless energy in a different direction. I am pushing through the instinct to try something new, and instead working on finding the excitement in depth itself. Personal projects using Go, until ’expert’ doesn’t feel like a stretch.

The fun thing is that I already see it all coming again. Will I switch back to trying out Python? Try to get deeper with Typescript? Wait, Rust! Completely different beast. So, if you need me, I’ll be over here starting new projects that may or may not get finished so I can learn new stuff.