Talking about coding is not equivalent to coding skills

Fibonacci spiral

If you've been in the software business you'd recognize that there are probably developers you've met that are great at talking about software and code. They use all the jargon and have a great grasp of concepts in programming. Yet it is still possible for such talented individuals to lack programming skills.

This is why many interviewers tend to now ask candidates to write code during an interview. It's effective because it tests their problem solving ability, which is probably the most important intellectual skill a programmer requires.

I've seen employees at various companies who can discuss technology, software, and programming concepts, but they can struggle trying to develop code. Some of these developers have gotten high GPAs in college with spectacular resumes and they excel at subjects like math and science. Yet, they have other limitations that make them unable to code as well as others, and that is hard to notice for employers.

Programming can be broken down to its bare elements, once you understand and test someone for these elements, they should be a competent programmer:

  1. Problem solving
  2. Syntax and vocabulary memory
  3. Researching skills
  4. Critical thinking ability
  5. Thinking outside of the box

These are not golden skills a programmer must have and they should not be thought of as the solution to all your problems. Programming is sometimes an art form, and everything has many solutions. These are simply elemental skills that benefit all developers.

If you could test for each of these accurately in an interview, you should not be dissatisfied with any new hire recruitment.

The best way is to test people by giving them simple problems to solve with programming using paper and pencil. You can ignore some errors, many programmers might rely more on the compiler to catch problems even if they excel at problem solving.

Giving one test is never enough, on occasion the test itself might be vague or confusing (even nervousness can throw someone off), therefore multiple program tests can help you better understand if a candidate is suitable.

Also intentions are most important in judgment and assessment. Don't claim someone is a bad programmer because they made a syntax error or forgot about some implicit bool to int conversion.

If you have someone who struggles with code, they don't even need to be tested rigorously. Even a very easy code problem will throw them off.

In my interviews, I test with coding problems like reverse a string, fizzbuzz, fibonacci sequence, and simple math problems. Then I ask some critical thinking questions and puzzle problems where someone has to think outside the box and come up with an interesting solution.

It's not perfect, but it will give you a lot more insight then general interview questions or just talking about past experiences.

joey's picture

I agree. You'd be surprised

I agree. You'd be surprised how many people fail even the simplest tests.

geonat's picture

How can anyone fail fizzbuzz

How can anyone fail fizzbuzz test? Wth... And with Ph.D. / graduate degrees in computer science?

br0's picture

I knew a guy in college that

I knew a guy in college that was great at talking about concepts and was like magna cum laude, and yet he couldn't program his way out of a paper bag! Sense, it makes none.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.