Living in a world that is ever-developing and growing at a faster pace every single day, it is needless to say that the competition in the technical domain is very tough. Ask anyone about their dream companies, you'll always hear names like Google, Facebook, Microsoft and Amazon. So what is it that sets these companies apart?

  1. They are very well-structured.
  2. They discover opportunities in places that others can't.
  3. They look for social significance.
  4. Distractions don't let their focus get clouded.
Some well known tech companies

The question now is, what should be done to crack technical interviews of these giants?

THINGS TO KEEP IN MIND WHILE PREPARING:

  1. Well, the first thing is to stay focused. Come what may, don't let your dedication and enthusiasm die in any way. As they say, 'diligence is the key'.
  2. Having a knack of solving every problem at hand without giving up, is a skill that should be acquired, if not present naturally.
  3. Knowledge of basic data structures and algorithms is always useful, whatever the profile you're applying for may be. Lists, graphs, trees and sorting are some fundamental concepts that one should have a grasp on.
  4. It should also be noted that most of the tech companies use Whiteboard Coding and do not provide laptops to code. The prime purpose of whiteboard coding is to allow you to speak more about your thought process. So there may be times when you cannot come to the exact solution, but do make sure that you speak your mind out in front of the interviewer. Though many may think that it becomes very difficult to code on a whiteboard since we are always coding on computers, the interviewer does not expect you to write a perfect code as there can always be syntactical errors. Another advantage of whiteboard coding is that you do not need to write the complete class definition and boilerplate code. But do keep in mind that you should not write pseudo-code.  

ROUNDS IN AN INTERVIEW:

In a technical interview, the interviewer makes an evaluation of the following:

  1. Coding skills and technical knowledge: Includes successful translation of the algorithm into code, the organisation of your code, proper styling, and presenting an error-free code.
  2. Analytical skills: How optimal your solution to the problem is, how long you took to solve it, how much help (or hints) made you arrive at the solution and how well you designed or structured your solution, are some analytical skills that you should imbibe.
  3. Experience: Includes challenging projects, and how much you indulged in making the projects successful.
  4. Communication skills and culture fit: This is an assessment of your personality and how you communicate with the interviewer.

SOME DO'S AND DON'TS FOR INTERVIEWS:

  1. Do research the position that you are interviewing for.
  2. Don't search the internet for answers (on a telephonic interview).
  3. Be gracious and presentable.
  4. Don't be late for the interview.
  5. Do ask your questions and doubts.
  6. Don't lie.
  7. Be confident.


WHAT ARE SOME OTHER POINTS TO KEEP IN MIND?

  1. Take up only one programming language and master it. Don't play around with many languages, as it will only lead to more and more confusion in the technical interview.
  2. Do not expect the interview problems to be the ones that you have heard or seen before. The main purpose of these questions is to check how well you can tackle unseen problems.
  3. Some interviews may also contain questions based on Operating Systems and Databases. So it is always advised to be well-versed in the topics that the company is concerned about. A good way to know about this is interacting with the people who already work in the company or have given interviews for that company.
  4. Try and contribute to some projects, if not build your own. It is always better to not copy and paste someone else's work.
  5. Mention only those skills/projects in the resume that you are confident about. The interviewer can easily sense if you are lying or exaggerating in your resume. And that is a big minus point.
  6. Practise as much whiteboard coding as possible.

WHAT ARE SOME SOURCES THAT CAN BE USED FOR PREPARATION?

  1. Cracking the Coding Interview by Gayle Laakmann McDowell is one of the most popular resources and the most widely used book for interview preparation.
  2. Free websites like HackerRank, HackerEarth, CodeChef etc. provide a wide variety of questions to practice. But do remember that the solutions to the problems should not be mugged up, and should be understood thoroughly. Also, always try the questions yourself first.
  3. Interview Preparation Course (available in both C++ and Java) by Coding Blocks is another major source to prepare efficiently. The course is very well-structured and provides insights to all the topics of concern. The course is available in both online and offline modes.

I hope this blog was helpful. Prepare in an orderly manner and no-one can stop you from succeeding. All The Best!