Thought for the Dazed

I've had to give up that Distance Learning course as I was having trouble seeing the teacher.

Flickr
www.flickr.com
RobMiles' items Go to RobMiles' photostream
Twitter
C# Yellow Book

Search entire site
« 24 Hours a Day at the World Trade Centre | Main | Friday the 13th Update Fun »
Friday
May132011

Why the New Guy Can’t Code

 

Whitby town

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.

Reader Comments (3)

I'd probably start pedantically examining the meaning of the word "move". Which frame of reference would you like me to move it in? It is moving at about 70,000mph around the sun, and it's also moving away from the centre of the galaxy, and given a good few hard month of training plenty of people move mount Fuji to just below their own feet.

I think there's a slightly less pedantic lesson to learn here, and that is that sometimes there isn't a right answer. Often students ask if there program is right or not, or what is the best way to do something. More often than not the answer is "well that depends what best means". Does it mean fastest, least memory, most secure, most maintainable, most reusable?

Sadly best to some students means "most marks" or even "will it pass" but in this last session of marking I was particularly encouraged that that didn't seem to be the case, with the majority of students taking as much interest in how they could make the program better as they did in what their actual mark was.

Maybe marking doesn't make me as grumpy as I thought it did after all :)
May 14, 2011 | Unregistered CommenterSiG
What you say about apprentice pieces is exactly right. Similarly, journeyman pieces and examples of master craftsmanship.

Sometimes I wonder if we need a few more guilds around the place.

Alternatively, I maybe missing AD&D after too long away.
May 16, 2011 | Unregistered CommenterTim Barrass
I love the idea of an 'apprentice piece', and I'm a bit embarrassed to say after over 20 years in this business I don't have one. That being said, I've also never been on an interview where I was asked to produce even code samples, much less the esoteric questions like the Mount Fuji example.

I would think producing the apprentice piece without even being asked would put you light years ahead of any competition in a job interview.
May 19, 2011 | Unregistered CommenterJim Jones

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.