Things you should know when interviewing for a programming job

I was browsing through the Programmers stack exchange Q&A website yesterday and I stumbled upon a question about the fairness or unfairness of some interview questions that the candidate was asked to answer. Basically, the candidate was asked to answer questions out of his field of competence and felt cheated by the interview. In all fairness, he was a recent graduate and probably didn’t have that much experience interviewing.

In his question, he mentioned that he wanted to write the company to tell them about the unfairness of the questions. Fortunately, the Programmers community responded well and told him that this was not the right thing to do, however a few people did agree with him. Since he might not be the only one feeling that way, I decided to write a few (non-technical) things that every programmer should know when applying for a programming job.

You don’t have to answer all the questions

It’s a common trick by interviewers to ask a question that the candidate will not be able to answer. Sometimes it’s some kind of annoying “MBA” question like “Why are manhole covers round?” (here’s the answer if you really want to know), but sometimes it’s just a highly technical question that you are not expected to be able to answer. What the interviewers want to know is how you deal with problems that you don’t have the answer for, because that’s going to happen a lot in the work environment. If you get one of these questions, walk them through your thought process, tell them how you would find the information (ask a specialist, a colleague, on Stack Overflow, etc.). Sometimes they might want you to guess how many of one thing there is in a certain region (ex: how many gyms in New York). They want to know how good you are at estimating values, because you don’t always have time to go find the information and a rough estimate might be sufficient. I dislike this kind of question, but you should be prepared to answer it nonetheless.

No matter what the question is, just answer to the best of your knowledge. If the question is out of your field of expertise (front-end, back-end, databases, algorithms, etc.), maybe they need someone able to work in multiple fields, or maybe they are just testing you. Just don’t complain to them about it or you just lost all hope of getting that job; they’d rather hire someone that will try to find the solution than someone who will complain about the problem.

The interview goes both ways

If you’re a decently skilled candidate, chances are that companies will be in competition with each other to get you. Many companies get it and offer great working conditions and plenty of incentives to try to convince you that they are the place where you want to work; those companies get the highly competent and motivated programmers. However, many others don’t understand that and just want to fill positions; those companies get the unmotivated programmers who just want a salary.

So when you’re in an interview, you should ask them about the working conditions: what kind of machine you’ll be working with, which tools (source control, bug/task tracking, communications, etc.), is there a dress-code, will you work in a cubicle alone all-day or can you talk to your coworkers, … They need to provide you with a good work environment so that you can do your best job. You’re going to be there for half of your day, 5 days a week for a long time, you better make sure you’re gonna enjoy the time spent there.

Never talk about the salary first

This one’s pretty obvious, but never mention it first even if they haven’t talked about it and they ask you if you have any questions for them. Use those questions to ask about the work environment or what a typical day at work will look like. Asking about the pay means one thing to them: you’re in it for the money, not because you love the job. Also, when they do ask you about how much money you want, give them a range or a baseline (ex: I had X at my previous job, so I expect at least X or from my research people doing this job receive between Y and Z, so I’d expect something in that range). Let them come up with a number.

Practice makes perfect

Like most (all?) things, practicing helps you get better. If you’re not confident in your interviewing skills, set up some interviews with companies that don’t interest you all that much. You won’t have as much pressure to get the job and it will help boost your confidence.

That’s all I got for now, good luck!

15 comments
Jason on July 19, 2011

I agree with everything except the salary. I’m not in it just for the money and I love what I do, but I really don’t want to waste my time with interviews ect. if they can’t meet what I currently make. So unless its some awesome company Ive dreamed of working for I make it my #1 question.

The reality of it is its all about money for them, not necessarily how much they love the business. They shouldn’t care if I am “really” passionate, as long as I can contribute positively to the company and am able to meet their needs. To me that just equates to I will work longer/harder without the deserved compensation.

I do however agree that you should always let them come up with a number first.

Michel Billard on July 19, 2011

@Jason: Money is an important issue, but if you hurry too quickly with the question, it’s going to look like you don’t care all that much about the job. Avoid asking the question, but do ask it if it’s clear they’re not gonna talk about it.

You can always ask about the employment conditions in general (vacations, sick days, holidays, bonuses) and hope they mention it.

Game on July 19, 2011

Your last tip, while it may prove to be helpful to the candidate, wastes others time. I certainly wont like if a potential employer plays similar tricks with me.

Frank Booth on July 19, 2011

I think you meant “Can I work in my cubicle all alone, or must I talk to my coworkers?”

Richard on July 19, 2011

@Michel – Conversely, if they *don’t* bring up salary then it’s going to look like *they* don’t care all that much about the job (i.e. what it’s worth to them). There’s nothing wrong in being upfront about it.

Also, I do think it is appropriate to complain about a question if it is manifestly unfair or irrelevant. One of the most important skills of any employee is to be able to tell their boss that they’re wrong and do it in a way that is appropriate. Anyone who doesn’t appreciate considered criticism is not someone you want to be working for.

Enzo on July 19, 2011

I have an opposite view. ALWAYS know what the salary range is before you bother interviewing, otherwise you could be wasting your valuable time. If you don’t do this, you are a fool and I probably wouldn’t hire you. It would show me you aren’t very professional and don’t know your own value and if you don’t know that, what else don’t you know? I would never interview for any position unless I knew the salary range was within my range. A good developer has some business sense too. They should know the cost of development, the cost of their mistakes and how their work contributes to a business’ bottom line.

ab on July 19, 2011

Always ask about money. I was interviewing and loving a job until they presented the salary of 30K for a job req 5 years exp and bachelors. I was making 60K at the time. Waste of two weeks in a job hunt.

Programmers and developers as a whole need to shatter this crap misconception that they are in it for adrenaline and mountain dew. It just stunts salary and impressions of the career industry wide making it harder for everyone who wants to make a real career out of it.

gaffo on July 20, 2011

“Sometimes they ask impossible questions”: Not always true. For Games developer positions I interviewed for, all of the questions were answerable but they were all quite hard. They wanted to see you fail with style.

CJ on July 20, 2011

From my experience, the expected salary range should be included in your cover letter so that both sides have a frame of reference *before* you are even invited to the interview. If you don’t include it in the letter, you are not getting invited.

During the interview you can discuss work conditions and general salary structure (e.g. ratio of fixed salary and bonuses), salary progression, etc. but you don’t haggle for a specific number in the interview, nor should it be your #1 question.
If you make money your first priority instead of the company, project, etc. then your future employer knows that you will be gone the second someone comes around with a better offer.

*After* the interview they will get back to you with a specific number.

Bob Jenkins on July 20, 2011

Hire a plumber, get an estimate. Build a house, set a budget. But, dedicate 2000+ hours a year to a corporation, no talk about money?! That makes no sense. It is all about the money and how the company will treat you. If the interviewer or the hiring company does not understand this, work somewhere else. Such companies don’t understand business. If you are going to make the company $1M+ per year and clean up the messes from the incompetents they hired before, they can afford a full programmer’s salary for you.

Michel Billard on July 20, 2011

I never said not to talk about salary, just to avoid talking about it too early.

anonymous coward on July 20, 2011

Assuming the position is in the range you are expecting, the time to talk about money is after the interview when you receive their offer. At this point, they have decided they want you. That is the point of highest leverage you will ever have with the company. Ask about money before the offer, and that’s just one more reason to filter you out of their stack of candidates.

nate on July 20, 2011

You should know the range of pay before you even go into the interview. I have a job already and my time is valuable. If the salary doesn’t come close to what I’m expecting to be paid, going further would just be wasting both our times. I have a degree, have worked in the field, obviously I’m passionate and love my work. Interviews are for you to find out about their company and if they are right for you.

Evan Kaufman on July 21, 2011

I have to agree with CJ, that you should establish the *range* of salary before the interview even happens: on your cover letter if you’re applying, or on the phone with the recruiter/hr if they’re scouting you.

That way, *you* don’t have to bring up money in the interview at all, and can wait until they present you with an offer to decide whether it’s something you want to do.

JGarrido on July 21, 2011

Why isn’t the answer that the cover is round, because the hole is round?

I mean, what color was George Washington’s white horse?


Leave a comment
Name (required)
Email (will not be shown) (required)
Website