views:

681

answers:

6

My department is hiring a software engineering intern. Previously all of our employees have been cross-bred electronics engineers and "novice" programmers. Now we're actually building a software team and looking to start by getting someone familiar with C and C# (C++ is a plus).

Seeing as this is a new position, none of us really know what to ask in interviews, I have some good ideas for the in person interview, but the phone interview is my biggest problem. Our company has HR run all phone interviews and none of them are especially tech savvy, I'm trying to think of some questions that could be fielded by your grandmother, responses recorded, and then passed back to us for review. Any ideas?

+2  A: 

Check out this previous post, it should be a great starting point for you, C# Interview Questions

Simon Wilson
As for "fielded by your grandmother", hilarious, not sure if I would have some of the folks I work with field these questions...they might be asked for the correct answer!
Simon Wilson
A: 

"Tell me about the programming you do outside of work."

Possible bad answers: nothing, I don't program outside of work, why would I even think of programming if I'm not getting paid, etc...

Possible good answers: contribute to open source projects, programming competitions, apps for smart phones, just experimenting with new technologies, etc...

MrDatabase
First of all I think you should determine if you want a person that does nothing but programming in their life, or if you want a person that does programming and other stuff. Sure, some people really love it and there's nothing wrong with that. But it doesn't mean that the person is not suitable for the job, if he/she is not programming outside of work.
Magnus Skog
Here, here. I love coding, arriving at the office around 7:00am in order to start work...but outside of work, give me a break, try it with 2 kids! I sat down at 10pm last night to work on something and the results were garbage, may as well go to work early and do it seeing as the boys have me up at 5:00am
Simon Wilson
MrDatabase, it's your attitude towards programmers with interests besides programming that keeps our profession from getting beyond the stereotype of pale-faced basement dwellers. Just because you've never met a good programmer who didn't devote his extracurricular activities towards his profession does not mean we do not exist.
Not Sure
Doing programming outside of work does not imply doing "nothing but" programming outside of work. So it's entirely possible and highly likely that great developers will do programming related things in their spare time but not _all_ the time.
MrDatabase
+9  A: 

Joel Spolsky has a good take on what you should be looking for in developers. Google: "The Guerrilla Guide to Interviewing"

Are you looking to hire someone junior who'll 'learn on the job'? Or someone who can hit the ground running? For a junior their enthusiasm is probably the most important, someone senior you'll want to know about their coding knowledge and team-leading ability.

Joel hits on the fact that its ridiculous to expect someone to know every arcane detail of C# - you are more interested to know how enthusiastic they are, and how well they fit in the team. So good questions to gauge that: "How would you spend your time at work if you had nothing to do?", "What technology have you learned on the job, how did you go about learning it?", "How do you stay up to date with coding?", "How would you deal with a problem team member?". You are looking for someone who uses their own initiative to improve their skills. Obviously someone smart could flat out lie.

Do the interviews absolutely have to be done over the phone? Could you email them a technical test, that you review? There's a few standard interview algorithm questions: write the code to calculate factorial, give them a block of code with no indenting / poorly named variables / no comment and ask them to critique it. I think its more realistic doing a test with access to the internet/references - as this is how you work!

russau
A: 

Actually, yes, I also noticed that people for whom programming is just a job will not care more about the quality of their work than is required to satisfy the employer.

People who do love programming (like me) will be strongly opinionated. The disadvantage is that they can grow frustrated about the unprofessionalism at work. But people who do not care about what they do often leave a mess of code nobody want to touch afterwards.

User
Do you secretly work at my place? <looks around for someone else who appears frustrated> Nope, only me
Simon Wilson
There is a big attitudinal difference between "programming is a job" and "programming is just a job", and it has to do with how seriously you take the *profession*.
Not Sure
Why don't you elaborate on that?
User
I take my profession seriously, in the way that a licensed PE (like a civil, chemical, aerospace, etc engineer) takes their job seriously. I wish having the Software Engineer title required having a license as well, as it would weed out the "just a job" people from having as much credibility, without this silly requirement of "programming must be your life."
Not Sure
+1  A: 

HR can be very valuable, when applied properly ;)
I have always conducted interviews personally, agreeing only basic details over the phone (this was sometimes done by HR). So usually, there was me – the tech guy, and girl from HR. She was asking HR-questions just to determine if candidate is or is not a maniac killer or a looser, while I was asking him tech questions, quite according to Joel. After few interviews, HR girl started to see the difference –simply: by accuracy and fluency, how candidates answered my tech question, so she was able to see who is good, and who is a moron. But we have never crossed the line: she was asking HR-questions, I was asking tech questions. And this worked really well.
At the end, we were discussing candidates, and approved or disapproved them. The approved ones were invited for a meeting with our manager (also tech person), who was making decision upon the interview (and he usually decided to hire).

smok1
+1  A: 

Great Question! I really like your idea about recording the calls and reviewing them later. Point of note: Make sure your state allows recording of phone calls where at least one party is aware they are being recorded. I've done this in the past. If you can do it on Skype and store a MP3 it works great. As referenced earlier Joel has an older post on Phone Screening. There is a lot of great stuff there. I've been working with programmers since 1995 and agree with most of what he said.

Here's how I'd do it:

  1. Clearly define project depth and scope: Type of project, How long did it last, What was the business case, Was it full life cycle, What technologies, Did they follow a methodology, Size of team, What was their role, What was the most challenging part(s) of the project(s) - Answers to these questions can be hidden on resumes for good reason, and other times the candidates just doesn't think about it.

  2. Define Passion: What are they really jazzed about, What do they do at home in the spare time, What type of side work do they do, What forums to they visit, Magazines or books do they read, Conferences do they attend. Do they have a mentor / have they mentored, Why did they get into programming in the first place, What is their most outstanding accomplishment?

  3. Technical Questions: If you are using HR for these calls best not to go with anything lengthy. Try these. (Not knowing how novice of a programmer you are looking for, I'll go easy) a. Can you define the 4 main pillars of OO programming? b. What is an object? c. Ask true / false questions in the context of C# and C (Controls, Form Initialization, Methods, Attributes…stuff like that) d. Why use a stored procedure?

I don't think I'd take it too much further than that 4 or 5 questions. I don't use phone screens for technical questions. I focus more on personality questions. I like to do the technical tests in house.

One more thought - Make sure the HR people know what you are looking for, other than just having a requisition for a body. Sit down with them and talk to them about the person(s) you need. In their head they need to have 4 or 5 categories that your programmer needs to fit before moving forward to you. These are your must haves. If the caller knows the 4 or 5 things to look for, it will make for a more successful call.
Hope you get what you need.

Tavisd