CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

Interviewing thread on altdotnet

There's yet another thread going on the altdotnet list about interview questions and techniques.  This message in particular caught my attention because I think it's so true:

One risk of questions like these is that they lead you to candidates
who are clones of yourself - who know the same things, who agree with
you, who have the same experiences.

Since we all know that we are the best programmers in the world, we
may not see this as a problem. However, hiring clones of me is the
mono-culture risk - if we all approach problems the same, how are we
to approach problems in different ways?

 

I've been on both sides of the "I want another me" interview style.  Once I realized that I was guilty of the "clone me" attitude, I've tried to dial back questions on patterns, OO trivia, and Agile practices a bit.  I ask more open ended questions to try to bring out what they're good at instead of just asking questions to find out if they know the same things I do.  I can't say that it's foolproof and it's terribly unscientific, but I try to remember to look for skills that would expand the team instead of settling for more of the same.  One of the more frustrating interviews I've done was being interviewed by a C++ and SOA guru a couple years back.  I didn't get a single chance to talk about anything that I did know or had done.

Besides, for me communication and the ability to explain themselves trumps almost everything else in an interview.  Facts can be learned.  Expressing yourself and thinking logically are a bit harder. 



Comments

Chad Myers said:

Jeremy,

I wouldn't hire you unless you can tell me what the expected result of this statement is on all the major C compilers:

x+++++;

# January 23, 2008 11:02 AM

Jeremy D. Miller said:

<grin>

Nothing irritates me more than trivial pursuit interviews.  

# January 23, 2008 11:10 AM

DotNetKicks.com said:

You've been kicked (a good thing) - Trackback from DotNetKicks.com

# January 23, 2008 12:16 PM

Matthew Podwysocki said:

Now we're entering in the lightning round!

Which members are now obsolete in the Thread class and why?

Tell me six ways to convert from a string to an integer...

Totally agree with your points though with regards to logic, which is why I tend that stress that over the code semantics of the language of choice.  If you can understand a queuing problem, or some other logical problem, that's what I'm looking for.  I don't want to know how many methods are on the Convert class and what they're used for.

# January 23, 2008 12:23 PM

Chris Patterson said:

I tend to focus on how a candidate approaches a problem. I could care less if they know how to convert an integer to a string. That's something anyone can look up in the help.

I'm more interested in how far beyond the wizard they've gotten with real-world code. Issues they've had to troubleshoot, problems they've had in production. If they mention they had to load Visual Studio on a production machine to troubleshoot the problem, I get really scared and usually call it quits.

I also find that if they don't have any real details of anything they've done over the past year, they probably didn't really get involved in the details and likely slept through a lot of meetings.

# January 23, 2008 12:29 PM

Mike Moore said:

I've interviewed my fair share of folks for a different groups over the last few years. My role has typically been the technical assessment. Besides technical competency we were also interested in getting a good fit for the group. Sometimes that means finding a clone, but sometimes that has meant finding complementary talents and skills. Personally, I'd hire a woman over a man with equivalent experience and expertise solely because my experience is they add a new point-of-view to solving the same old problems.

My general approach is to ask the interviewee to rate themselves on a long list of languages, technologies, methodologies, and paradigms. I ask them to give me a number between 1 and 4, where 1 means you have heard of it and 4 means you are an expert and could write a book on the subject. Then I drill down into the areas they rated themselves the highest. This helps us get an idea of the candidate's experience as well as their honesty.

I'm largely generalizing here, but what I've found is that kids just out of college typically overstate their knowledge and proficiency. They rate themselves a 3 or 4 on all subjects they've ever used before, regardless of how much they used it or how well they know it. The veterans tend to have a better grasp of what they know and what they don't know, and tend to answer more accurately. I don't have a very large sample size, but my gut also tells me folks with additional degrees tend to overstate their knowledge more than those without. (But I've never interviewed someone with a Master's degree that I would recommend for hire so I may be biased.)

# January 23, 2008 1:32 PM

» Daily Bits - January 24, 2008 Alvin Ashcraft’s Daily Geek Bits: Daily links, development, gadgets and raising rugrats. said:

Pingback from  &raquo; Daily Bits - January 24, 2008 Alvin Ashcraft&#8217;s Daily Geek Bits: Daily links, development, gadgets and raising rugrats.

# January 24, 2008 8:49 AM

Jason said:

@Mike

Take a good look at what it is you're testing there.  You spent most of your time describing the self-assessment rather than assessing the candidate yourself.

# January 24, 2008 3:12 PM

Kalpesh said:

Jeremy,

IMHO, expecting a candidate to know all the stuff that an interviewer knows looks more like people debating each other on the list on the same idea ;)

Also, it is highly less likely - people would know all that an Interviewer has already worked on.

# January 25, 2008 10:01 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

Our Sponsors

Free Tech Publications

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP