How to recognise a good programmer
inter-sections.net
inter-sections.net
A better title would have been, "A List of Some of the Traits That May Correlate with Good Programmers". Would you bet your business on judgements made from this list? I certainly wouldn't.
AFAIK, there's only one way to recognize a good progammer (or a good anything else):
* * * * * * * DEMONSTRATED PERFORMANCE * * * * * * *
Did you do it?
On time and under budget?
Does it work well?
Does it satisfy the stakeholders?
How easily is it extended or maintained?
<add your own evaluators of demonstrated performance>
I also believe that if you can do it once, you can do it again.
Evaluating quality by anything other than demonstrated performance is stupid and unfair to everyone involved.
It'd be pretty hard to get metrics like yours in a hiring situation.
And who here signed up for easy?
In a new hire situation, require examples of work done (on-line or otherwise). Make them code. Give them a conditional mini-project. Get appraisals from former clients, employers, co-workers. etc. etc. etc.
I could think of a hundred better ways to evaluate unknown talent that the suggestions from this article.
Here are some real questions to separate the coder from the poser.
What's the worst hack you have ever done and why did you do it? What's you least favorite language and why? What's the hardest problem you have ever worked on? Why was it hard and how did you solve it? What's the most elegant solution to a problem you have ever devised?
IMO: Trick questions and odd syntax issues are just as useless as asking about their IDE of choice or how to solve a trivial problem.
PS: If you want to validate my credentials after while we nail down my fee that's one thing, but I am not going to give out references early in the process.
This is EXACTLY THE OPPOSITE of what I posted and everything I believe.
To repeat - there are NO questions or character traits to accurately assess quality from B.S.
The only differentiator is DEMONSTRATED PERFORMANCE. You need to find a way to determine this. I never suggested long interviews or trick questions (and have never employed them). Whatever it takes to determine DEMONSTRATED PERFORMANCE is necessary and sufficient.
And whoever downmodded my previous posts (and will probably take a hack at this one too) either doesn't get it or hasn't been burned yet.
(Why is it that when I willingly share my hard earned skills and knowledge, I get downmodded, and when I post a smarta$$ remark, I earn 20 unexpected points?)
By the way - a conditional mini-project seems like a good idea. Let them do something small but useful - for full pay - and evaluate performance.
I guess I could live with that on the receiving end.
I understand why someone would do that; it's easy and fun (especially if you only have short breaks).
I implore you to reconsider. My own personal lack of peers to debate and commisserate with drives me to this site. The karma may be the gravy, but the experience is the meat. Sure would be nice to have you as part of it.
From a more serious point of view I agree. The quality of comments and submissions attracts me to this site, too. Thanks for the warm welcome.
I like these questions because if a programmer is good (in my opinion)...you'll see that person light up and get excited.
Programming is not a passion that has to blot out all others.
I thinks it's time to proclame: Ruby is the next Blub. Long life to Blub!