what should i answer for: What do you rate yourself in java

I got this question in two interviews :What do you rate yourself in java .i gave myself 5 out of 10 ,in one of the interviews i got selected in the other the guy got a bit -ve ,showed some disappointment when i rated myself low,i didnt get selected for that interview.I know 5 is less but i cant give myself a 9 or 10.I personally feel there is still lots to learn .At max i can give myself a 6 or 7 that too being too liberal.I know the basics ,i did my OCJP certification but that doesnt mean i give myself a high rating.I tell the above reason to the interviewers and both times the reaction were completely different.

These sorts of "Rate your skills in x on a scale of 1 to 10?" interview questions are not the best in my opinion. The flaw in the question is that the 1 to 10 scale has no context. What does a "1" mean? What does a "10" mean? How do I represent my current skills as a meaningless number on some scale I don't understand? Near impossible right?

Another reason this type of question is ineffective is because the better your skills and understanding are for a subject, the more you recognise that there are things you don't know about the subject. This leads a skilled practitioner, like yourself I'm guessing, to rate yourself modestly because you know there's a load of stuff about Java you don't know that you'd imagine lives in the 8, 9, 10 out of 10 territory. The reverse is also true where a novice may believe he knows everything and will rate himself very highly on the scale. This is called "second-order incompetence" or "unskilled and unaware of it". From an interviewer's point of view he now has two guys, one rates himself 5/10 the other 9/10. Which one is better? Wrong.

So how can we tackle this? Well perhaps we, as interviewees, could answer this question a different way. In a way that has meaningful context. As a suggestion we could use the "Dreyfus Model" which defines the stages we must pass through on our journey from Novice to Expert.

Novice

Advanced Beginner

Competent

Proficient

Expert

A description of each stage can be found in a sample chapter (http://media.pragprog.com/titles/ahptl/chap2.pdf) of "Pragmatic Thinking & Learning" one of The Pragmatic Programmers series book. Well worth a read. Each level has particular meaning and defines attributes that we can measure against our own skills. Most importantly, it provides the context we need to be able to better represent ourselves to an interviewer.

From an interviewer's point of view he now has two guys, one rates himself 5/10 the other 9/10. Which one is better?

Neither at the point the question is answered. The point of the question is to find the confidence level a developer has in subject X. Like you mentioned it is to determine scenarios like "unskilled and unaware" | "skilled and modest" etc. It is subjective even if you replace the numbers with the Novice -> Expert model.

Should you tell them what you know and how much experience you have, and then say 7 out of 10 regardless?

Modesty is one of the "virtues" I never understood, especially in the corporate world. If I am good at something, it makes a lot of sense to advertise it. After all the employer is looking to hire someone who is good at 'x'
And the fun part after saying 'I am very good at 'X' or rating myself 9/10 at 'X' is that I will be evaluated each and every time against this good or 9 and that keeps me on my toes.

Modesty is a virtue as long as it is not false modesty. It does not consist in rating yourself too highly, nor higher than somebody else whom you don't know. It also does not consist in rating yourself as less competent that you really are, which is false modesty.
As you imply, Maneesh, an interview is not real life; it is a game whose rules require you to blow your own trumpet.

I know HR people are annoyed when you tell them you had really high scores on tests or exams. They think social skill are more important anyway. They will even think if you tell them you had really high scores, that you probably do not have social skills, because: how otherwise can such a intelligent person still be out of a job. Nevertheless if you give yourself a really low mark, then they will say you do not have confidence in yourself. I would say I am average, but I can learn quick on the job.

If a technical guy asked, I would just tell him my experience and different scores on my tests. A technical guy also knows what you are talking about.

vamsi naki
Ranch Hand

Joined: May 18, 2011
Posts: 55

posted Jun 02, 2013 02:39:15

0

Thank you all for your advice ,i guess i will stick to 7 and give a short explanation along with my experience .

When I am asked I prefer to say a lower rating. Because I think higher rating is deserved by people who did great deeds in java be is some innovation.Just doing normal service industry development work and saying I rate my self well in java is not fair. People who have done great deeds in java or some innovation etc deserve to say so.

Tim Cooke wrote:These sorts of "Rate your skills in x on a scale of 1 to 10?" interview questions are not the best in my opinion. The flaw in the question is that the 1 to 10 scale has no context. What does a "1" mean? What does a "10" mean?

In my experience this question is always accompanied by an explanation of what 1 means, and what 10 means (otherwise I would agree that it's useless). It gives the interviewer a reference point so s/he knows where to begin and how to conduct the interview. So my advice is to be as honest as possible, since the interviewer will find out anyway, and it will not reflect well on the interviewee if the given number is blatantly off.

The math guy in me still thinks that even with an explanation of what 1 and 10 mean, you still can't answer. Is it a linear scale? logarithmic? asymptotic? Is the jump from 3 to 4 expected to take as much effort as the jump from 9 to 10, or should 9->10 take more? Can 10 ever REALLY be reached, since pretty much everyone can still learn more and improve?

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42954

73

posted Jul 08, 2013 11:24:44

0

All legitimate questions that the interviewer will be happy to answer. (If these were actual questions -and not rhetorical ones- then in my experience the interviewer always meant "linear". And 10 never meant "there's nothing left to learn", because that is indeed unlikely. More like "I wrote a book about it".)

Going by my experience, this question can be useful, and interviewees didn't struggle nearly as much with it as this discussion would make it appear.

If a person answers by saying he is 9/10. Then what about the people who created java, people who create frameworks like struts,spring,people who created servers:tomcat,Jboss.Should such people rate themselves 11/10 then? If someone says I am 8/10 just because I am good in java concepts and I am good in doing normal service industry development work then I dont think he should rate himself as high as what people doing innovation should.I think its unfair then.

Ulf Dittmer wrote:I'd go a step further: brain teasers are quite counterproductive to do in an interview. Having *any* of those is a sign of an inexperienced interviewer IMO.

I don't know where you from but brain teasers questions are normal at least they may ask how will you solve n-Rook , n-Queen or sudoku problem . I don't say it as inexperienced interviewer.

Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42954

73

posted Jul 10, 2013 10:15:15

0

Those are not what I would call brain teasers. They just require you to come up with an algorithm (which is pretty easy for a brute force approach). They don't need special insight, or lateral thinking - that's what makes a brain teaser IMO.

Fortunately I've never had to answer (or ask) this question. But as I see it, it's a combination of "How good are you at Java" and "How good are you at self-promotion". Both of those questions provide useful information about traits which may or may not be relevant to the position being interviewed for. Presumably the interviewer would also be asking other questions which might clarify which of the two underlying questions was being answered by the candidate.

Ulf Dittmer wrote:Those are not what I would call brain teasers. They just require you to come up with an algorithm (which is pretty easy for a brute force approach). They don't need special insight, or lateral thinking - that's what makes a brain teaser IMO.

Yes , i said at least

Monica. Shiralkar
Ranch Hand

Joined: Jul 07, 2012
Posts: 690

posted Jul 10, 2013 21:37:00

0

I just wanted to share my opinion. I have a lot of respect for people who did great deeds in java :the people who created java, people who create frameworks like struts,spring,people who created servers:tomcat,Jboss. I consider such people always very much higher than who do normal service industry development work.

Just because someone rates themselves highly doesn't mean anyone is going to take them at their word without further investigation.

The fact that this discussion has been going on for over 6 weeks now tells us that there is no definitively right answer to this question. It's a fine balance of effectively promoting your skills but not appearing too cocky about it.

From an interviewer point of view, I believe the best way to assess someones ability in writing Java code is to get them to write some Java code. It's an underused interview technique, at least where I live, but is by far the best way to find out if a person is actually any good. There is often some considerable disparity between what someone says they're good at in a spoken interview stage and the quality of the code produced during a technical task interview stage.

Monica. Shiralkar
Ranch Hand

Joined: Jul 07, 2012
Posts: 690

posted Jul 13, 2013 10:48:09

0

I believe the best way to assess someones ability in writing Java code is to get them to write some Java code. It's an underused interview technique, at least where I live, but is by far the best way to find out if a person is actually any good.

I have a question here. Suppose on being asked this question a candidate starts writing the code explains the algorithm-logic he will use for this but forgets some of the accurate syntax.Is it acceptable?

Monica: Like many things, "it depends." If a candidate forgets how to write a for loop, that's not good. But even then, it may be ok if the candidate quickly recovers. A couple mistakes may be nervousness. Or the candidate has worked with a number of languages. But ultimately, I'm much more forgiving of forgetting APIs than core syntax. It also depend on how much experience the person has. If he/she claims 7 years of Java experience with no other languages and forgets the basics, that can be problematic.

If by this do you mean is it ok to submit code that does not compile then no, that is not acceptable. I would suggest that any candidate being asked to do this should be provided with the normal tools they would have available in their normal development environment. So give them Eclipse, NetBeans, IntelliJ, VIM, or whatever IDE they use. Give them access to the internet for double checking the accurate syntax. You wouldn't expect a car mechanic to be able to change a gearbox with his or her bare hands. Mechanics need their physical tools to be effective. Software Engineers need their technical tools.

Tim Cooke wrote:I would suggest that any candidate being asked to do this should be provided with the normal tools they would have available in their normal development environment. So give them Eclipse, NetBeans, IntelliJ, VIM, or whatever IDE they use. Give them access to the internet for double checking the accurate syntax.

I agree. If given tools, there is no excuse for code that doesn't compile. My answer above pertained to if the candidate is asked to code on paper/whiteboard.

Jeanne Boyarsky wrote:My answer above pertained to if the candidate is asked to code on paper/whiteboard.

Yes I figured that. Writing code on paper for a job interview is zero fun.

Monica. Shiralkar
Ranch Hand

Joined: Jul 07, 2012
Posts: 690

posted Jul 15, 2013 21:13:32

0

If Eclipse and internet access is there and candidate does not give Working Code then I do not think the candidate deserves to be selected. However I was asking for the case in which just on paper one is asked to write code. In that if one forgets say a for loop syntax thats intolerable but if someone some specific syntaxt (e.g he is confused between what is the corresponding syntax in struts 1 but remembers that in struts 2 and tells what difference would be there in struts 1 and 2 in respect to question asked).

thanks all.

Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42954

73

posted Jul 15, 2013 22:08:49

0

Monica. Shiralkar wrote:If Eclipse and internet access is there and candidate does not give Working Code then I do not think the candidate deserves to be selected.

That's assuming that the candidate claimed Eclipse experience, of course. There are other IDEs out there.

Monica. Shiralkar wrote:If a person answers by saying he is 9/10. Then what about the people who created java, people who create frameworks like struts,spring,people who created servers:tomcat,Jboss.Should such people rate themselves 11/10 then? If someone says I am 8/10 just because I am good in java concepts and I am good in doing normal service industry development work then I dont think he should rate himself as high as what people doing innovation should.I think its unfair then.

Struts isn't a complicated piece of software to create.

Well people how created Java programming language, certainly the scale of 1 --> 10 doesn't apply on them. Those guys are experts in their domain and their impact on the industry is obvious. (Gosling, Bracha, Steele ..)

One of the famous American software companies employs "Pair Programming" in their interviews.
The candidate will works with one of theirs developers on real software that they are/were building. This lasts for six hours if I'm not wrong.

This is really convenient and useful. It will help the candidate to calm down (because as you know, interviews are a stressful experience to the most of people) and brings the best out of him/her. And it is certainly a precise measuring tool for the employer. It will help the employer to crystalized a clear idea of what this candidate is made of.

One negative point is that it consumes time. So it is better to do this "PP" session only with "right" candidates.

Actually I mean the syntax used in struts 1 and syntax used in Struts 2. E.g syntax used in struts.xml (Tags) are different. Without internet access if one is made to right that in paper, one might be able to tell what all comes there but might not remember syntax for each and every tag and for each version.