... and she's buying a solution to Fizzbuzz... Wha...?
Ok, I've been meaning to give some link love (not that anyone reads this blog for it to mean much) to Jeff Atwood's Coding Horror blog for some time now. I'm not a programmer, at least not any more, yet I find myself reading a number of coder blogs over and over, with this perhaps one of the ones I enjoy most.
Jeff has had a couple of posts up recently about the fizzbuzz programming problem. An utterly trivial program that is designed to test if someone applying for a coding job has at least elementary programming skills and thought processes.
The problem is an extremely simple one, because despite not having the word "programmer" anywhere near my job description for 10 years now, I was able to solve the problem in about 2 minutes. I emailed it around to a couple of people I work/worked with who are programmers and they solved the problem without even blinking, and pointed out that while my solution worked it wasn't as efficient as it could be.
Jeff's first post on the subject talks about the shock he feels at the idea such a test is needed. Quite a lot of the comments to the post talk about solving the problem itself, and most worryingly of all, more than a few of them get it wrong. Jeff then writes an amusing follow-on post about how people spent too much time on the fizzbuzz problem and not enough time on the problem that fizzbuzz was supposed to illustrate.
Now this gets me thinking: what is the system administrator/architect version of fizzbuzz? In interviews we can ask a few questions about how a server OS works at some level. We can set a few problems and see how people go about them, but what is the basic platform agnostic Turing Test for basic system admin competence, or the entry level filter for network systems designers?
The best one I've got so far is to ask a candidate to explain what is wrong with having a workstation running a virtual machine which contains a server, and requiring users to authenticate to this virtual server before the workstation can log in and any application (including the virtualisation app) can start.
Another more complex problem, more suited for people who work at a lower level with networking more than with the servers upon the network might be to describe a system to allow systems to allocate IP address to themselves such as APIPA or Bonjour, and to describe issues that might arise from this, and possible solutions.
Any more suggestions?