Leveling Up
I’ve been coding professionally since 1993: through COBOL, Informix, Perl, Java and Ruby. I’ve worked at big companies of hundreds of people and small companies with just a few dozen. I’ve written batch jobs and web apps. I’ve worked in The South and the midwest (note the different capitalizations?). But the one constant through all of my roaming is my intense desire to learn, to get better, to explore new worlds.
I use Rails, but am fascinated by Sinatra.
I love Ruby, but learn JavaScript (at least the Good Parts).
On a regular basis, I discover that everything I’ve been doing up to this point is wrong. But that’s a good thing, because that means the code I write today and tomorrow will be a little less embarrassing, a little more expressive, a little more maintainable, a little more fun.
I’m not much of a gamer, certainly not by geek standards, but to me this is a game. Sometimes the machine’s on my team and sometimes it’s the opponent, but I’m on a quest, completely consumed with finding the treasure, solving the puzzle, slaying the dragon.
My whole development career has been a process of continually leveling-up. Gaining strength, new powers and protective armor (against bugs, at least).
I’m 44 now (as of October 2012). Most of the people I started coding with have moved on to management. We brought on a new coder a year ago and my boss told him he’d be working with “an older guy.” As in, “set in his ways.” As in, “hasn’t learned anything in years.” The sort of old-school nerd who doesn’t realize how ridiculous he sounds when he says “maybe we should drop down to assembly for speed.” I’m proud to say the new guy (brand-new to programming and probably 10 years younger than me) was pleasantly surprised. He said “You’re the opposite of all that!”
I spend an excessive amount of time listening to podcasts like the Ruby Rogues, watching tutorials like Destroy All Software and reading books like Sandi Metz’s Practical Object-Oriented Design in Ruby. I learn so much I feel like I could never cram it all into the programs I’m writing. My links collection in Workflowy is getting ridiculous. I prepared for RubyConf 2012 like it was the Superbowl.
I obsess about my text editor, my command of git, my understanding of Tell, Don’t Ask. And frankly, I love all of it. Spending an entire weekend working through Jeffrey Way’s fantastic Perfect Workflow in Sublime Text 2 is like a vacation for me.
In a nutshell, I love to learn. I love to get better. I’m like a nerd shark: if I don’t keep learning, I die.
With this blog, I hope to infect you, too. Because being able to program is like having superpowers, and you can train yourself to have as many as you want.