(Re)building a better programmer

Hi there. You don't know me, but in 1999, I was on top of the world.

Back then, I was a Microsoft MVP specializing in Visual Basic 6.0. As the webmaster of Visual Basic Thunder, thousands of VB programmers treated me as an authoritative source for information on doing everything from the simple to the impossible in Microsoft's "toy" language. As a member of the Common Controls Replacement Project, I rubbed shoulders with such esteemed fellows as Karl E. Peterson, Randy Birch, Brad Martinez and many others who pushed the limits of the most popular software development tool in the world. I studied at the feet of greats such as Matt Curland and Bruce McKinney, striving to reach ever greater heights in unlocking the power of Windows.

My purpose in this introduction isn't to brag, but to illustrate just how far a programmer can decline. You see, in the intervening years between then and now, my programming knowledge has only become less and less relevant.

It was a slow, steady slide into apathy. Microsoft quietly began shopping around Visual Basic's replacement in 1999. I won't recount the debacle here, but suffice it to say I ultimately allowed my disillusionment to get the better of me. Instead of moving on to new challenges and opportunities to grow as a developer (please note: I'm did not consider .NET to be such an opportunity), I eventually abandoned the programming community - opting instead for a life in Information Technology, another type of technical expertise altogether.

It was there that I bounced around between several different job roles - first hardware/software troubleshooting, then desktop or server engineering. Today, I'm a black sheep working in I.T.; the guy who throws together PowerShell scripts or little C# web-based tools to make things happen. Yes, I've reluctantly learned C# and ASP.NET because it's been standard at every company I've been with since 2004.

But that brings me to the point of this blog: Somehow, after all these years, I'm still a programmer at heart. Problem is, I'm not a passionate programmer. I haven't been "current" now in about 15 years, and I haven't cared to be. I was bitter about .NET. Maybe I allowed .NET to sour me on everything else.

NoSQL. Node.js. Mobile development. Functional programming. These are all things that I should probably know at least a little bit about, but it's all Russian to me. Apathy. It's been my number one enemy.

Don't get me wrong; I'm still pretty good at what I do. But I could be so much better.

So one evening not too long ago, while I was busy feeling sorry for myself and what I'd become, one thought shouldered its way into my mind and refused to be silenced: If you want to, you can change it.

"No," I argued with myself. "I don't have time to screw around with learning new concepts these days. I'm not a carefree bachelor anymore."

You can change it.

"I have a wife. Kids. I'm too far behind to catch up."

You can make excuses, or you can change it.

"Ugh. Maybe. Maybe you're... umm, maybe I'm right."

And here I am today. Putting together a self-improvement plan, of sorts. A list of books to read. A list of technologies to learn. A list of stuff I want to know, need to know. I'm ready to be passionate about software development again.

It's here, on this tiny blog of minimal importance, that I'll chronicle my journey.