This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.

Anomaly ~ G. Wade Johnson Anomaly Home G. Wade Home

February 09, 2008

A Different Look at Years of Experience

I've been spending a fair amount of my time the past few years helping hire programmers. I have also spent time training both entry-level and senior programmers. So, Jeff Atwood's recent blog entry The Years of Experience Myth struck me as particularly interesting.

While I agree that the number of years of experience a developer has is mostly uncorrelated with their programming ability, I'm not sure I would go as far as Jeff did in suggesting that anything more than a year of experience is not worth considering. I think years of experience do count for something, we just can't use that measure in hiring decisions. As a very wise mentor of mine used to be fond of saying

There's a big difference between five years of experience and one year of experience five times.

There is no way to tell from a resume whether or not a person is in the first category or the second. Some people manage to get a year's experience under their belt and stop learning. They can continue to work on the same kinds of projects, applying the same kinds of techniques, without ever learning anything new. On the other hand, some people never stop learning. These are the ones that other programmers go to when they have a sticky problem that is holding up a project, or to help on that impossible bug.

Understanding vs. Mastery

One point where I specifically diverge from Jeff's post is in the suggestion that once a programmer has 6 months to a year of experience in a technology, they either get it or they don't. A specific example that does not match this is object oriented programming. Although it has become the dominant programming paradigm, it does take some work to really understand it. But, that's a topic for another day.

In every language or technology I've used in almost two decades of programming, there was a difference between learning to use the basic tools and actual mastery. Mastery takes time. Unfortunately, we cannot tell how well someone has mastered a topic by the number of years they have spent doing it.

Hiring

This leads back to Jeff's post. I agree that there is a problem with hiring practices that depend on the number of years that you have spent working on a particular technology. In the worst case, I have seen job postings that are looking for exactly the same experience as the person they are replacing. (You've seen these. They have 4 or 5 n years experience using technology Y entries. Some of the technologies are only used by two companies on the planet. etc.)

I'm not willing to write off years of experience. But, I do tend to use it in a different way. If I see someone whose resume states 5 years of experience in C++ or Java and after a phone screen, it appears that her understanding is closer to 1 year, I am quite skeptical about whether or not they will be able to learn. If someone claims 2 years of experience and has about that level of understanding from the phone screen, he is probably a good candidate. A few times, I have run across someone with a year of experience on their resume, but with a real understanding of the topic. We want this person, she is a motivated learner.

Job Postings

I did, however, like Jeff's point that a job posting that focused on a laundry list of years of experience in particular technologies was an indicator of a position I might not want to work. That should be taken with a small grain of salt, since the people doing the work may not be the same as the ones writing the job posting.

All in all, it was a thought-provoking post (at least to me).

Posted by GWade at 11:16 AM. Email comments