Showing posts with label software development. Show all posts
Showing posts with label software development. Show all posts

Wednesday, March 3, 2010

This blog is not dead

Wow. I can't believe it's been nearly a year since I started this blog - and nearly 11 months since I last posted anything! I took a little break, but I never intended for it to lie fallow for so long.

A prolonged silence of this sort could either indicate a lack of interesting developments to blog about, or that I've been so busy with a multitude of projects that I haven't had time to blog about any of them. Fortunately, it's the latter. I hope to "catch up" by posting about some of these projects in the near future, but in the meantime, here's a taste of what I've been up to:
The flip side of all this Scala and Lift activity is that I haven't done any work with Groovy or Grails in quite some time. I never made a conscious decision to stop using Groovy and Grails, they just sort of fell by the wayside as I explored the Scala landscape.

That's not to say it's been "All Scala, all the time", though. Oh no, there have also been side trips into Git, Clojure, Haskell (Ouch!), iPhone Apps, and Cappucino. Probably a few others I can't remember right now.

It's been a busy - and productive - year. I promise not to make you wait another eleven months to hear about it.

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!