How Do You Test A Programmer’s Coding Ability?

Today, there’s no shortage of programming talent. Unfortunately, it’s never been harder to find a good programmer or dev shop. The pool of available candidates is filled with people or teams that are willing to work on the cheap, as well as programmer’s who routinely fudge their qualifications and pass off other people’s work as their own.

Here’s how you can test a programmer’s coding ability and make sure they have the skills required to help your business grow.

A two-week independent project is always a better fit. Then, after the technician is done with that project, ask them to do a code and design review. They can talk about design decision, coding practices, algorithms, etc.

A technician doing a straight interview is a no-no. In this era of multiple platforms, languages, libraries and frameworks, a “set of techie 'interviewer' questions” and a “set of potential founder knowledge required for success” is almost an empty set.

Sure, you can ask basic fundamental computer science questions about algorithms and data structures, threads, MapReduce, NoSQL, JavaScript or Rails to test the the developer’s knowledge, but none of these tests are predictors of success. For a start-up, the best predictor is execution. Why not do a real world test of execution?

I have seen recommendations for a two-hour test. Here are three reasons why I disagree with administering this assessment:

A developer's yield is an exponential curve (and not a linear one). There are plenty of developers who struggle during their first couple of hours on a task. Many take their time to analyze the problem, collect their thoughts and sleep on their ideas before getting a brilliant insight -- one that is sometimes far superior than any quick solution.

You can't capture those leaps in insights. You can't linearly extrapolate a developer's ability from the first two hours of data points.

Also, this test will only capture the developer's L1/L2 cache, and not their long term persistent wisdom. Today's solutions require you to evaluate the pros and cons of multiple databases, frameworks, libraries, languages, techniques, algorithms and data-structures. For instance, if you’re immersed in functional JavaScript and someone suddenly throws you an ORM problem, you might struggle for the next few minutes (if not the first next hours) until your brain has properly switched contexts and accessed the deep wisdom of ORM that’s stored in your long-term memory.A developer's yield is an exponential curve (and not a linear one). There are plenty of developers who struggle during their first couple of hours on a task. Many take their time to analyze the problem, collect their thoughts and sleep on their ideas before getting a brilliant insight -- one that is sometimes far superior than any quick solution.