The Years of Experience Myth

Now, try to explain all this to recruiters-who-use-grep, there are plenty of them all over the world.

Recruiters-who-use-grep are ridiculed for good reason by Joel on Software, see his post about “JavaSchools”.

I completely agree with this article. I’m glad to say I’m a large exception to this. I’m a programmer (mostly web stuff) for a large corporation, currently have less than a year of experience, only a high school degree (working on Associate’s), and was congratulated by my boss just today for the work I did on my last project. The only reason he wants me working towards a degree is because the customer won’t like seeing somebody on a project without a degree, and he even seemed to disagree with the idea that the customer would discriminate on something such as degrees or years of experience.

Reminds when I was looking for web work in 1997 – frequently encountering ads for positions requiring “5 years experience” with CGI or HTML. I guess they all wanted Tim Berners-Lee. (The punchline was the usual requirement of “BS in Computer Science” … because marking up HTML is so programmatically demanding?)

More likely: these were non-software shops (like power utilities or magazine publishers) who had HR guidelines for all hires … said guidelines (vintage 1988) probably had listings like “Information Systems Developer III” which was the best job description the HR drones could find for the job … and the guidelines specified “Bachelor’s degree (Computer Science) and 5 years experience with relevant technologies” … thus the ads

No hire ‘cause they don’t want you in “The Club!” It’s exclusive, and where everybody’s supposed to be a demi-god, or a cup-bearer! Can you play by those rules, and master the secret handshake at time of interview? HR has its marching orders. Gotta’ look at your small hiring problem in context. Big Picture is whole economy that’s “trickle-down!” And so-called “job market” reflects exactly that circumstance. “Gatekeepers” - and by their peculiar psychology - are the key players. Can’t change small hiring problem without repainting Big Picture, and with different subject matter, also. This isn’t even “thinking outside the box”. To solve entrenched “hiring problem”, and in any industry necessary to decouple hugely co-dependent demi-gods from their always enabling cup-bearers. Certainly it can be done. Possibly at level of “physician heal thy self” and, however, which is idealistic. There must be “new rules”, therefore, and where there is agreed on “overhaul” of entire economy, as regards the way everything “doesn’t work”. So your small IT hiring problems are non-unique, and you must see a greater need before you can fix those. All respondants who offer their anecdotes, and constructive criticisms, on this blog are half-way there, in my opinion. Draw your own conclusions about all the others.
Tom

So, what’s a new programmer supposed to do? According to:

http://www.computerworld.com/action/article.do?command=viewArticleBasicarticleId=9066659

“In the 2006-'07 academic year, only 8,021 students graduated with computer science degrees from these schools – the lowest number of graduates this decade.”

The same site also has articles talking about how hot the market is for new programmers. Yet, my son, a recent computer science graduate, is having a devil of a time finding entry-level jobs to even APPLY for. Everyone wants years of experience. Where do 10,000 (on average) newly hatched programmers GET those years of experience?

We’re down in Nowheresville, FL. But, as an example, lets take a look at entry-level jobs in Washington state (I hear there’s a software shop or two up there :slight_smile: ). According to

https://fortress.wa.gov/esd/worksource/Employment.aspx?CurrentPage=Employment

there are 31 entry-level “Computer and Mathematical” jobs in all of Washington state (going back about 9 months). Granted, that site is just WA’s “joint venture of organizations dedicated to addressing Washington State’s employment needs.” But, where else should the new computer science graduate look for non-local jobs?

Great post. I’ve refered it on my own blog:
http://marianariva.blogspot.com/2008/11/years-of-experience-myth.html

Best regards from Argentina
Mariana

Bit late to the party but still wanted to relate something I saw a few years ago. I was looking for a job in the US since I had a girlfriend there at that time. This was back in 2004. I found a posting requiring a Java programmer with 10-12 years of experience with Java. I wrote a mail to them recommending they contact James Gosling for the job, since he would be practically the only person qualified for the job. I never heard back.

I might be wrong but in the UK you can no longer ask for x amount of years any more as it is seen as discriminating.

Of course, it depends entirely on your requirements. Imran had a post about this recently:

http://tickletux.wordpress.com/2007/12/06/recruitment-and-the-mythical-year-of-experience/

I think the point is that when you ask for years experience it should be seen to indicate a certain ability level amongst the general developer population. i.e. if you want a junior programmer who perhaps doesn’t know many languages/to a great depth then maybe 1 year is appropriate. If you want a language specialist then 10 years might be appropriate. The real key thing is to not filter out applicants only because they don’t have the exact number of years. A good developer with 2 years experience might be as good/knowledgeable as an average developer with 10 years. If you don’t apply any baseline ability filter then surely you spend your days going through thousands of CVs.

Joel Spolsky’s been saying this for a while: smart and gets things done.

I’ve interviewed a lot of tech people over the years and haven’t gone wrong with this maxim very often:

10 Years of Experience in [technology]

 is more often than not:

The same 1 Year of Experience in [technology] 10 times over.

Holds true whether you’re a software developer, systems administrator, or a sanitation engineer. Experience means very, very little here.

Me? I’ve got 20 years in this industry. Maybe only a few of them I’d consider “repeats”. Otherwise, every year I’ve learned something new, mastered a new technology, or did something completely different. When I say I’ve got 20 years, I mean it. I have a lot on my resume, and everything on there I’m prepared to give a 30 minute in-depth lecture on.

I wish my candidates could.

  • If you put down TCP/IP on a resume, you’d sure the hell had better know how to describe a 3-way handshake and discuss – in depth – some techniques to avoid a SYN flood.
  • Saying you understand SQL is the best way of getting me to ask you to design a table to describe a hierarchical structure or give a talk on concurrency.
  • Woe if you put down something as generic as “Unix”. Really? Unix? Tell me about the structure of an i-node, how fork() works, or how making system calls affect scheduling on the architecture of your choice.
  • Oh? You really meant “NFS, but it’s been a while.” Fine. Then let’s discuss file-locking strategies under NFS version 2 or 3, your choice.
  • Both Java and C#? I love exception handling. Which method do you prefer, when and why? Your response had better indicate that you /really/ understand them, and that you’ve wrestled with both of them. Hate one or the other, love them both, you’d better have an opinion.

I don’t care about language syntax (you can always look that up) or the classes you’ve taken (for $300 I can buy a bachelor’s degree, meh). Demonstrate some understanding.

You really, very seriously, need to get a "format for print"
or “print” button. A blog without one is half-assed at best.

Dude, this blog does have a format for print option. It’s available from the “Print” option under the File menu.

Oh wait, haven’t you heard of CSS?

Great article… couldn’t agree any more.

You definately hit the nail on the head and it is kinda funny, because I use to hear the you don’t have the Real life experience when I was orginally looking for a job after college until I was hired to a consultanting company. What I think is so extremely funny and why I feel the years of experience should not be a factor in hiring/recruiting is, because recently we hired a developer who had 10+ years of experience with the language that I do virtually all of my code work in. The developer in question was let go within 2 months, because he was not able to do even the simplest tasks correctly. Unfortunately this developer would work great as a code monkey, but is unable to work as a developer.

experience …hmm, do you want to know where’s the difference between experienced developer and rookie?

rookie will give you faster code, rookie will give you code prepared for majority of future demands right now, may be rookie is even faster then experienced guy

…but experinced guy will give you simple code, more LOC, slower execution BUT code which is easy to understand and easy to maintain.

In other words, from rookie you’ve got super dooper code but and only guy whis is effectively able to maintain this code is your one and only rookie … but he won’t do that because it’s not challenging, it’s boring and first major new feature reqeust will ruin all the magic. From expereinced guy you have a code which is simple, everyone can maintain that code easily, anyone can add new features easily … and the code is based on “what was wrong last time I did it” experience (that’s all the magic of the experienced guy … and that’s what I call The Experience) … and as a bonus usually you have 100 times more accurate time estimations from experienced guy.

That’s basically the whole story.

I want an experienced guy working with 2-3 rookies … it’s like family, children need parents.

So again I have to almost completely disagree with your article (as I did with your interview process ideas), sorry jeff
simon

You’re advice to beware of companies who want “years of experience” is very valuable. After graduating I learned OOP, Software Patterns, and a few frameworks on my own. However, most companies I have worked for have had senior developers who wrote the ‘official’ framework or program using procedural non-sense. When I contributed object oriented solutions, my contributions were redacted and I was told to stick with code that ‘others can understand’. From now on, I will carefully kick their code tires to see if I should waste my time or not. All too often I have been forced to meet unrealistic deadlines or overcome unreasonable expectations due to the ‘senior engineers’ lack of code craftsmanship. Just because the program works does not mean it’s right. When I want to make it better, I’m perceived as a threat. When I play their games it comes back to bite me in the end. Getting stakeholders, who don’t understand software to believe in my craftsmanship is difficult. It seems whoever gets into a company first is automatically perceived as a genius because they made something work that resulted in the sales to get them started. Perhaps a better strategy is to be the first into a company and write the software from the ground up, or just start my own company.