The Hillbilly turns 36 today and for my birthday, each and every one of you is going to give me a present by listenin' to a little story of when I was but a wee developer fresh out of codin' skool. (Unless you're on the ASP.NET MVC team, in which case you could offer me a job since one of the criteria for working on the team seems to be having Garnet as your birthstone).
Eight years ago, I was hired for what was essentially my first full-time development job. I had dabbled with Visual Basic on and off for a year or so and Y2K tested Delphi for a company that didn't trust Borland's public statements (no, seriously) but that's it. This was a job with a small company that sold an ASP-based learning management system with a twenty-year-old C component and some Word VBA templates. And when I say small, I mean that when I came on board, I doubled the size of the development team. At that point, I had never laid eyes on a single line of ASP code.
Now, before the interview, I had actually lost the ad (it was posted in the newspaper) so I had no idea what it was about or even what the company was named (it was run out of an office in a local technical college). Note the foreshadowing...
Interviewer: Did you look up anything about the company?
Coding Hillbilly: Oh yes, of course
Interviewer (pleasantly surprised): Really? What did you find?
Coding Hillbilly: That you're...ummm...based out of...<school name>...and you build...stuff?
Interviewer: So I don't see any ASP in your resume. Do you know much about it?
CH: Oh yeah, I've been studying it in my free time
Interviewer: What can you tell me about it?
CH: ...err....that it stands for Active....Server....Programming? And you can...build....stuff?
Interviewer: There was another website in the job ad. Did you get a chance to take a look at it?
CH: For sure, dude!
Interviewer (clearly skeptical by this point): What colours are in the logo?
CH: .... fuchsia and mauve?
Interviewer: Lucky guess. What do they do?
Interviewer: It's very clear to me that you have not done any research on this company or this position. Can you tell me why I should bother to take this any further and consider you?
At this point, I came clean, admitted I lost the advertisement, had no idea who they were or what they did, and that I had no practical coding experience. I politely grovelled at his feet and promised to kick my own ass out of the building.
The offer came a couple of days later. No, seriously. They called me back and offered me the position. And that's not even the point of this story. But give me a minute, I do have a point.
By that time, I had decided to stay where I was. The missus was pregnant with what we later determined was my child and moving from a big oil company with banked holidays to a near-startup that could go under at anytime didn't seem prudent. So after a prolonged stunned silence at even being offered, I politely declined.
Two days later, he calls back. What will it take for me to join them? At that point, I had had feelings of regret at turning it down and my wife and I agreed that I would have taken it if they upped the offer by another $5k a year plus a week of holidays. I told him that and he says "Done". (Later, I learned that the only reason my wife agreed to those terms was because she thought there was no hope in purgatory that they would have called back.)
By this time, curiosity gets the better of me and I ask the burning question: "Dude! I totally blew chunks at the interview. Why you trippin' to get me?"
My eventual boss for whom I gained a tremendous respect replied: To be honest, you weren't the strongest technical candidate by a long shot. But out of all the people we interviewed, you have the best attitude and would fit in with our team. And I've been an educator for many years and have a hunch you're a quick one.
Back to the present wherein you probably see where this is going.
This fellow took a tremendous risk on me. At the time, I didn't recognize how big a chance it was. The chance was that I had the team skills and the personality fit for the company and that the technical skills would come. Bless him for being able to recognize that and for placing such a high priority on them but my experience is that he's the exception rather than the rule.
There have been a number of discussions on interview questions of late in blogs and discussion groups. I'll single out Jeff Atwood's list because...I dunno... it was probably the last blog I read on the topic. I don't have a lot of pride so I don't mind admitting I'd probably flunk his test. And I write code for a living. Worst-case insertion performance of a hashtable? No idea. How do you test if the high-order bit is set? My answer would probably be eleventeen. Even the one on reading integers from a text file I'd probably falter on if I didn't have an IDE with IntelliSense.
On a side note, this is probably a dangerous line of thinking coming on the heels of Ray Lewallen questioning the money being spent on mediocrity. But in Ray's post, Dave Laribee comments that the winning attitude and the winning skillz should be rewarded. I.E. Not just the talent and not just the attitude.
And even then, what's the definition of "talent"? The ability to recite from a computer science manual? Or someone who knows how to transform business requirements into reasonably designed software and who can figure out the technical problems as they arise.
Ideally, you'd want someone that lies somewhere along that spectrum that makes sense to your organization. (Not to imply the two are mutually exclusive, either.) For a research position, business requirements may not be so ambiguous and you need someone who is acutely aware of how to unroll a for loop into assembly. For your average business application, maybe someone nearer the other end.
Now, let's not get all crazy and start assumin' I don't care if you are capable of finding all the prime numbers between 1 and 4. You do need to have some base level of knowledge in whatever technology is required. Nor am I suggesting you break out a Rorschach test during the interview. But there needs to be at least some emphasis on the candidate's personality. And maybe I'm overly optimistic/naive, but I have a feeling that if you gear your interview toward determining those less objective traits, you'll be able to determine their level of expertise anyway.
By the way, if you're looking for closure on the story, I stayed with them for a year, learned ASP, XSL, DHTML, and VB, then bolted to a consulting company. It sounds rather mercenary and when I think back on it, it was, even if I didn't mean it to be. It was a good move for me career-wise but has always left a bad taste in my mouth. Damn conscience...
Kyle the Aged