If you are interviewing for a technical coding role, in addition to behavioral questions, you will likely have a technical portion of the interview. Such interviews put candidates in hypothetical situations to solve problems and test their ability to function under pressure. To begin your preparation, please explore the other preparation tools and tips below.
Online Preparation Tools for Technical Interviews
The best preparation for technical interviews are practice questions, consider using the following:
- RocketBlocks: An interactive, skills-based web application that helps students prepare for case interviews in consulting, product management, product marketing and strategy + biz ops. You can create an account with your yale.edu email address. The access code can be found in Yale Career Link/Career Library/OCS Instructional Guides.
- Cracking the Coding Interview: Information on the book as well as interview prep sheets.
- interviewing.io: Practice interviewing with engineers from Facebook, Google, and more anonymously!
- Watch technical mock interviews with engineers from FAANG companies
- HackerRank Interview Preparation Kit: Includes interview tips, advice, and practice challenges.
- Tech Interview Handbook: Carefully curated content to help you ace your next technical interview
- Khan Academy, Algorithms: Computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges.
- Udemy: Courses on a range of topics. Search “coding interview” then click Filter->Price->Free
- Interview Cake: Courses to help you prepare to “win” the programming interview “game”
- 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].
Data Science Tools
- Kaggle: Find code and data to do your data science work.
- Resource repository: https://github.com/conordewey3/DS-Career-Resources/blob/master/Interview-Resources.md | https://github.com/hopelessoptimism/cracking-the-data-science-interview/blob/master/preparing.md
- Data Science Statistics Questions: How to prep for stats questions
- Exhaustive Data Science: https://github.com/bulutyazilim/awesome-datascience
- Practice Interviews: https://www.youtube.com/watch?v=uLCFCzVLi4Q;https://www.youtube.com/watch?v=5gIX1Oq7yvk; https://www.youtube.com/watch?v=dPSzIiW1x8s
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.|