I used to be an above-average programmer. I started coding BBS utilities in Pascal when I was 13, and eventually got to be pretty proficient with algorithms and problem solving. I even won a team programming contest back in high school. By the time I graduated from college I was proficient in C and C++, Java and Perl. I was confident in my abilities, and even today I don't think I was unjustified in my optimism.

When I graduated and moved to Sunnyvale in 2000, I took a Technical Support job at Ariba. I was under the impression that the job would eventually allow for a transition into development after some time. But let's just say my timing was sub-optimal: the stock market, the job market, and the economy began swirling in the toilet the month I started, and I spent the next 4 years on the front lines supporting Ariba's procurement network and applications. I worked with a great bunch of people, learned a lot and had some limited opportunities to write code, but I couldn't help but feel my skills slipping away.

In 2004 I took another job at another company, but it didn't deliver the development role it claimed to be offering. Instead, it was heavy on FTP but light on Java; it demanded unreasonable personal sacrifice as the status quo. While it is true I've learned quite a bit about Enterprise IT, system administration, project management and sales, deep down I know that tailing logs and copying files late on a Friday night can't be my raison d'tre.

So here I sit, many years since I've written code seriously; years after I accepted my fate and put my programming hat in mothballs. Yet the curious, creative fire still burns. I still read development blogs and books; I still learn about new frameworks. Either I am in denial, or -- maybe -- I could relearn what I've forgotten? Train myself anew? Become the headstrong, independent and infinitely capable developer I thought I'd be?

Can I reestablish proficiency as a coder? I'm betting the farm on it.