Here are few tips/tricks, based on my interviews with some of the leading technology companies in the world. I attended Oracle, eBay, Amazon, Microsoft in the past month and here it goes.
All these companies expect you to be strong in problem solving, logical thinking and most important is to apply your common sense.
1. Given a problem, find a solution
a. Take your time, think - never run up to a solution with no prior thoughts.
b. Always problem's do not have one correct answer, the solution you are
going to come up could be the best.
c. All they look for is, how you go about analysis and approach
d. Do not panic, if you have no clue about the problem, ask for more
e. Try to relate the given problem with similar problems you know before
(applying solutions from known issues).
f. Break down the problem in to smaller problems and then try and figure out
solutions independently and then integrate them.
2. If some one says I want you to code for this.
a. Always start with the design, make sure you understand the question.
b. Do not hesitate to verify the question and put it in your words to the
interviewer, you can make sure you got it correct.
c. Write the algorithm, even if the interviewer does not tell explicitly they
expect it, if some one says this is a pure coding round(usually they
don't) then you may want to check with them if they want to see your
d. Choosing the language to code. Say the interviewer gives
you choice for example say C, C++, C#. See first what you are
comfortable with. And then certain problems would be easy by the way the
language is designed. If some one asks you to insert a node in a linked
list, it would be easy to pick a language like C or C++ because they are
very close to pointers, instead of you beginning to write things in C#
using Unsafe. Say if some one gives you a problem where you need to be
tracking n things at different instances using the available collections
in C# is much simpler than using STL in C++. But be sure to choose the
language you are most comfortable with.
3. Asking questions
a. Ask questions, I like this one in Amazon
, they have
explicitly mentioned to be prepared to ask questions to interviewers.
b. Asking correct questions to the correct people makes a big difference, it
gives them an impression that you are inquisitive, interested and willing
c. But do not ask questions for the sake of it, it will give a negative
impact, definitely not better than not asking any questions.
4. Be prepared
a. Be prepared to face any kind of questions.
b. Think loud and take the interviewers help, some interviewers treat the
candidates as their own team mates and try to help. But do not ask some
silly stuff that would irritate the interviewer.
c. On the other hand, it is always a good practice to be prepared on what to
d. Browse online for questions and answers
e. Understand for what team/position you are being interviewed for, it is as
simple as reading the email description of the job/team and digest the
information. Know the basics of the product or try to learn quickly
something online so that at least you can relate to terms.
Finally be honest and say "I do not know", for the things you do not know. What they expect here is, you do not make blind assumptions. Say a manager would want to know what you knew and what not. Say for example: after you join they give you some task and the manager goes on vacation and after (s)he is back to see you have done nothing. That is horrible and unacceptable. Tell them upfront that you do not know, that will help them in guiding you and getting things/material you need to get prepared and do the job. At least when they are back, they can see your efforts and appreciate it.
Last but not least, wear a smile and be cool. Most of the interviews click when you are cool and relaxed, that will help you be confident and think loud/better.
Wish you all the best :)
Here are some references:
1. Universal search engine GOOGLE
4. http://www.w3schools.com/ - learn basics
5. http://www.wikipedia.org/ - Global definitions
7. The Guerrilla Guide to Interviewing