Tips for preparing for a technical interview
You've just been notified that a technical interview has been scheduled. Immediately lots of questions arise: "How should I prepare myself for this interview?", "What they will ask?", "Which of my skills do I need to improve?", etc. The simple tips below can help you in preparing for the technical interview if you have the basic knowledge and experience required for the position that you applied for.
Improve required skills.
Some job seekers overlook this simple step, thinking that their experience is quite enough. In reality they usually do not exploit all features of the programming languages and/or technologies used in their projects, thus during the interview they may not be confident in the areas that haven't been used recently. So check your skills required for the position, find weak sides, then practice to strengthen them. C++ and design pattern online tests at interQiew.com as well as YouTube videos can be very helpful for this purpose. Another useful approach for quickly revealing weak sides of your skills is to pass through the list of headings of all topics/subtopics of the required programming language (using, for example, a complete reference or the language standard), briefly recall the content of each topic and find out if you are confident with it.
Do not try to learn something significant that usually requires much more time than you have before the interview. For example, if position requirements include Python and you are not familiar with it, the best thing to do here is to read a short introduction about Python or a quick comparison with a programming language that you are experienced with.
Explore company's website, its profile, products and/or services.
Besides getting familiar with your potential employer it can be also useful in at least two other ways.
The first is to find out more about the position requirements when they are not detailed enough or contain some "hidden" assumptions. For example, if C++ is the main requirement and the company's products are Windows desktop applications, then "Windows programming in C++" can be assumed. Or if the company provides some financial services, then multi-threading, networking, Linux programming and database i/o are frequently required.
The second point is to prepare one or two general questions about company's business model, products/services or technologies they use. Usually interviewer invites you to ask questions after short introduction to the company profile. Having prepared reasonable questions can help you to represent yourself under a better light.
Investigate the interview process and questions. Search the web for the interview reviews and questions for the company. Glassdoor.com is a very useful resource for this purpose. Read the reviews and try to answer the specific technical questions you may find there. Also try to figure out from the writings the specific areas where the interviewer can be focused on and practice it if you are not confident there. In the case you cannot find interview reviews for a specific company look into the reviews of its (major) competitor; the interview process can be completely different but the questions should be around there. If you applied through a recruiter ask him/her about the details of the interview.
Search information about interviewer. Usually the best source for that is LinkedIn, but do not limit yourself with only that website. Look at the career path of the interviewer at the current and previous companies. Pass through the skills, experience, professional interests and hobbies. Read the recommendation the interviewer has and made. Try to outline the character, so you can feel comfortable during the interview. It may also help you to figure out the category of the questions that you may be asked. If the interviewer is a top manager of the organization (e.g. VP of development or CTO) then usually he/she expects short standard answers to (standard) questions. On the other hand, if the interviewer is a hands on developer then expect sophisticated questions.
The bottom-line is that the preparation for the interview is all about reducing the risk of being asked an unexpected question or finding yourself in an undesired situation. The more you investigate and learn before the interview the more chances you have to smoothly pass the interview.