|
|
|
|
|
by greenyoda
4340 days ago
|
|
There would seem to be at least two independent problems here: 1. How can you recognize that someone is actually a better programmer than you are, as opposed to someone who can bullshit beyond your ability to detect it? (It may be easier to detect that someone is a worse programmer than you are.) 2. Once you've found someone who you're convinced is a better programmer, how do you convince them to join a company where they'd be the most skilled programmer (and thus have nobody to learn from)? You might need to offer them extra compensation and a better job title than they'd be able to get elsewhere. Also, I'd question whether you can actually rank programmers on a linear scale of better/worse. The best programmer I ever hired was better than me in some ways (could build complex systems faster than I could) but worse than me in other ways (the systems he built were less maintainable). I don't really have good answers to these questions, but hopefully this might clarify some of the issues and help get the conversation going. |
|
This question comes up a lot, and I'm not sure that it's really as hard of a problem as it's often made out to be. Especially if you're having a candidate write algorithmic code on a whiteboard, I think there are ways that you could judge whether they're better than you:
1. They solve your problem faster than you did (the first time). Of course this assumes you have a novel problem (i.e. they haven't practiced it before), etc.
2. They solve your problem and in the process of doing so teach you something unique. Maybe their solution is faster or simpler than yours. Maybe they catch some corner case you didn't see.
Another way to look at this is that if you make up your own (difficult) interview question, and then use it repeatedly, you will eventually become an expert on it. As you watch other people solve it, you'll learn various tricks for solving it, and will see it from many different angles. You'll also become aware of common pitfalls.
So when someone walks in the door and has never seen your problem before in their life, you have them at a disadvantage. Now if they give a solution that's as good or better than yours, what does that mean? It could just be that they're solved similar problems before, but maybe they're better than you.
This approach does assume that you are good enough to create a novel question, which in and of itself is a difficult thing to do...
[EDIT] One thing I left out is that while I believe it's possible to say "this candidate is probably better than me," there's an upper bound on your ability to see exactly how much better they are. In other words, it might be difficult to tell the difference between someone moderately better than you and someone vastly better than you.