Thursday, February 14, 2013

Conducting Technical Interviews - Part 1

I just came from an interview with a high-tech company. They were looking for programmers with several years of programming experience. I was expecting them to ask questions about my programming experience.
Instead, they asked questions that resembled a 1st year computer class exam:
  • What is an interface?
  • What is a class?
  • What is polymorphism?
These questions don’t reveal anything about a person’s experience or abilities. In fact, these questions are worse than useless.
These questions penalize experienced developers. After years of industry experience, the answers to these questions are forgotten. I may not be able to formally define an interface, but I’ve used interfaces in countless situations. Ask me a question regarding a real-world problem and I will be able to answer it with ease.
The same thing is true with some of the greatest minds in history. They can produce incredible work. However - they can't explain how the do what they do. If you ask them, they typically say, "Just do it." or "I don't know. Needless to say they will fail all technical interviews.
On the other hand, a newbie will be able to tell you what an interface is, but may not know how to use it in real-world situations.

1. The 30 Second Interview

Countless studies have shown that we decide whether we like a person in the first 30 seconds. The rest of the interview is used to justify our feelings.

An interview is an unnatural situation to many people. It causes them to shut down and not act normally. This means that we are not looking at people at their best. Countless excellent candidates are passed over because of this. On the other hand, some people act confidently even though their abilities don’t justify it. A good interviewer needs to take this into consideration.

2. So how do we select someone to hire?

Past competence is a good indication of future worth. If a person does well in the past, it’s a good indication that they will do well in the future. The above company should have asked what programming challenges I faced and overcame. This would allow me to relate my experiences in terms of their needs.

3. So how do we select the best candidate?

In my opinion, the only way to know the qualifications of a person is to work with them for at least a month. You put a new hire on probation without obligations on both sides. After the probation period ends, you have the choice of letting the contract end, or offering the person a permanent position in the organization.

4. So how do we select someone for this probation period?

For candidates, the best companies turn to their network. Word of mouth is the No 1 method of finding people. Companies look to their network to find out about prospects.
In the Brave New World we have entered, there is a new way of finding about candidates. This is the Internet. This is especially true of the social networking sites such as LinkedIn, FaceBook, and Twitter, to name but three.
Of course, this won't replace face-2-face interviews. I think the interview is like a date. Each is trying to decide if they can live with the other person. The technical interview is just a means to that end.

5. Microsoft Technical Interview Questions

Microsoft likes giving programming questions in their technical interviews. These questions are useful in finding out how people think. As a result, it doesn’t matter if the candidate gets it right. The important thing is that the candidate explains their logic.

It’s fundamentally important that the interviewer knows how to solve the programming question before they give it to the candidate. There is nothing worse than questioning a candidate and then having the candidate correct your mistakes. It’s embarrassing for both you and your company. It’s also bad for the candidate because now the interviewer resents them.
I was in this situation myself. I felt that the interviewer was incompetent and wondered why he got hired. Needless to say I didn’t get the job.

6. Suggested Questions

Here are some technical questions I have collected over the years. It’s best you work out the answers to these questions yourself. If you cheat, you will only hurt your company and yourself. I’m only including questions I myself have solved. I will NOT give out any answers because I think that's a disservice to the community. Technical Interview Questions.

7. Home Grown Diamonds

Many companies try to steal the best people from other companies. In my opinion, this is a lose-lose situation.

We all know that it harms the company that is losing talent. However it doesn't stop there.
It also harms the company that is stealing the talent. They have to pay a premium for this talent. Also, what's to stop someone else from stealing this person? In my opinion, this is why executives get overpaid.
The best solution is to take a good worker and turn them into a Star.
A good candidate has these qualities:
  1. Easy to work with.
  2. Intelligent.
  3. Dedicated to self-improvement.
  4. Experienced in the specific technologies your business depends on.
Find a candidate with these qualities, and then help them to be a Star at work. To this end, I would like to suggest to you my favorite book on the subject of productivity. It’s called, “How to Be a Star at Work: 9 Breakthrough Strategies You Need to Succeed
I'll talk more about productivity in a future blog.

8. Some Further Reading

1 comment:

  1. Personally I like your blog because it has some good information regarding Program Development Company. I enjoyed this post too because I am waiting your new article all the time.

    ReplyDelete