Saturday 7 March 2009

Back To Basics

I spend a lot of time interviewing programmers. This has caused me to reflect on the changing nature of the programmers’ basic skill set.

Once upon a time, it was easy, I interviewed games coders; if they knew C/C++, basic 3D maths, were keen and not too socially objectionable then they got the job.

These days it’s much more complicated. I’ve seen CVs from people with 6+ years development experience and yet when I ask them a basic programming question they seem to get stumped.

It’s a puzzle to me. It seems that nowadays a lot of people learn some basic use of a language (c++/c#/java), some APIs then get comfortable and stop there. This is a major problem in my industry, and I would propose in any industry.

Recruitment takes a lot of time and effort so I’ve started to look at ways of quickly filtering out candidates who can’t do the basics. One of these is the ‘fizzbang’ question.

A ‘fizzbang’ question is a very simple problem solving question that requires you to write some basic code; no reliance on APIs, no language subtleties, just Plain Old Coding.

I got the idea from looking at Facebook’s job puzzles. In particular Hoppity Hop.

So, I knocked up a few of my own – here’s a simple one ( not one I use I might add!)

For all numbers between 1 and 101 (inclusive ) at each integer in that range, output the following to standard output:

  • If the number is even then print ‘even’
  • If the number is odd then print ‘odd’

Simple right?

I like it because it tests some basic skills that all coders need to have

  1. Can you read and analyse a requirement
  2. Can you solve a basic problem
  3. Can you write some code without resort to refactoring tools, help docs, google or intellisense

You’d be amazed how many people can’t do any or all of the above :(

If any of you want to try the question then feel free and if you have any other suggestions for good fizzbangs then mail me

No comments:

Post a Comment