
Ask HN: “Are you a good programmer?” – is it a pointless question? - andrewstuart
I ask people during interview if they think they are a good programmer.  If they say &quot;yes&quot;, then I go on to ask them why they think they are a good programmer - what is it that makes them a good programmer.<p>I have found that people are usually quite candid and usually do have some sense of where they fit in the hierarchy of programming skills. Some people give the honest answer that they think they are good, but not top level.  Others say &quot;yes I am, but there is always more to learn&quot;. Others go into some fairly detailed explanation of why they think they are a good programmer. One of the responses that I find most meaningful is when people say that they are the &quot;go to&quot; person on the development team - all the other programmers come to them with their questions.<p>Is it a valuable question to ask during a job interview or do you think every programmer thinks they are great?
======
brudgers
No more or less pointless than many other interview questions. The answer will
depend more on social factors than on technical ability, good answers will be
tailored to reflect the interviewer's non-verbal cues. Bad answers won't tell
the interviewer what the interviewer wants to hear.

Example:

    
    
        Scene I:
        Interviewer: "Sell me this MacBook Air."
        (Sales position candidate picks up laptop,
        walks out of office, and goes home.)
    
        Scene II:
        (Some time Later, Interviewer is on telephone).
        Interviewer: "I want my laptop back."
        (Cut to candidate on phone)
        Candidate: "The MacBook Air retails for $999."

------
calcsam
No. No no no no no. Ask someone what their strengths are as a programmer.
Don't ask them whether they are a good programmer.

Let's say I asked you: "Are you a good person?"

Well, compared to who? Compared to Mother Theresa? Probably not. But compared
to the average person on the street? Probably.

If I asked you that question, I'd learn more about who you compared yourself
to than whether you are a good person.

(Also, if I asked Mother Theresa that question, she'd probably have compared
herself to Jesus and said 'No.')

~~~
andrewstuart
Six no's! That's a strongly held opinion.

I don't really see the open ended nature of the question as being a problem.
In fact that's kind of the idea - get people talking about what it means to be
a good programmer, what makes a good programmer, why it is that they think
they are a good programmer.

A good programmer probably should be able to have an effective discussion on
the topic should they not?

~~~
panorama
I'm not GP but I think you are both correct. What I personally dislike and
would avoid as an interviewer is "Rate your [language] skills from 1-10". I've
answered a "2" every time I've been asked that question, and it probably
reflected poorly on me, oh well. Most people hiring would probably consider me
significantly higher, but I honestly do believe there is a magnitude of
difference between me and the top 1% of say, Ruby developers in the world.

~~~
seeyes
Well put. I have been asked the same question in interviews. Any interview I
gave myself < 8, I could see the interviewer was uncomfortable interviewing a
'newbie'. I am wary of saying anything over 8 because I feel there's no way
you could learn everything about something. Not with the amount of information
there is on language/paradigms etc

------
Klockan
Any interview question is pointless if you can't objectively judge its answer,
or at least there has been no study able to prove their effectiveness. You can
use it to test for social skills, but for that you could talk about anything
really.

If you want to get good at interviewing then you should decide beforehand
exactly what questions you will ask all candidates and you should rank all
answers for the questions. If their answer isn't a part of your ranked ones
then it doesn't count, don't give points for effort and don't give hints
unless you have decided beforehand to give the same hints at the same times to
all candidates. This might seem too rigid, but it is the only way to not get
your judgement overwhelmed by your initial impression of the candidate.

Now, try to apply that to this question "Are you a good programmer?", how
would we rank the answers? Is a plain "yes" better than a plain "no"? This
could get really interesting results! By selecting for people who answer "yes"
you could build a confident workforce while selecting for "no" could get you a
humble one. Is this useful? Maybe, only you can answer that question.

------
tapan_k
I've asked a similar question to candidates, which allows me to have an open
ended conversation. My question is: "On a scale of 1 to 10, how do you rate
yourself as a programmer." The answer to this question rarely matters, but it
opens up room for follow-up questions. For example:

1\. Why did you pick the score that you did?

2\. Have you identified areas of improvement that will help improve your
score? What are those?

3\. What are you doing to improve in the identified areas, and when do you
think you will get there?

4\. Give me an example of a strength that contributes to your current score?
What is the sample population that you used to evaluate that strength?

etc...

I ask this question towards the end of the interview, and only if I have
decided to hire the candidate, and only if there are no more specific
questions to ask. Asking this too early and before having enough data points
from specific questions, is a waste of time and energy - both for me and the
candidate.

------
mark-r
First, you need to read up on the Dunning-Kruger effect:
[http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect](http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect)

I once worked with someone who thought he was well above average, and I can
tell you with certainty he was wrong.

~~~
welshguy
For thousands more easily accessible examples, see LinkedIn.

------
geebee
Obviously, you're free to ask this question. I wouldn't like it, but it's
hardly outrageous. I'm free to decline to answer if I choose.

I would say one thing here, though… if the candidate is active on github,
maintains a technical blog, and perhaps has done some speaking at conferences
or meet ups with video links, it doesn't look great when the interviewer asks
this question (are you a good programmer?). It may imply that the interviewer
1) hasn't bothered learning much about the candidate, or 2) is unable to learn
much about a candidate and/or isn't able to assess the information.

I know this is an extreme example, but would you ask bob dylan "are you a good
songwriter?" Or even a more obscure person who still has a fine presence on
the web. It's like, uh, my work is right there, have you listened to it?

------
logn
It's valuable but you're asking it in a way that's kind of tricky. For ayone
who's anxious, you're going to be testing their interviewing skills more than
anything else. Why not just say, "what do you think makes a good programmer,
and in what ways do you fit that, and in what ways can you improve?". Your
current question is like "Choose a door: A, B, C". It's a game the way you're
asking it.

However, this whole style of questioning bothers me. I'd rather you just come
right out and ask the most direct questions about good programming. E.g.,
"tell me what refactoring is, and about a time you did it", or "tell me about
encapsulation and how you've come to value it".

------
swatow
While it's interesting that you got sensible answers, I also think it's too
subjective to be a good question. Some people exaggerate their skills, while
others are too modest. Some people might think you are testing their self-
confidence, while others might think you are laying a trap.

I would simply ask technical questions and judge for yourself. Some whiteboard
coding can't hurt.

------
6d0debc071
I think it's a question that invites some degree of self-assessment and
justification - gives you a chance to see how some people think about
themselves. I also think you could get the same sort of result in the no case
by asking something like 'How would you assess the areas you could improve as
a programmer?'

------
chad_strategic
It would be interesting to know your background? Are you a recruiter, sales,
account person, human resources or CTO?

I would probably say that I'm great...

[http://www.businessinsider.com/jack-dorsey-on-
programmers-20...](http://www.businessinsider.com/jack-dorsey-on-
programmers-2013-3)

------
AnimalMuppet
I had a dream once. I was programming in C. I was writing great code -
amazingly good code.

So I can honestly answer that I'm a great programmer - in my dreams.

I think I'm a pretty good programmer in real life, too, but the other answer
is funnier...

------
frozenport
Maybe the response can be used to judge somebodies character or communication
skills, maybe as a way to keep the conversation going. I prefer more direct
questions.

------
CmonDev
Here is the answer:
[http://en.wikipedia.org/wiki/Illusory_superiority](http://en.wikipedia.org/wiki/Illusory_superiority)

Case closed.

------
bbcbasic
It is a silly question IMO, just ask more specific questions. Or just do some
pair coding with the candidate for a few hours and then you can judge.

------
zaccus
Nobody in their right mind would ever answer this question negatively.

Of course I'm a good programmer, because I'm the go-to guy on my team, or
because I know how to google stuff, or because I'm a polyglot, etc etc etc.
See how easy that is?

