7

How useful would it be for a recruiter?

In martial arts there are a minimum number of trainings, not years of practicing, to be evaluated for a higher level. I saw some exceptions but there are rare.

In software, maybe this would be valuable to express experience in particular technologies such as OO, OR/Mappers or specific DBMS.

gnat
  • 21,213
  • 29
  • 113
  • 291

12 Answers12

17

I once worked with a guy.

His boss told me: "He thinks he has 7 years experience. He does not. He has 1 years experience, 7 times."

The subtle difference is in not learning / growing / thinking more.

There's a big difference between a Pilot and a programmer. A Pilot has to know and memorise procedures, and be able to think in a crisis. A Programmer has to think through complex issues and create new things out of nothing, and do this for between about 2 and 6 hours a day.

You can improve your ability to think by actually doing it, but to claim that "time on job" in a creative business is equivalent to a skill set is a bit of a stretch.

quickly_now
  • 14,942
14

Once you clear 10,000 hours it's all relative

From Malcolm Gladwell's Outliers, it can be shown that 10,000 hours of continuous active learning (about 10 years at 20 hours per week) is required to become an expert in a particular skill.

I'd say that the rule is transportable to programming, even allowing for changes in frameworks and techniques. I'm thinking exposure to design patterns, methodologies and so on.

If you then follow the Dreyfus model of skill acquisition then it seems that the following may hold true (I'm just filling in numbers as I feel - there's no citation):

  • Novice (0-1,000 hours)
  • Advanced beginner (1,000-4,000 hours) - most common
  • Competent (4,000 - 6,000 hours)
  • Proficient (6,000-10,000 hours) - longest period
  • Expert (10,000+ hours)

So to enable you to filter your candidates, perhaps apply these values to each of the levels of experience you require in your top skills (allowing for general overlap due to exposure, e.g. a Spring expert will surely have competent XML).

Now, comes the tricky part - just how are you going to prove that they're telling the truth? Perhaps it's time to break out "Fizz Buzz" and "Guess a number".

Gary
  • 24,450
  • +1 - but I think these numbers are perhaps a little high. I'd expect that most people would be able to be at least an advanced beginner after say, 3 months full time (40hrs/week) - so about half of this estimate. Say 9-12 months to become "competent". – TZHX Feb 13 '11 at 19:58
  • 12
    Trouble is, even if they are telling the truth, there is a decisive difference between spending 10,000 hours learning new stuff (doing different projects and solving challenges requiring ever wider and deeper expertise), and spending 10,000 hours repeating the same basic stuff 20 times over. – Péter Török Feb 13 '11 at 20:00
  • 1
    According to these numbers I should be largely overqualified for most of the jobs on this planet. Yet I somehow feel this is not yet the case... –  Feb 13 '11 at 20:00
  • @Developer, let's count 5 years per profession... even if there are lots of overlapping skills between related professions, I am pretty sure we can count at least 100 different skill sets... wow, you must be Santa in disguise ;-) – Péter Török Feb 13 '11 at 20:07
  • 5
    @Pierre, you need to read it for 9999 hours more then :) –  Feb 13 '11 at 20:10
4

I'd rather say it measures what cannot be expected.

Someone who has worked in the field for 20 years may or may not know a lot of things, but one who has only worked for years or months is guaranteed not to know these things.

You can only verify what is actually known by probing or testing them.

  • @Thorbjørn Ravn Andersen: unfortunately, I don't have the resource to test the 100 candidates I received. I have to create a shorter list. –  Feb 13 '11 at 19:22
  • @Pierre, time to open another question with 100 pdfs attached then? –  Feb 13 '11 at 19:35
  • Oh, just give me your email :) –  Feb 13 '11 at 19:39
  • @Pierre, start with discarding all those not fully fitting the profile you need. –  Feb 13 '11 at 19:42
  • 4
    @Pierre, FIRST agree on the consultancy rate, THEN the email address :) –  Feb 13 '11 at 19:47
  • The problem I have is misleading resumes. –  Feb 13 '11 at 19:50
  • @Pierre, sound like time for phone interviews then to filter out the false positives. –  Feb 13 '11 at 20:09
  • That's what I (mostly) do, first the candidate get an english assesment by my assistant (which is a native english speaker), then my technical lead do a technical assesment (that's when the problem occurs). I'm at the end of the process to discuss more psychology related stuff... –  Feb 13 '11 at 20:12
  • @Pierre, Is your technical lead not up to the task? –  Feb 13 '11 at 20:14
  • We have many many CV to process and the effect is dramatically increased by the fact it's for two junior positions AND for a startup. My idea was to create some sort of online form with one field for each technology we use to let the candidates mention their hours of coding... I wasn't sure it was a good idea or not. Still not sure. I will have to experiment it I guess. –  Feb 13 '11 at 20:25
  • 1
    Read each CV VERY QUICKLY. And throw into 2 piles: Junk and Look-Again. You will be amazed how quickly you can do this, and the Junk pile is usually very large. Of your 100, I'd expect 90 to end up there by spending no more than 1 minute on each. Then concentrate on the 10 that are left to look again. – quickly_now Feb 13 '11 at 21:58
  • @Pierre, either you will have to discard applicants purely on gut feeling or you will have to do some kind of interview with them. For junior positions you need to check actual coding skills. Joel have done a write-up I believe. –  Feb 13 '11 at 22:03
2

I think that, past a certain point to establish a minimum level of competence, the amount of time one has been programming isn't all that meaningful. I would judge a programmers experience on the projects they've worked on and what they brought to those, not an arbitrary number that is practically impossible to verify.

TZHX
  • 5,072
2

I think that I already posted this (Teach yourself programming in 10 years) somewhere but you should check it out. This article is about that "magical" 10.000 hours and about the efficiency of learning.

Adam Arold
  • 1,180
1

How many hours of painting does it take to become a professional painter?

How many trainings does it take to become a professional musician?

Programming too is a creative design activity, which is why most metrics are literally useless.

The only thing that can be said, is that with time you become better. Whether any time in the world will suffice for you to become great, is unknown. One can only look at you at any given time and decide whether you're good or not.

  • 1
    About that, I read an article where an old quote from The Beatles was used. They explained that their supperiority was due to the fact they were practicing 8h a day. I remembered that because today in a TV show a famous French singer (aubert) told he was practicing as much and that was significant for his success. I conclude talent must be coupled to work to increase signigicantly chances of success. –  Feb 13 '11 at 19:32
  • @Pierre, are you familiar with the concept of 10.000 hours of deliberate practice needed to become an expert? –  Feb 13 '11 at 19:44
  • Yes more or less, I read an article about that but the values expressed was 10 years of practicing –  Feb 13 '11 at 19:52
  • Oh are you refering to what Gary is writing in his answer? –  Feb 13 '11 at 19:53
  • @Pierre, somewhat. Not his answer directly, and I disagree on the absolute numbers... –  Feb 13 '11 at 20:11
  • Yes the numbers are also too much constant. I would expect them more like the typical learning curve –  Feb 13 '11 at 20:13
  • @Pierre, sure it wasn't "eight days a week"? –  Mar 11 '11 at 21:16
  • @Sorry I can't select your name on my iPad: no it was hours: http://skinnyartist.com/are-you-ready-for-the-big-time/ –  Mar 12 '11 at 10:03
1

Programming languages change. Tools change. Paradigmas change. That limits the value of experience after some years.

That said, most programmers work fulltime, so the number of years is more or less directly proportional to the number of hours spent coding.

user281377
  • 28,382
  • Same for technology in planes. But I agree is it much slower :) –  Feb 13 '11 at 19:34
  • 5
    Even switching technologies, the foundation and concepts learned over 10 years are still there, and still apply. Thus, I would not put an experienced pilot and a newbie pilot both entering the cockpit of something they've never flown into the same category. The experienced pilot just knows more about how flight works in general. It's more than just manipulating controls, just like programming is more than just typing something into a keyboard. – jmort253 Feb 13 '11 at 20:25
  • 1
    jmort is right. Even when I'm programming C# these days, my background experience in Pascal, C, C++, is very useful. Syntax and APIs change, but high level skills like design patterns, good coding practices or understanding the user's perspective don't get obsolete that fast. – nikie Feb 14 '11 at 09:32
  • Sure, but after a few years, you have grasped those concepts, haven't you? It's not like a programmer with 20 years of experience gets it that much better than a programmer with 5 years under the hood. – user281377 Feb 14 '11 at 09:36
  • When it comes to e.g. software architecture or understanding requirements, grasping the concepts is just the beginner stage. I don't think you can expect any programmer to truly master these skills after just 5 years. You can practice them for decades and still improve upon them. And I definitely know that I am a much better programmer today than I was with only 5 years of experience. I hope to be better still when I have 20 years of experience. – nikie Feb 14 '11 at 10:53
1

I think you could compare it as a metric to lines of codes (of a program).

You can't assume too much about the quality of the code (experience in your case) but you can make some assumption about it.

Ie you can make some assumption about a guys with 6000h experience vs a 100h even knowing that you know that there is difference in the quality of the experience of the two (you cannot know or estimate it but when comparing magnitude difference, details start to matter less).

You couldn't use it to tell much about say a 6000h vs a 6500h though or even 4000h to 6000h, say. (I'm using arbitrary number here).

n1ckp
  • 177
1

I'm not even sure if the number of hours a pilot logs is all that informative either.

I mean, someone that flies from Charlotte, NC to Portland Oregon and back (alternating days) will have a lot more logged hours than someone that flies 4 times a day from JFK to Logan. But, I would guess that someone that makes 4 flights a day will gain 4x as much experience as someone that makes one flight a day over a longer distance. Further, the NY to Boston flight will be over a much more congested space at busier airports, resulting in much more experience in tricky situations compared to the less crowded Charlotte, Portland, and big sky airspaces they would be largely flying through.

Likewise, for programmers, i can work 10,000 hours aligning textboxes on a windows form, or I can spend 10,000 doing a variety of tasks with varying levels of complexity.

Hours mean nothing, nor do years.. you can only look at the accomplishments. The only value I see is that someone with 10,000 hours would certainly adequate, or they wouldn't have been able to log that many hours. But number of hours cannot tell you if they're an expert or not.

  • I can confirm flight hours are regulated. –  Feb 13 '11 at 22:48
  • I didn't say they weren't regulated. I'm simply saying, flight hours really aren't a measure of how experienced a pilot is at all the things necessary to make them a good pilot (staying awake for 5 hours while the plane needs minimal course changes is not necessarily one of them). – Erik Funkenbusch Feb 14 '11 at 06:43
1

For this to really work, programmers would need to maintain a logbook.

Pilots keep meticulous logs of their time in flight and simulation, and count their time 'in type' - 2,000 hours of flying a 747 doesn't immediately qualify you for the A380.

The martial arts training programmes also require some logging (at least, my old Judo training did).

There also needs to be some mechanism to audit the logs - commercial pilots are regularly placed in simulators and tested. Martial artists have to be examined (or compete - which is a harsher judge) in order to level up.

So, for time-logging for developers, we'd need to be able to categorise our time (I have thousands of hours in PHP5, several hundred each in C++ and few others), and be regularly audited (as has been mentioned already, dragging and dropping form elements around in Qt Creator doesn't make you a C++ guru).

All this is a far too complicated for not much gain - so I side with everyone else that says that programmers should be rated on knowledge and achievements that they can point to.

HorusKol
  • 4,131
0

I began very basic programming in third grade and have kept up with it for about eleven years now. This means that I already probably had a thousand hours logged by middle school, but a thousand hours of experience back then and a thousand hours now result in totally different levels of learning.

Knowledge and learning seem to follow an exponential curve-- I am able to more easily pick up programming concepts and learn new languages (which helps in an attempt to be language agnostic) than I was eleven years ago. Five years of experience is not half of ten years of experience. Giving a more personal answer to the question "How long have you been programming?" seems to be optimal.

-3

I would not express it in hours; - I would express it in lifetime lines of code or years spent coding.

Paul Nathan
  • 8,570
  • 1
    I wouldn't express it in either. I'm sure I can write 1-5 lines of code that does the same as someone else's 20-30 lines of code. I've also had the pleasure of working with people that have been coding for 10 years. The problem is that they've been doing the same thing for those 10 years and have no idea how to work with more advanced concepts. – Adrian J. Moreno Feb 13 '11 at 20:20
  • Years "spent" coding or years of life "lost" in coding? :) –  Feb 13 '11 at 20:37
  • How about the ratio of lines of code vs. user complaints? ;) – Tobias Cohen Feb 13 '11 at 21:06
  • 2
    Perhaps the moral of the story is using a single metric to describe a system is a bad idea? – Paul Nathan Feb 13 '11 at 23:09
  • Maybe the solution is talking about the ratio of lines of code and cakes which were a lie. – Adam Arold Mar 12 '11 at 12:33