The idea of a technical interview can leave most of us with a shiver down our spine. No one is ever thrilled about it, but we all have to go through it at some point in our career. There is no specific set of tricks that will guarantee you ace the interview, but I can tell you this – if you go into the interview thinking you are going to fail, then you are going to fail. So, to help you overcome your fear, here are 10 tips and tricks I swear by when it comes to making sure you do your best in your technical interview:
Brush up on Computer Science fundamentals
Technical interviews almost always cover the basic computer science topics, so you might want to dedicate extra time to familiarize yourself with the key topics: data structures, big O notation, trees, sorting and search algorithms, heaps, arrays, and hash tables. There is a plethora of resources that can help you sharpen your knowledge – starting from free YouTube playlists to paid online courses – but I personally think that Gayle Laakmann McDowell’s book Cracking the Coding Interview is the best place to start.
Pick one programming language and know it well
When it comes to technical interviews, being the Jack of all trades won’t really be in your best interest. Instead, honing in on one language will be much more useful. Companies usually let you choose the language to interview with, but it is highly recommended that you know at least one popular programming language well, such as Java, Python, C++, Ruby, Go, or C. For example, you might be asked about the time-complexity of the built-in .sort() method in Python, or how it differs from the sorted() method (.sort() modifies the list in-place while sorted() builds a new sorted list!) – things that you are not likely to know if you’ve only brushed the surface of the Python programming language.
Practice on real interview questions
“A question a day keeps the rejections away.” There is no magic trick to ace technical interviews, just like how you can’t learn to play the violin overnight. Explore the many resources that provide coding interview practice questions – LeetCode, HackerRank, InterviewCake – and try them all to see which one suits you best. Make sure you start early and practice regularly! I’d recommend solving 3-4 practice questions a day in the run up to your interview date to familiarise yourself with the different question styles as this will build confidence in your coding skills.
Learn to code by hand (paper, whiteboard, window/dry-erase)
You don’t get the luxury of auto-completion or syntax highlighting during a technical interview (yes, that means no red squiggly lines when you miss an enclosing bracket!). Most of the time, you will have to write code on a blank word document (online) or write on a whiteboard (in-person). Most interviewers won’t care if you miss a semicolon or two, but making plenty of syntactical mistakes will just show that you are not fluent enough in that programming language. So, make sure you are comfortable enough to code without the help of basic IDE features.
Learn to think out loud
This is the part where the quote “the journey is more important than the destination” will start to resonate with you. The reason why some coding problems in technical interviews are done on whiteboards is that they want the interviewee to communicate their thinking process. Say everything that comes into your mind – and I mean everything (related to the problem) – even when you are getting stuck. Arriving at the correct solution is important, but showing your interviewers how you came up with the solution is much more important as it shows that you possess great critical thinking skills. Otherwise, the interviewers might think that you simply memorised the solution or have seen the question before. Here’s a tip that will help you:
Have an interview buddy!
When I interned at Google last summer, we had an interview practice scheme where interns would set up a meeting with each other and book a room with a whiteboard and markers, and we would take turns interviewing one another. We would also give each other constructive feedback after the interviews were done and discover areas to improve. I found mock-interviews very useful, as it helped me acquaint myself with the technical interview environment; I became more confident in solving coding problems on the whiteboard, I got used to thinking out loud and I was less stressed out about the time constraint.
Ask clarifying questions
Before you start working on the problem, make sure you’re working on the right problem. Some interviewers might give clues or hints when they see you going down the wrong track but a few would just let you continue while silently watching you fail, as they might not really know what you’re doing. Make sure to avoid this by asking questions and restate your understanding of the problem to the interviewer. For example, I remember being asked to write an algorithm that would check if a Sudoku grid is valid. I know how Sudoku works, but regardless, I stated the conditions that would make a Sudoku grid valid to the interviewer anyway to make sure that we are on the same page. Keep in mind that your interviewer will want you to succeed and they are working with you, not against you, so don’t be shy to ask questions if you are not familiar with a concept.
A ‘dumb’ solution is better than no solution!
You will not get brownie points for coming up with the perfect O(n) solution in the first go. The best way to approach a coding problem is to write down the first solution that comes to your mind, even though it involves three for-loops. From this, you can work your way to a more efficient solution, detailing the changes you make to the code and how the change improves the code. For example, you can say that you’d like to change the data structure of a certain item from a list to a dictionary because you’ve found out that there are key-value relationships within the input data. So many people make the mistake of trying to find the most efficient solution possible from the start and getting lost in the process thus ending up with no solution at all when the time is up.
Show your interest and ask questions
There’s always time at the end of the interview where you get to ask the interviewer some questions. You might want to ask the interviewer how they would have approached the interview question or just ask for general feedback. They might not be allowed to answer this, but at least it shows that you have a strong will to learn. Otherwise, you might want to ask specific questions about the role you are interviewing for or what projects are the interviewer currently working on to show that you are interested and eager to join the company.
Be friendly and polite
Last but definitely not least, this is a tip that is important for all kinds of interviews, not just technical ones. During your interview, make sure that you show your interviewer your best self. Show them that you are the kind of person
they would like to work with. Respect your interviewer and don’t argue with them! Like I’ve mentioned in point 7, interviewers have your best interest and they only want you to succeed, so listen to their hints instead of trying to correct them or prove them wrong. I’ve heard from interviewers about candidates losing their spot because they are simply too overconfident and that they do not show promising team-working abilities and willingness to grow.
At the end of the day, it is just an interview. Don’t dwell too much on the mistakes you’ve made – these interviews were designed to challenge the best and the brightest. Companies won’t remember every single candidate that failed their interview, so even if you got rejected, you can always try again next cycle with a clean slate. Don’t beat yourself up too hard if you fail, learn from your experiences, and motivate yourself to do better instead. Interviewing is a skill after all, and the more you do it, the better you will get.
Best of luck with your next interview!
You can find Athiya on Linkedin, Github and via her personal website.