Prepare for Technical Interviews
Jobs and internships in tech often include a technical or coding interview as part of their application process. You’ll be asked to solve a programming problem, writing code in real-time, for your interviewer. Technical interviews serve to (1) determine how well you know algorithms, programming, software processing, and the like, focusing on your broad set of technical skills, and (2) address your problem-solving skills. Interviewers are looking at your approach to sample problems and how you think through them to find a solution.
- Practice—a lot—talking through algorithm problems and writing code on a whiteboard (or, for phone interviews, on a Google doc or similar shared screen).
- Nikunj Agrawal ’19, CS/math major and CLS intern, created this guide to mock technical interviews with advice for both sides of the interview
- Review algorithms and data structures. Think about their trade-offs in terms of space, time, and complexity.
- Pick an optimal language for interviews. You can generally choose your favorite language to work in, but you must write actual code. What language are you most proficient/comfortable in? Does it lend itself well to whiteboard coding?
During your interview:
- Ask questions to make sure you fully understand the problem. If you need a hint, it’s OK; better to solve the problem with help than to not solve it at all.
- Think out loud. Show your interviewer your problem-solving process. Talk about the solutions you are considering and why. Describe your thought process, even if you think it’s obvious. Explain everything you write.
- Consider multiple possible approache sbefore you start writing code, so you don’t get stuck in a wrong solution. But don’t spend all your time pondering possibilities without actually writing anything!
- Can you do better? Find a basic/brute force solution, then improve it. Think about time and space complexities. Try to break the solution you start with and test edge cases. Look for BUD:
- Bottlenecks that slow down your overall runtime
- Unnecessary work
- Duplicated work
- Write clean code and use clear, self-explanatory variable names.
- The Complete Guide to Google Interview Prep
- Gainlo Coding Interview Questions
- Tech Interview Handbook
- Code Interview Resource Board
- Tech Interview Cheat Sheet
- Cracking the Coding Interview PDF
- IGotAnOffer.com blog posts
- Leetcode problems
- Tech industry behavioral interview practice on Big Interview