How business guys can identify good coders
You’re the business guy. The idea guy. You have an MBA and a killer business idea to boot. The only thing standing between you and becoming the next Google is finding a good technical person to build it for you. The only problem is you don’t know how to code and you’ve got no clue how to interview or evaluate developers. What do you do?
Thankfully, identifying good developers doesn’t have to be hard. You can actually find great developers without knowing a thing about coding. Just like good sales guys can be measured by how much they sold, there are some simple questions that can act as your filter for finding talented programmers.
How old were you when you started programming?
I started coding when I was 10. Most of the best developers I know started coding long before college. While it may seem like a weird thing to evaluate someone on, I’ve found there is a strong correlation between the age someone started programming and their skill level as a developer. It makes sense. Just like most professional athletes started perfecting their art at a young age, the best developers did the same.
Think about all the distractions you face growing up. As Paul Graham says in Hackers and Painters, being smart in elementary school is a guaranteed way to be unpopular. While the kids who are coding in middle school may not be cool then, they’re the people I want to hire when they are 20. The intellectual curiosity that drove a kid to code instead of hanging out at the mall is probably still with them later in life.
And all things being equal, the kid who started coding at 10 has 8 years extra experience on the guy who didn’t start until college. This doesn’t mean there aren’t exceptions to the rule, but it’s a surprisingly good indicator.
What weekend projects have you built?
If you’re a developer, you have the ability to turn your ideas into reality in a way that few people have. Think there should be a better way to share pictures with your friends? You can just build it. You don’t need money or permission from anyone. I’m suspicious of anyone who claims to be a developer but doesn’t have any projects to show off that they built “just for fun”.
Programming is more of an art that a science. You usually either have a mind for it or you don’t. If you don’t enjoy coding you’re not going to be any good at it. More than anything, the weekend projects show that you enjoy the creative process of programming.
Things you enjoy, you do a lot and things you do a lot, you tend to get good at.
What open source projects have you contributed to?
Being involved with open source projects is another positive sign of a good developer. Not only does it show they enjoy coding enough to give their own time to it, but open source developers also have the benefit of continual feedback from other smart developers. There is not a single piece of code I’ve open-sourced that hasn’t been improved from having other developers use it. The more you open source, the more you learn. For example, when I contributed my PHP library for PubSubHubbub, it was Brad Fitzpatrick (the guy who invented memcache) who did the code review and gave me some great feedback on how to improve it. It’s tough to get that level of feedback and not become a better programmer as a result.
While asking a developer how to write a linked list may show off their memorization skills, I’d rather see the evidence of their abilities for myself. Why quiz Picasso about the principles of painting, when you just ask to see his gallery of paintings instead?