Technical interviews can be intimidating, especially if you’re unsure what to expect. Many candidates turn to cheat sheets and online resources to get an idea of what they will be asked and how to prepare. While these resources can be helpful, they are often so scattered all over the web that the good ones are hard to find. Also, they provide a different level of specific advice than a good mentor or tutor.
Cheat sheets and online resources
When I started writing about technical interviews, I discovered a wealth of online resources available. There are even books on how to ace technical interviews, from general tips and advice to problem-solving strategies and specific types of questions.
So, how can we talk about a subject that has already been discussed without repeating ideas that have already been said?
My approach will focus on providing actionable advice for candidates. Instead of repeating the same guidelines and tips, I will focus on concrete strategies and insights and then redirect to the existing documentation. Think of it as a technical interview content hub.
How to prepare for the interview
You finally made it! You got a technical interview for an amazing job at the company you want to work for. What now? 😬
It’s normal to feel nervous: don’t let others tell you that it is because you are a junior and haven’t prepared enough! Even senior software developers feel nervous. They often fear being too familiar with programming concepts (or languages) outside their expertise.
Do your homework: research the job.
This shouldn’t be said, but sadly, many people come to an interview without doing the most basic research about the company and the job. And if by some miracle you pass the screening interview without doing that research, you won’t be so lucky twice.
Find out (or ask) which is the technology stack, who works there, and what kinds of products they build. Also, discover if they have any public repositories or OSS projects to take a sneak peek at. Finally, try to find out who will be your interviewer and analyze their Github profile. In the end, the goal is to learn about their coding style, the technologies, and the libraries they use so you can use that information to your advantage during the interview.
Prepare a short bio.
While using the same self-presentation speech at every interview is tempting, please don’t do it! Interviewers want to hear about the experience you have that is relevant to the position you are trying to land.
This Tech Interview Handbook section is handy for getting into the topic. But, I think the “short introduction” should be shorter than the examples shown. Think about something you can say in a minute or even less.
Get your setup ready.
“Ok, that one, I understand; you mean getting my audio and camera and headphones and so on working, right?”.
Well, yes and no. Yes, your audio and camera should work (Didn’t we learn anything during the 2-years-lock-up because of the pandemic?), and headphones are a must to get clearly understood in a virtual conversation. But no, that’s not the only thing I meant.
You should also pay attention to your room light and background, wear appropriate clothing (no, you can’t wear those old pajamas), and have the camera positioned correctly. Also, knowing which coding environment will be used during the interview is always advantageous. If you know it beforehand, don’t lose the opportunity to become familiar with it. Usually, you’ll use a solution with syntax highlighting, auto-completion, and testing capabilities, such as CoderPad or similar.
Prepare some questions
Remember that any interview is an excellent opportunity to learn more about your future job, the team you will work with, the company culture, and how you will fit in (if you do!). Don’t you know what to ask? Here are some Questions to ask your interviewer.
During the interview
As soon as the interviewer tells you about the problem you have to solve, you put your head down and try to solve it… STOP! What did you do wrong?
You missed three things before starting to code:
- Repeat the question/problem to the interviewer to ensure both are on the same page.
- Ask questions! (it won’t hurt you). Instead of assuming how your inputs/outputs will be, you can ask. Also, if your code has some side effects and you want to clarify it to the interviewer, it’s ok.
- If the question/problem you need to solve is still too vague, maybe it’s time to create a quick example to ask the interviewer if you have the right idea.
Here is a set of advice specifically for coding interviews:
- Algorithms are a niche case. It is crucial to remember that most interviewers will only expect you to place them on the bat. Source.
- Here is a list of the main algorithms you should know with references to review/practice:
- Explain a high-level approach, even if it is a brute-force one. Seriously, don’t try to get the solution working and be efficient in the same attempt. You will have time, in the end, to enhance it and make it more efficient. You can even leave it as is and discuss possible improvements you could make to make it more efficient, scalable, or reusable. Source.
- Point out when you’re cutting corners. It should be evident that you do this intentionally to simplify the scenario or because you are in a fictitious situation.
- Discuss the time and space complexity of your approach. The old Big O!. Source 1.
- No one expects you to be the next Turing, but you should be able to justify your choice between different data structures. Source 2, Source 3.
- Talking about data structures, here is a list of the most important ones, with references to review/practice with them:
- Test your code! Remember that coding test cases is an essential part of your skills as a developer and, most of the time is the way to show your code works! Source.
The help of a mentor
A mentor or coach who has undergone technical interview processes can offer practical advice specific to your needs and goals. They help you identify areas where you may need to improve or focus during your preparation and guide you in addressing different questions and challenges.
But most importantly, a mentor or coach can help you build confidence and stay motivated. Technical interviews can be stressful, and it’s easy to feel discouraged if you’re not seeing the progress you want. A mentor or coach can offer encouragement and support to help you stay focused and keep working towards your goals.
Ultimately, the best way to prepare for a technical interview is to practice, practice, and then practice some more. This means working through sample questions and problems and seeking out opportunities to apply your skills and knowledge in real-world situations. A mentor or coach can help you identify the most effective ways to practice and give you feedback on your progress.
So, don’t rely on cheat sheets and online resources when preparing for a technical interview. Find a mentor or coach who can offer targeted advice and support to help you succeed. Good luck! With the proper preparation and support, you’ll be well on your way to acing your technical interview.