views:

780

answers:

13

In my experience this is a common question (not limited to just C# and C++) asked during phone screens and on pre-interview questionnaires.

So how do you do it?

I'm usually reluctant to say anything over 5-6 since I can name entire language areas/libraries etc I'm not familiar with. But this low rating can cause recruiters to skip you over for someone who inflates their rating to 8/10.

What is your strategy? Is inflation better in general? Does it depend on the person asking? (non-technical vs technical recruiter etc)

+5  A: 

Tell the recruiter to cut the crap and determine your skill level with real objective questions.

That is a fluff question and is rubbish.

Of course, that might get you blacklisted, so try this:

"I wouldn't have applied for this job if I didn't feel confident in my skills, do have any particular questions related to C# that I can answer to help you determine my skill level?"

FlySwat
This would be dumb (and rude, of course). Good interviews aren't made only by technical or objective questions.
F.D.Castel
Jonathan, I'm not using this question to determine your skill level. I'm using it to check your self-image as a developer, and also to see how you apply your analytical skills to the question.
RoadWarrior
I always reply with either 7.7537654576124 or complex number if I'm feeling particularly annoyed with the recruiter.
Martin Beckett
+2  A: 

It's a stupid question.

If you're a beginner, the answer is 7.

If you're very experienced, the answer is 8.

EDIT:

My dad used to work for a phone company in cost studies. He told me how he'd ask people to rate themselves in Excel on a scale of 1 to 10. He'd follow that up by asking them some detailed questions about complex Excel stuff that most people don't use, but that you'd need to know for the job. He said a lot of people would backtrack on their rating pretty quickly.

The thing is, though, if you have to ask the knowledge questions to determine the accuracy of their rating, why not just skip the rating and go straight to the knowledge questions in the first place?

Kyralessa
That is pretty much the only rational response.
Chris Becke
+3  A: 

Programmer Competency Matrix

Gulzar
That matrix is rather stupid as well.
FlySwat
something to follow even if it is stupid..
Gulzar
Its stupid because it has stuff like Level3 people being better because they know Erlang.
FlySwat
Or being a level3 user because you've used Git instead of SVN.
FlySwat
No, not instead. The levels are *inclusive*, so if you know Erlang, Prolog, Oz, and Scheme, you get a higher score than someone who just knows C++, but only if you *also* know C++. And that's just *one* of the rows in the matrix.
JesperE
Of course, any scale with four steps that spans the range from "truly exceptional, hire this guy NOW!" to "almost as useful as a can of Mountain Dew" has, shall we say, granularity issues.
David Thornley
+8  A: 

I like to give an answer, and then explain how I got it. For example, I might rate myself a 6, and explain that that's because the only 10 is Donald Knuth, the 9s are Eckert and Mauchly (who invented the computer), the 8s are Kernighan and Ritchie and the other patriarchs at Bell Labs (who invented C and Unix), and the 7s are folks who build infrastructure like kernels, compilers, and standard libraries. That way they see that my low score comes from an awareness of all of the people who are better than me, while another candidate who blurts out 8 or 9 probably has no idea of how much he doesn't know.

Glomek
By that logic technically we're all 1's if we're all standing on the shoulders of giants.
nyxtom
So being kernel developer grant me 7 by your scale ? :) nice to know.
Ilya
Yep. And I consider that an exceptionally good score.
Glomek
do we know for certain that Knuth even knows C# or C++?
Steven A. Lowe
This is a good way to answer what is, nonetheless, a stupid question.
Kyralessa
I would say you can be a 9-10 in C, the language is small enough that you can know it all, including all the undefined corners. For C#/C++ I don't think anyone (even Bjarne/Anders) can know all the language and the standard libraries - so I am suspicious of anyone who rates themselves above 5.
Martin Beckett
+4  A: 

This probably doesn't answer your question, but I think that any time you try to estimate this sort of thing you're probably going to fall victim to the Dunning-Kruger effect

The Dunning-Kruger effect is an example of cognitive bias in which people who are worst at a task show the most illusory superiority, rating their own ability as above average.

Doesn't really help with the interviewer's question, but food for thought, I hope.

Matt Ephraim
Their original paper on the matter is easily accessible. Go ahead and read it <http://www.apa.org/journals/features/psp7761121.pdf>. It's fun and contains the phrase `"domain-general" incompetent'. You can't beat that.
dmckee
+1  A: 

For C++ it's best to look at what a 10 means before rating yourself. In sumary, there are no 10s. There are very, very, very few people who make the 9 rating. Namely

  • Bourne of course
  • Herb Sutter
  • They guy who wrote the crazy meta template programming book

That's about it. There are probably a bit more in the 8 category but not many. I think 7 is the highest rating most people are likely to achieve. Anything over that requires at least 5+ years of hard core programming in c++ and a nighly reading of the standards and massive community participation.

JaredPar
Would your first candidate be Bjarne Stroustrup? Bourne is the guy who wrote the shell, and as far as I know has no outstanding credentials in C++.
David Thornley
A: 

If it's an area where I'm competent, I would probably never rate myself lower than 9 in such a question. It's not a useful question from an objective technical point of view, but could be used to gauge your confidence. A 10 would demonstrate supreme confidence in yourself, though a 9 might indicate that you're confident but also know that there are things that can still be learned (and more importantly a willingness to learn).

Gerald
+3  A: 

Eh, wha? This is just a bad question. Then again the recruiter may be looking to see how much you feel you are worth, and or how confident you are in yourself in terms of programming.

Personally I know that there are people a lot smarter than me that can program, and since I only know the people I know, my rating of myself may not be the same rating when I meet someone new.

If I were asked this question during an interview, I would kindly ask the interviewer to ask me questions related to the programming language to asses my skills, as the question he is asking does not have a quantifiable answer.

X-Istence
+2  A: 

laugh, tell the recruiter 11, and ask him what he'd like to know

Steven A. Lowe
"But this goes to 11"
Tim
+1  A: 

I have been train to answer this by a professional recruiter. The real question is really asking how well you know the language. A scale is meaningless without defining what exactly each step is. So dont give them a number, instead your best bet is to explain how well you know the framework, which liraries you have mastered, and some unique features to the language. In c# for example, you can tell about rpc, attributes, indexors, XML libraries, support of oop etc.

Haoest
+1  A: 

Try www.topcoder.com

Compete for a while and then your rating distribution will show you your competency.

danatel
+1  A: 

"How much do you want me to be?" ;)

It's just an ice-breaker kind of question while the interviewer is trying to figure out how to begin his line of investigation. Don't get too shaken up.. pick a number in the middle.. 6 or 7 if you're fairly confident and soldier on. Don't be too brash, arrogant or cocky in your response if you're really interested in getting in.

Gishu
+1  A: 

You have to keep in mind that what you have in mind as a scale isn't necessarily going to be what the recruiter, or the company you're interviewing for, has in mind.

Chances are if you are going in for a senior level position, they want people that they think are 8+ on the scale. Mid-Level would be 5-7, and anything lower is low-level.

You can give them a long story about how you came up with the number, but the actual number you tell the recruiter is just going to get written down and handed to a hiring manager, or is going to be matched against what another company tells them they want.

AaronS