In addition to behavioral questions, you may have a technical portion of the interview if you are interviewing for a technical role. Such interviews put candidates in hypothetical situations to solve problems and test their ability to function under pressure.
Online Preparation Tools for Technical Interviews
The best preparation for technical interviews are practice questions, consider using the following:
- interviewing.io: Practice interviewing with engineers from Facebook, Google, and more anonymously!
- HackerRank Interview Preparation Kit: Includes interview tips, advice, and practice challenges.
- CodeSignal: Offers free tools to prepare for technical interviews.
- Cracking the Coding Interview: Information on the book as well as interview prep sheets.
- Tech Interview Handbook: Carefully curated content to help you ace your next technical interview
- Careercup: A guide to software engineering interviews.
- Khan Academy, Algorithms: Computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges.
- Ultimate Guide to Programming Interviews: Includes tips and practice interview questions.
- Alison: From Microsoft to Google Apps, get an in-depth understanding of the world’s most popular software applications.
- freeCodeCamp: Non-profit organization that consists of an interactive learning web platform, an online community forum, chat rooms [and more].
- Mastering the Coding Interview: Realistic tests for for software developers. Geared towards employers to create coding interviews.
- Treehouse: Learn to code and gain a new skill.
- Udemy: Courses on a range of topics. Search “coding interview” then click Filter->Price->Free
- Guide for Data Science Questions from DataMask
- Sample Questions and Solutions from DataMask
Tips to Ace the Technical Interview
Focus on Fundamentals
|Review the job description to know what kind of position you are interviewing for (software, hardware, testing, operating systems, etc.). Research the organization, reflect on their needs, how your background fits, and what you can contribute to the organization and the position. Interviewers are mainly going to ask you questions about your fundamentals: data structures, algorithmic complexity analysis, class design, etc. With strong fundamentals, you’ll be better prepared to tackle open-ended problems—the kinds of problems that many organizations solve on a day-to-day basis.|
|Be Prepared to Solve Problems in Different Ways||Interviewers will want to see how you can use your fundamentals in practice and will achieve this by asking open-ended questions that can be solved in a variety of ways. How you break down open-ended questions, your thought process in choosing your solution, and how you effectively communicate will be evaluated by the interviewer. Practice solving questions with different tools from your toolbox so that you develop a strong sense of when to use each of your tools.|
|Describe your Thought Process||If you have different ways of solving the problem, talk through the options before deciding which to use. It helps the interviewer see and understand your thought process. Make sure you’re asking clarifying questions to fully understand the question and that you’re not enlarging the scope of the problem. Finally, make sure you verbally run through a few test cases before you say you’re finished. This allows you to both check the code, and show the interviewer that you’re checking your code.|
|Practice||Make sure you simulate the interview environment. Give yourself a time limit on problems. If you have a phone interview, practice on both Stypi and Google Docs. If you have an in-person interview, practice solving problems on paper or on a whiteboard. Have non-technical friends ask you interview questions, and walk them through your answers. If you can explain it to them, you can more than likely explain it to a technical interviewer.|