Most job listings ask for a certain number of years of experience. Either in a particular technology or in the industry. This presumes that the developer learned each year.

I read a quote about whether the candidate has five years of experience or the same year of experience five times. I don’t remember where this came from, but I think it clearly expressed an important point – that we can’t just measure years.

Upon re-reading the “Software Craftsmanship“, I came across the concept/phrase “perpetual novice.” This is exactly the idea. If one never picks up best practices and software development habits, all that time could be spent repeating inefficient ways of doing things.

I’ve seen this upon interviewing as well. Some people with “X years experience coding Java” look like they can’t code their way out of a paper bag. I’m thinking this is related to the “perpetual novice” concept. These people figure out everything from scratch and repeatedly solve problems the industry has surpassed.

What’s dangerous is that such developers don’t consider themselves novices anymore. Someone new to the field or right out of college realizes they are a novice. They ask questions and realize there is much to learn. “Perpetual novices” think they know quite a bit and are less likely to ask a more experienced person.

And worse is when the real novices learn from perpetual novices – the opportunity to learn better ways is lost and the cycle continues!

Have you encountered any perpetual novices in your career? What do you think makes them stand out?