For our parents, getting and keeping a job was relatively easy. Generally speaking, the professionals of a generation ago were confident of finding and retaining jobs. It was common for people to work for a single employer for their entire careers.
I don't have to tell you that times have changed. Not only has finding a job become much more challenging, but keeping that job has become difficult too. (And as much as I'd like to, I can't blame the entire situation on outsourcing – though I will address that topic in a future post.)
The result is that in addition to their day-to-day responsibilities, professionals must now invest deliberate time and effort in maintaining their employability.
For a developer, that means keeping up with new technology. That's what I intended to write about today. Specifically, I was going to offer fact-based advice about which new languages you ought to be playing around with in your spare time. Language competence is a fundamental part of employability. Java may have gotten you into your current job, but odds are your next job will require Scala or Haskell or Python.
But a stumbling block appeared on the path between me and enlightened punditry. My most earnest research techniques failed to reveal which languages are becoming an indispensable part of the job-seeker's CV. Language-trend surveys, once so plentiful in the software-development world, appear not to have been conducted in years. The development marketplace has splintered, fragmented into dozens of subspecialties, each with its own preferred languages.
My research did take me to one interesting page. The Tiobe Programming Community Index is a language-trends analysis that is updated monthly by Tiobe Software, a consulting firm that helps corporations assess and monitor the quality of their software and software-development methods.
The Tiobe Index is fascinating, but if it truly tracks language adoption rates that's just accidental. The metric is compiled by counting the hits returned by a selection of search engines for each programming language. The results are normalized according to a simple formula and updated each month.
Rob Diana's Regular Geek blog has better data – based on language competencies mentioned as requirements in online job postings – but Diana doesn't track enough languages for my tastes. Check out Traditional Programming Language Job Trends and Web and Scripting Programming Language Job Trends.
So, what language should you learn to enhance your employability? Maybe that's the wrong question. Maybe we should be looking at different kinds of languages: concurrent languages, functional languages, object-oriented languages, and so on. If you are competent with one or more languages from each of these families, then you have made a substantive investment in your future. Not enough for them to notice in the HR department, perhaps, but substantive nonetheless.
I'll follow up on these notions in a future post.
Web recommendation: I send you today to the Web site of prolific author Neil Gaiman. I resisted the man's work for years, but have recently become a fan thanks to a persistent young lady who literally thrust one of his books into my arms. There's an undercurrent of relentless self-promotion at the site, but there's also some good stuff, including free short stories to get you hooked on Gaiman's award-winning work. J.D. says check it out.
J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. He recently relocated to a small town outside Belgrade – stop by if your travels take you through Serbia.