Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

chrono1081

macrumors G3
Original poster
Jan 26, 2008
8,456
4,164
Isla Nublar
Hi guys,

I'm not sure if anyone remembers or not but I blew an interview back in September (mostly because I couldn't hear the interviewer, and partially because it caught me off guard and I wasn't prepared for the interview).

Well, I have since graduated college, have been working on my programming skill set, and managed to pass an initial interview for an application developer position.

I have a large pool of standard questions I have been practicing, I will be buying a suit this week (I do not have one), and will be doing practice interviews until the interview date.

My question is does anyone have any additional advice for an interview for a programming position? Perhaps a strange question you were asked?
 

GorillaPaws

macrumors 6502a
Oct 26, 2003
932
8
Richmond, VA
I have never interviewed for a programming position, but I have interviewed candidates for other jobs in an unrelated field. I can say that interviewees that ask me good questions about our company get put in the good stack. I would be tempted to ask them about their coding philosophy, if they use pair coding, or agile practices etc. and why that approach works for them. I'm sure you'll get lots of other code-related answers here too, but I thought I'd chime in to share my (non-coding) perspective.
 

jtara

macrumors 68020
Mar 23, 2009
2,008
536
1. Start solving a real problem right in the interview. May not be applicable for an entry-level position, though. What I mean is, identify a problem or some future development that they have planned, and offer your solution or make suggestions as to how you would solve or implement it. I've done mostly contracting, so I am hired to do a particular job. I find the most effective interview technique is to act as if I've already been hired, and just dig into the solution. Particularly if the interviewer is a peer, they will at that point forget that they are conducting an interview. It's then just a matter of showing that you're being there is going to make their job easier, because you "get it".

2. Save the suit for weddings and funerals. Seriously, wearing a suit to a programming job interview will actually knock you down a bit. In most places, there will be some concern that you will not fit in, especially if (as is common) there will be peers among the interviewers. Strike some happy medium between a suit and shorts and sandals.
 
Last edited:

Sander

macrumors 6502a
Apr 24, 2008
521
67
You should also be prepared for non-technical questions. Some interviewers like to ask you "Where do you see yourself five years from now" and "Name a situation where you solved a problem using persuasion".

If I'm the one interviewing you, you'd score extra points by just staring at me and saying "... dude." I'll apologize and say they make me ask this stuff, and quickly get back to nested templates and your knowledge of C++11.
 

WebMongol

macrumors member
Sep 19, 2004
50
0
Bay Area, CA
My question is does anyone have any additional advice for an interview for a programming position? Perhaps a strange question you were asked?

Be ready to write code on a whiteboard. It's tough and requires some practice. You can find typical questions in list below. In general, you are expected to come up with optimal algorithm and implementation in 20 minutes. Quadratic run time is not good enough. Usually you need to come with O(N) or O(NlogN) solution.
Good luck!

General
Given two arrays, print all common elements. Small array size is M, and large array size is N (M << N)

Given a list, return the first pair of duplicates in the list

Given an array of N numbers, and a number T, find out whether there are two numbers from the N numbers sums up to the number T. Find out ALL solutions to the problem and analyze the run times.

Given 64K-1 numbers [0..64K-1] find one missing number.

You have unordered array X of N integers. Find the array M containing N elements where M is the product of all integers in X except for X. You may not use division. You can use extra memory. Solution faster than O(N^2)

For a given sequence of numbers print all increasing subsequences.

Given an array of integers (both positive and negative) divide the array into two parts (sub-arrays) such that the difference between the sum of elements in each array is minimum?

Linked Lists

Implement basic operations for singly linked list: push_front, push_back, delete, tail, size, pop_front, find

Implement following operations for singly linked list: count, at, insert_at, insert_after

Reverse linked list in place

Find loop in linked list. Find length of the cycle. (Floyd's cycle-finding algorithm)

Write a function to find the middle node of the a singly-linked list

Write a function to copy list to new list and return pointer to head of the new list

Probability

You have a stream of infinite queries (i.e: real time search queries that people are entering). Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it.

Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7.

Write function to select random sample of size M from a stream of numbers.

Write function to select random sample of size M from a set of numbers of size N.

Write function to random shuffle array a.
 

KnightWRX

macrumors Pentium
Jan 28, 2009
15,046
4
Quebec, Canada
1- Don't be nervous. The best way not to be nervous is to be in the "they need me more than I need them" or the "Why don't they convince me to work for them" mindset.

2- Over preparing, rehearsing and all that crap will make you nervous, thus fail at 1.

Everything else, just be yourself. Don't study, don't rehearse. Just sit down, let them ask their stuff, then ask a lot of questions about the positions, the working conditions and the salary and benefits.
 

chrono1081

macrumors G3
Original poster
Jan 26, 2008
8,456
4,164
Isla Nublar
Thanks guys for all the tips and advice :)

@KnightWRX I actually did that before and it worked wonders! I ended up negotiating a significant pay raise during my interview. They hired me on the spot even though I know at least one other candidate was "technically" more qualified (he had a degree and I didn't).

The other guy I mentioned at the interview was actually a coworker who told everyone at work he saw me at an interview. Good thing I got the job ;)
 

jenny2765

macrumors newbie
Nov 1, 2012
3
0
I have some questions. I hope it's useful for me.
1.what is the first thing that people notice about you?
2.What are your three BEST life skills?
3.What’s the most important thing you’re looking for in another person?
4.What are 5 things you “can’t live without?”
 

dynafrom

macrumors member
Jun 15, 2012
61
0
1. Start solving a real problem right in the interview. May not be applicable for an entry-level position, though. What I mean is, identify a problem or some future development that they have planned, and offer your solution or make suggestions as to how you would solve or implement it. I've done mostly contracting, so I am hired to do a particular job. I find the most effective interview technique is to act as if I've already been hired, and just dig into the solution. Particularly if the interviewer is a peer, they will at that point forget that they are conducting an interview. It's then just a matter of showing that you're being there is going to make their job easier, because you "get it".

2. Save the suit for weddings and funerals. Seriously, wearing a suit to a programming job interview will actually knock you down a bit. In most places, there will be some concern that you will not fit in, especially if (as is common) there will be peers among the interviewers. Strike some happy medium between a suit and shorts and sandals.


Is this a joke? Wear a suit to ALL professional interviews.
 

Kranchammer

macrumors member
Mar 26, 2010
86
0
Kahleefornya
Be ready to write code on a whiteboard. It's tough and requires some practice. You can find typical questions in list below. In general, you are expected to come up with optimal algorithm and implementation in 20 minutes. Quadratic run time is not good enough. Usually you need to come with O(N) or O(NlogN) solution.
Good luck!

General
Given two arrays, print all common elements. Small array size is M, and large array size is N (M << N)

Given a list, return the first pair of duplicates in the list

Given an array of N numbers, and a number T, find out whether there are two numbers from the N numbers sums up to the number T. Find out ALL solutions to the problem and analyze the run times.

Given 64K-1 numbers [0..64K-1] find one missing number.

You have unordered array X of N integers. Find the array M containing N elements where M is the product of all integers in X except for X. You may not use division. You can use extra memory. Solution faster than O(N^2)

For a given sequence of numbers print all increasing subsequences.

Given an array of integers (both positive and negative) divide the array into two parts (sub-arrays) such that the difference between the sum of elements in each array is minimum?

Linked Lists

Implement basic operations for singly linked list: push_front, push_back, delete, tail, size, pop_front, find

Implement following operations for singly linked list: count, at, insert_at, insert_after

Reverse linked list in place

Find loop in linked list. Find length of the cycle. (Floyd's cycle-finding algorithm)

Write a function to find the middle node of the a singly-linked list

Write a function to copy list to new list and return pointer to head of the new list

Probability

You have a stream of infinite queries (i.e: real time search queries that people are entering). Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it.

Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7.

Write function to select random sample of size M from a stream of numbers.

Write function to select random sample of size M from a set of numbers of size N.

Write function to random shuffle array a.


Would not work for a company that interviewed like that; that tells you exactly nothing about the skills of the interviewee except that they are good at regurgitation.
They should know the CONCEPTS you described of course, but to expect someone to write optimized code on the spot? Dumb.
 

karlth

macrumors regular
Apr 13, 2010
210
0
Would not work for a company that interviewed like that; that tells you exactly nothing about the skills of the interviewee except that they are good at regurgitation.
They should know the CONCEPTS you described of course, but to expect someone to write optimized code on the spot? Dumb.

Totally agree, unless you are applying for a company that develops algorithm libraries.
 

AzN1337c0d3r

macrumors 6502
Sep 13, 2010
448
2
Totally agree, unless you are applying for a company that develops algorithm libraries.

I also agree.

Unless you are applying for a position where optimization is one of your main duties, writing "clever" solutions like this makes for a maintenance nightmare.

As one of my bosses once said:

Code should be boring to read. The correctness should be immediately obvious to anyone who reads it.
 

jtara

macrumors 68020
Mar 23, 2009
2,008
536
Is this a joke? Wear a suit to ALL professional interviews.

Not a joke at all.

Find out who is going to be interviewing you. It is common to be interviewed by a manager, somebody from HR, and a group of your peers.

The HR guy is to enforce company rules on hiring.

In many cases, the manager is going to take his cue from his team.

A suit generally is not going to be seen as a plus by your future co-workers. The first thing you are going to get when you walk into the peer interview are going to be glances between them and a few snickers. You will be likely be viewed as inexperienced, naive', "trying too hard", and not a team player.

Wear what you would wear to work. And find out what that is first. And get a better description than "business casual". If you can, hang-out in the parking lot on a day prior to the interview and see what people wear. Wear what the other employees wear on a day when they are well-dressed. (Skip the sandals.)
 

Persifleur

macrumors member
Jun 1, 2005
66
0
London, UK
A suit generally is not going to be seen as a plus by your future co-workers. The first thing you are going to get when you walk into the peer interview are going to be glances between them and a few snickers. You will be likely be viewed as inexperienced, naive', "trying too hard", and not a team player.

Whether this is true or not is very heavily dependent upon the type of company you apply for. I've worked for (and interviewed on behalf of) several companies that had a casual dress policy and I still interviewed in a suit, even though I knew the dress policy beforehand. From my experience, not showing up in a suit will backfire more often than it'll work in your favour.
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
Just to add a data point:
I wore a suit to 4-5 interviews out of college, got 1 offer, and accepted it. Since then I've gone 1 notch higher than what I understand my potential colleagues wear. I've tried to find out from insiders or a recruiter what the folk interviewing will be wearing. If they're in a polo, go Oxford. If they're in an Oxford with unbuttoned collar, add a tie. Pants... I've gone "nice jeans" (odd, I know. Dark/fitted vs. Levi's) or slacks (I hate khakis).

It's always worked for me. I haven't worn a full suit since the first round out of college. If you're totally comfortable in a suit, that's fine, but if you're not comfortable wearing that every day I'd call it false advertising. I think as long as you're at or just above the attire of those interviewing you you're fine. If you're below or way above then they're going to notice, and you don't need that to be what stands out.

-Lee
 

Mac_Max

macrumors 6502
Mar 8, 2004
404
1
Pants and a nice shirt and you should be fine at most non mega-corp types. Slacks and a dress shirt for those.

Being bluntly honest, If a suit is not your normal thing and you're forced to work in one, you're probably at the wrong company... unless they're paying you a huge amount of money and you have kids (and are willing to make the sacrifice for them) or don't plan on staying long. You will not like it and there are tons of software dev jobs where everyone wears t shirts, shorts, and flip flops.

I'd suggest brushing up on basic SQL syntax and DB concepts. I've found that people in general/interviewers appreciate basic questions about databases being answered honestly and without too much fumbling.

If you're interviewing at a web company, understand posts v.s. gets and have at least a "10,000ft concept" of what REST & SOAP APIs are (you don't need to be an expert unless you're advertising yourself as one).

Know what pointers/references are in general. Even if you end up working in a language without raw pointers (i.e. Java, PHP, Perl) most people will expect that you know what those are.

Bring a pad of paper to the interview or have one ready if its a phone interview. I've never been presented a white board. Never. But, for the same reasons that whiteboards are handy to have (scrawl out concepts, work through products, keep your thoughts straight), a pad of paper and pen is good to have as well.
 

milbournosphere

macrumors 6502a
Mar 3, 2009
857
1
San Diego, CA
^ You're the second person to recommend that book to me in the past week. I'm going to be picking it up this weekend. I'm about two years out of college with my CS bachelor's degree, and am starting to think about stepping up my career a notch.

I haven't interviewed since my intern days (I was given a full-time position after I graduated), so all this advice is much appreciated. OP, I'm glad the interview went so well.

On the clothing subject...I think a suit would be over-doing it, personally. I would suggest a nice, neutral shirt with a matched tie (simple four-in-hand; a Windsor knot would be too much) and a nice pair of dark slacks. If the company has only 10 employees, you could probably get away with not wearing the tie. It's not a suit, but it's not jeans and a polo, either. To wear anything less would, IMO, show a lack of respect for yourself and the position you're going for. A suit would be going overboard, but I feel that by dressing down, one walks a thin line. I'd rather find myself over-dressed than under-dressed.
 

admanimal

macrumors 68040
Apr 22, 2005
3,531
2
I think the general rule is that you should dress the way you would expect the nicest dressed person at the position you are applying for at that company would dress.

In most cases for tech jobs, that is going to mean khaki pants and a nice polo shirt, which is exactly what I have heard most recruiters tell people to wear. A more casual buttoned shirt with a tie is certainly reasonable as well.
 

mslide

macrumors 6502a
Sep 17, 2007
707
2
Oh geez. Please leave the suit at home. It doesn't belong in an engineering interview. When I see a candidate walk in in a suit, it's hard for me not to automatically dock points. They are usually inexperienced or trying to make themselves look better than they are.
 

Palad1

macrumors 6502a
Feb 24, 2004
647
0
London, UK
Write a function that takes an int N, and prints all numbers x between 0 and N on the standard output. Append "Fizz" if the number can be divided by 3, and "Buzz" if the number can be divided by 5.

You have no idea how many people fail the FizzBuzz test.
 

notjustjay

macrumors 603
Sep 19, 2003
6,056
167
Canada, eh?
Oh geez. Please leave the suit at home. It doesn't belong in an engineering interview. When I see a candidate walk in in a suit, it's hard for me not to automatically dock points. They are usually inexperienced or trying to make themselves look better than they are.

The last couple of engineering interviews I did, I wore the suit pants and a dress shirt with a nice tie, but no suit jacket. (I wore my university leather jacket). That seemed to dress down just enough while still looking professional.
 

ramy1989

macrumors newbie
Nov 7, 2012
21
0
Ok in two minutes I wrote this:

Code:
int main(int argc, char** argv)
{
    for(int i=1; i<=100;i++)
    {
        bool printNumber=true;
        if(i%3==0)
        {
            printf("Fizz");
            printNumber=false;
        }
        if(i%5==0)
        {
            printf("Buzz");
            printNumber=false;
        }
        if(printNumber)
            printf("%d",i);
        puts("\n");
    }
    return 0;
}

I tried my best to simplify the code, but I need a bool otherwise I shall write a lot of if-else.
It's not hard, maybe they not choose real programmers.
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
Ok in two minutes I wrote this:

Code:
int fizzBuzz(int maxNumber, bool inclusive)
{
    int start = inclusive ? 0 : 1;
    int end = inclusive ? maxNumber + 1 : maxNumber;
    for(int i=start; i<end;i++)
    {
        printf("%d",i);
        if(i%3==0)
        {
            printf("Fizz");
        }
        if(i%5==0)
        {
            printf("Buzz");
        }
        puts("\n");
    }
    return 0;
}

I tried my best to simplify the code, but I need a bool otherwise I shall write a lot of if-else.
It's not hard, maybe they not choose real programmers.

FTFY =). The receptionist will validate your parking on your way out. =)
Question wasn't to omit the value when evenly divisible, just append. The question didn't say inclusive or exclusive, so I made this an option.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.