There’s an interesting post on Tech Crunch – Why the New Guy Can’t Code. (Found out about it via Alfred’s blog). The Tech Crunch post is bemoaning the fact that companies which are supposed to have well managed recruitment processes are ending up with programmers who can’t actually write programs. This is becoming quite an issue in a world which is short of good developers at the moment.
In the past some companies (notably Microsoft and Google) became famous for asking interview questions like “How would you move Mount Fuji? or Why are manhole covers round?”. Their argument was that they wanted smart people, and questions like this will allow a smart person to shine. A tip: I think that in these situations they are interested in what you do when confronted with the question, not whether your answer is actually correct. If you say “I dunno” when asked how to move a mountain, this won’t go well. If you start making plans involving earth moving equipment and calculating volumes of rock then this might go down a bit better. Me, I’d suggest just changing the road signs, but perhaps this is because I have difficultly taking these questions seriously.
Google have apparently taken this a bit further, and now ask for answers to programming questions like “Write me a binary search”. This sounds more technical, but nobody writes that kind of search any more, and the fact you can trot out an algorithm like this doesn’t necessarily prove a lot.
Anyhoo, according to the blog post the trend now is moving towards making an applicant show off what they have made. In other words, the best way to see if a person can program is to look at a program they have made. Well, duh. In the old days you had this idea of an “apprentice piece” that was made by an apprentice at the end of their training to prove their worth. A cabinet maker would create a small wooden box, etc etc, and then show this off to potential employers.
I’ve just spent four days in the labs getting our first year students to show us what they have made. This is the second time we’ve done this marathon effort, and it was nice to see the improvements. Lots of students who last time failed to deliver all the components, or added extras that weren’t needed or worth extra marks, had really focused on the specification and made darned sure that all the important bits were present. And they got very good marks as a result. The students also had the experience of someone looking at their code and asking them to explain it.
I’ll tell any student who listens that they need to get some code out there in the form of an application or game, and be prepared to talk about it when you get interviewed. And if they don’t bring it up, make sure that you do:
“Any Questions Mr. Miles?”
”Yes – do you want to see this game I’ve written? It’s called Cheese Lander”
(sound of minor chord playing in the background)
In all seriousness, if you want to get ahead (or perhaps anywhere) in this business I think that you really do need to have an “apprentice piece” of your own, that you can show off. It is good to see that those hiring are starting to take a proper level of interest in such things.
If you haven't already, you should read the comments on the original blog post. They are reflect a wide range of viewpoints on this issue. I thought it was pretty much an open and shut case, but the individual opinions and the way they are expressed are worth a look. I've not changed my views on the matter, but I must admit the matter seems a bit more complex than I originally thought.