Do You Know What You’re Doing?

Here’s an interesting discussion on Slashdot with quite a headline:

Only 32% of Java developers really know Java

And as one poster pointed out, only 5% of people don’t stretch the truth on their resumes.

Some of the more interesting posts dealt with the interview process, and what can be considered “fair game.” Having been on my fair share of technical interviews over the past few years, I’ve seen it all, from completely non-technical interviews (“what person has most affected your life”) to questions right out of a certification exam (“describe how to store an object as a reference in the Java Virtual Machine”). I’ve also had to write my fair share of code for interviews. Most of the time, I’ve been given access to reference materials, but sometimes I wasn’t. And sometimes I was asked to ask to write a recursive Fibonacci class (“umm, did you notice on my resume that I don’t have a degree in computer science? When was the last time you wrote a recursive Fibonacci method in the process of designing a website?“).

I don’t mind answering technical questions, and I don’t mind writing code. I mean, that is what they’re hiring me to do. I’m not a big fan of the certification questions, since most people who take the certification exams study like a medical student before them. Why should I be expected to have the inner workings of the Java VM or esoteric APIs memorized? What programmer doesn’t consult a book or Google several times a week? Programming is a process, and you’ve got to know fundamentals to do your job well, but knowing what methods are available to an obscure API class doesn’t count as knowing the fundamentals.