April 20, 2003

Interview Questions

In light of my previous post, my brain went into overdrive this morning. Funny how sleeping on a subject will usually bring the answer to you first thing in the morning. Russell is responsible for getting the thoughts churning on this topic. On one project we had a 28 page SOP on how to set up your development environment. That ensured that everyone had the same setup and troubles could be easily fixed because all workstations were the same. But this meant that only a few people actually knew what was involved in setting up a workstation. Everyone else just followed the SOP.

After reading some of Russell's posts, I came away with the idea that he worked in an environment where everyone knew enough to be able to set up their own development environment. This got me thinking about what kind of people Russell must be working with. In short, smart people.

My hypothesis is that smart people are going to know more about what is needed to get started on a project. They will know how to set up their IDE for their needs. They will know the best ways to "make" their code (ant in the Java world). They will know CVS or some other CM tool. They will have thought about all of the situations that would cause a need for these tools. Following are questions that a new developer should be able to answer...

Which IDE do you use? The answer doesn't really matter as long as they have a favorite. But bonus points are awarded for using IntelliJ IDEA :)

Can you create a project in that IDE from scratch? A "no" here brings serious doubt to the candidate.

Do you know Ant? If it is a Java position and they don't know what Ant is, start losing hope.

Have you ever written or modified an Ant script? Hope for a yes.

Did it work? Again, hope for a yes.

Have you ever used CVS or some other CM tool? If they answer no, then you should seriously question their credibility as a developer.

Do you know how to checkout, update, commit and add? See last question.

If they answer in the affirmative to all of these questions, and you still have doubt, then you ask them how-to questions. Remember, you are looking for the thought process and not neccessarily what the KNOW.

What are the differences between GET and POST? If they don't know web-apps, and you are doing a web-app, and they aren't geniuses, hang it up. You will spend to much time explaining the intricacies of GET and POST or other web related concepts.

If you had to set up a web-app, what would your skeleton directory structure look like? The answer should be graded on consideration of the situation, not the actual answer.

What would your targets be in your ant script? Again, just looking for the way their brain thinks. If they don't have a compile and clean, well... They may not have a clue, because they found one that works and have copied and pasted it all over the place. That is better than nothing.

Have you ever helped out on an open source project? If they have, then they can stand on their own two feet. This is a good thing and deserves bonus points.

Find out if they can "fend for themselves". Can you read? Will you read? Can you find answers to your problems on your own? One of the ladies I worked with had an issue here, when she came on board I gave her the url to a couple of Struts documents. She came in the next day with the documents printed out, but she never actually READ them! This is actually the hardest attribute to expose.

This isn't the be all end all of Interview Questions. Joel's excellent article on interviews is a great resource. Have I missed any questions? Is the hypothesis correct? Or do you need coworkers that don't know all of the ins and outs of the development process?

Posted by carl at April 20, 2003 01:37 PM

Comments

A great article to actually start munching on..
Interesting enough to get my grey matter started in the right direction.

I have 3 + years experience in J2EE and I find I score negative on some important points.

Thanks !

Posted by: chaitanya at February 19, 2004 10:20 AM