views:

187

answers:

8

The question was imagined after a co-worker was complaining for an hour about some guy who could not answer basic Java questions on an interview after self-identifying himself as "8 out of 10" on Java.

While that was an obvious fib, I personally always had major trouble defining my specific language skills on a sliding scale unless I'm given specific guidelines (remember >40 standard libraries by heart? Able to solve 10 random Project Euler problems in <30 mins each? Can write implementation of A, B and C data-structures from scratch in 30 mins? Know 30% of standard? Can answer 50% of questions on StackOverflow pertaining to the language?)

So, I was wondering - is there some sort of commonly accepted methodology for translating such tangible benchmarks into "rate yourself on a language between 1-10"?

"Kernighan gets an A, God gets a B, everyone else gets C and less" type jokes are not helpful :)

UPDATE:

Just to clarify - the intent here is NOT to discuss whether one can measure knowledge of language X as 1 to 10.

While ability to do so well is debatable and in fact quite likely impossible, the firm fact is that many if not most companies demand such estimates from candidates whether you agree with the practice or not.

What I'm asking is, assuming you have to answer 1-10 question, is there a better way to answer it and to measure the accuracy of the answer than pure uncalibrated "numbers off the ceiling" guesswork.

+1  A: 

Commonly accepted ? No. I've done online tests such as BrainBench which allow employers to use a standard test to rate people, but I'd hardly call them standard (leaving aside whether they test what you really need - do you need to hire someone who's memorised 40 APIs?)

Brian Agnew
And of course on Brainbench many of the "correct" answers are in fact wrong.
anon
@Neil - can you provide an example ? (not doubting you - merely interested)
Brian Agnew
@Brian I haven't done one for a couple of years but back then I guess about 10% of the answers were obviously wrong, with another 10% definitely iffy. I did submit some corrections, but I have no current record of them - sorry. Longer ago, I worked for an IB who's training dept. licensed the BB tests. We C++ progs had a fun time producing a giant list of obvious howlers. Once again, I don't have the records, I'm afraid.
anon
Interesting. I did the Java tests but not the C++ ones. Thx.
Brian Agnew
@Neil - good to know! But the question stands - warts and all, CAN such a test be used as a "better than nothing" approximation function mapping knowledge/experience in a language on a numeric scale?
DVK
@DVK You seem (from this and your current meta posts) to have a bit of an obsession with systemisation. Why not simply say "I scored 87% in the BB XYZ language test"?
anon
@Neil - first, because the question was based on a real life situation - our company's HR requires this stupid 1-10 scale. So did a vast majority of companies where I interviewed back when I was looking for a job several years back. Second, like a vast majority of geeks, I'm OCD - probably more than most. I think I was Carolus Linnaeus in previous life :)
DVK
+3  A: 

For natural/spoken languages, sure (A1/A2, B1/B2...). There's no reason why such categories couldn't exist for programming languages and in fact they do (various certificates, like the ones for Java, PHP, etc.), but the difference is they're really nowhere near as standardized.

Tomislav Nakic-Alfirevic
A: 

Both Sun and Microsoft have several certifications for developers on their respective platforms.

Thomas
A: 

Go take a certificate exam without searching for the answers books on the internet.

medopal
A: 

I broke my arm a couple of years ago. The nurse in casualty asked "On a scale of 1 to 10, how would you rate your pain?" Her question makes about as much sense as yours.

anon
Actually there are several pain scales (http://en.wikipedia.org/wiki/Pain_scale).
Roman
Neil - a good nurse would actually have given you some references. My physical therapist did when she was working on my broken arm, and it was very easy to answer her (compared to the nurse in ER who did not)
DVK
So, it seems, you've proven my point for me. A question like that without guidelines/calibraion IS useless while given said guidelines becomes more useful.
DVK
A: 

Any human skill is, to some extent, subjective and unquantifiable. Einstein himself complained that he was not good enough at math for the work he wanted to do. Was he right? Are those who think he was godly at math plain wrong? Are you a better programmer if you have memorized a framework, or if you understand programming concepts and can solve problems creatively but often have to look up details about that framework's classes?

Anytime you hire someone based on a crafted set of criteria – be that number of certifications, ability to answer that clever set of "trick" programming questions that you saw on the internet (and which they may have as well), or their ability to be persuasive in an interview – you have to understand that your metrics are sometimes going to weed out the good people and gather in the bad ones.

Robusto
@Robusto - please see my update. I was interested in an answer ASSUMING one has to answer 1-10, not discuss whether such a question makes sense or is a good idea.
DVK
A: 

Assuming you have to answer 1-10 question, is there a better way to answer it and to measure the accuracy of the answer than pure uncalibrated "numbers off the ceiling" guesswork.

No.

Matti Virkkunen
A: 

Programmer Competency Matrix would appear to be a suggestion for a scale that is out there. SGSI.com has a similar document if you want ideas for various levels. Don't forget that there are logarithmic, linear and expotential scales that one could use here.

JB King