Thursday, March 26, 2009

Why "Code Shark"?

Well, it's certainly not because I think of myself as a relentless apex predator, prowling the seas of software development. Rather, I'm alluding to the fact that certain species of shark (specifically, obligate ram ventilators) have to keep swimming in order to survive. Lacking the ability to breathe in the conventional piscine manner, these sharks maintain a steady flow of oxygenated water over their gills by swimming forward with their mouths open. If they were ever to stop, they would suffocate and eventually die.

I've been coding for a living for almost two decades, and in that time, I've learned that a career in software development has something in common with those sharks: if forward motion stops, it suffocates and dies. "Forward motion", in this case, means the acquisition of new skills: new languages, new tools, new methodologies, and even new ways of thinking.

If you keep up to date, a wider variety of interesting projects are available to you. If you fall behind, you get stuck maintaining crufty legacy code. (Or worse, you get a Dilbert Principle promotion and become one of those managers who has no clue what his/her underlings actually do.)

Many years ago, I had a career near-death experience: I unwittingly drifted into a dead-end job maintaining an obsolete system. When I decided it was time to move on, I was stymied because I possessed none of the skills my employer required for new development projects. Looking for jobs at other companies was equally fruitless; the only opportunities open to me involved maintaining the same kind of obsolete system!

Escaping from this trap required a complete career reboot: I quit my job, learned a new language and paradigm (Java and OOP), and persevered until I found an employer who was more concerned with my potential than my experience (or lack thereof). I was relieved to get my career moving forward again, but it was very costly in both time and money - it would have been far better to never get stuck in the first place.

In the years since, I have made a concerted effort to fill in the gaps in my skill set, so as never to become obsolete again. It's a daunting challenge; the software development ocean is so vast that keeping up to date is nearly a full-time job in itself. So far, the investment has paid off: each of my jobs has been more rewarding - intellectually and financially - than the last.

In this ongoing process of reading, learning, and acquiring new software development skills, I've occasionally made discoveries that might be helpful to others who are on a similar journey. I've belatedly set up this blog to share these ideas with a wider audience. I hope you find them useful, or at least entertaining.

Keep swimming!

1 comment:

  1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training from India . Nowadays Java has tons of job opportunities on various vertical industry.