GoMyJob.com
Interview Questions for Programming Jobs

Purpose of the programming interview

In general, software engineer needs diverse skills such as writing programs, developing algorithms,
writing documentation, good communication skills (to collaborate with your peers, managers, or product
managers). You are also expected to learn new things quickly, work under pressure, etc. So, the purpose
of an interview is to evaluate your skills and knowledge to make sure whether you are able to do the job.
Key Things you have to keep in mind

When you explain concepts, you first provide definition, and then explain how you used this
concept in your previous project. For example, if you are asked to explain virtual function, then,
you can first describe concepts, and then explain when virtual function is useful in real world
application.
When you are asked to write a program, you can write it in iterative or recursive version.
Remember the trade-off between them. So it's a good idea to say like this - we can implement this
program in recursive and iterative. But recursive version has a limitation in efficiency (e.g.,
function call overhead, etc), so I will write a program in iterative version.
When interviewers ask you behavioral questions, please use specific examples in your past
experiences
Areas in programming interview

Coding. You are expected to write a code on the whiteboard. The purpose of this test is to
evaluate your coding skills. Interviewers will asses whether your code can handle all the
boundary conditions and you are able to write maintainable code, etc.
Algorithm. The purpose of this test is to evaluate your problem solving skills. Almost every
interview I had before, I got 1~2 algorithm questions.
Design problem. The purpose of this test is to evaluate whether you can define all the necessary
components (requirements, input/output, data structures) that can handle the problem. Sample
question would be "design restaurant reservation system". Interviewers will asses whether you
are able to define relevant requirements, make reasonable assumptions, whether your design
handles all the situations, etc.
Language specific questions. Java or C++, sometimes Perl.
Other technical knowledge - database (for example, SQL) or computer network (for example,
difference between TCP and UDP, socket programming)
Resume question - questions on the projects described in your resume
Question in your specialization - for example, if your specialization is data mining, then you should
expect some questions on data mining.
Brainteaser questions - Also known as Microsoft interview question or puzzle. The purpose of
this test is to evaluate your out-of-box thinking ability.
Behavioral interview questions
Sample Programming Interview Question Areas

Behavioral Questions in Programming Interview
Java Interview Questions
C++ Interview Questions
Data Structures, Problem Solving and Coding Questions

Depending on the job requirements, you may have to prepare
Database / SQL Questions
Computer Network Questions

Finally, I'd rather recommend you to come up with a list of questions that you want to know about the companies. Refer to the following:
Questions to ask your future boss and colleague.