Hey, there! Welcome to another episode of the VanHack Podcast! It’s Aline here, from VanHack Premium, where I am responsible for the Technical Interview Practice, and I’ll be your host today.
So, let’s start a new series here, which I just decided I’ll call “Interview Hack”, and in this first episode let’s talk about Technical Interview preparation, specifically Coding Interviews. We all know how intimidating it can be, right? I’ve been there, I’ve walked in your developer’s shoes, I get it! None of us like to code while there’s someone watching us, that’s definitely not comfortable at all! Right?
But, if you’re looking for a job abroad, especially through VanHack, I really hope you get to that stage, and I am here to help you handle that situation when the time comes. You know, my job is to help you to get your own job, and I really want you to succeed! So today I have 6 tips to share with you.
Let’s get this started. Shall we?
1. Be prepared for a QUICK CHAT before diving into code!
Most interviewers will want to know a bit more about you when it comes to subjects such as ownership, communication, and metacognition about coding. Ask yourself and prepare your stories with solid examples of real life situations you have gone through, and show how proud you are of those achievements:
- Do you think about code quality and performance?
- Do you fix things that aren’t quite right, even if you don’t have to?
- Are you able to keep a posture focused on solutions when chatting about a technical problem? How does it feel like to discuss it with you?
2. Communication is THE key!
A candidate who can communicate clearly, even if some help is needed along the way, may score more points than a candidate who just jumps into the code and forgets to interact, even if the solution works. But, you may ask yourself: “How am I supposed to code AND speak at the same time? Multitasking is so challenging!”. Well, then before jumping into the code, make sure you clarify your questions, and here are some resources you may use:
- Make the interviewer feel like you’re on a team with them, because this is what they are looking for: are you a collaborative professional? How does it look like to work with you? How do you discuss a problem and walk through a solution? Plus, when saying what can be done, include the interviewer in your speech, for example, instead of saying “If I use binary search..” you may actually say “If WE use binary search…” and so on.
- Think out loud! Seriously, you don’t want to remain in silence, it’s not comfortable and not helpful at all. Even if you’re not sure about an approach, even if you get stuck, just speak with your interviewer! You may say things like “Well, let’s try doing it this way…” or “Hmmm.. I know that I can use regex to optimize this search, I’m just not so sure of which pattern to use…” – you’ll still get credit for it.
- It’s okay to say that you don’t know! Yup, that’s right! It’s better to say “I’m not sure, but I’d guess…” and complete by referencing a similar technology that you actually have the experience of, or even be 100% candid and say “I am not sure about this subject, but would you mind giving me a brief explanation?”, instead of pretending that you know it and end up rambling around.
- Slow down! It’s not a race, so why rush? Focus on the question, take your time to understand it and to provide an answer. Also, avoid speeding up speaking or jumping into conclusions before your interviewer finishes their sentences. I know we get super excited when speaking about things we love, but it’s not polite to interrupt people, and that will not help you, unfortunately.
3. The truth is: Sometimes you’ll get stuck
Either because you’re nervous, or because you’re not sure which path to go, but it doesn’t mean that you have failed. Your interviewer is more interested in your ability of exploring different ways to solve problems, than your ability of delivering the perfect solution right away. So what should you do when you’re not sure of what to do?
- Let your artistic side glow, just draw pictures! Bring to the whiteboard a couple different test inputs, and draw by hand how you would go from there to the desired output, and then try translating it into code;
- Start from a simpler version of the problem. Breakdown the problem in smaller parts, and work on them one by one, starting from the easiest one.
- It’s okay to use brute force at first, and optimize later! Remember: it’s not about delivering the perfect code, but more how you analyze the problem and think of different ways to solve it. Once you make it work, review it and spot possibilities of improvements.
- Keep thinking out loud. Yes, again! And again, and again. Tell what you know that can work and why it’s the best option; tell what you believe could work, and why you’re not sure about it – and maybe you’ll realize that a modified version would actually work. So, yeah, just keep the communication flowing.
- Focus on your solution, but also pay attention to the interviewer! Yes, look at them while you take a second to think. If they have any hint to give you, either positive or negative, that’s when it’s going to happen.
- Discuss performance! Think about the bounds on space and runtime, and mention it while analyzing what you can optimize. This posture may grant you some points at the interview.
4. Focus on getting your thoughts first, then worry about details at the end
Yes, that’s correct!
- Call a helper function and keep moving. Don’t waste your time with that part of the algorithm that you can’t think immediately how to implement. Say what you believe should be done, skip it, and down the road you’ll probably find out either a way to implement it, or that it was actually not necessary.
- Don’t worry about syntax. Even convert to the English Language if you need to, and say you’ll get back to it later.
- Leave yourself plenty of room. If you’re using a Whiteboard, leave room for further comments or code in between your rows. If you’re using an IDE, you can always go back to any row and add whatever is needed.
- Check minor details in your algorithm at the end. Just leave a checkmark to remind you to get back there, and keep your code flowing.
- Use descriptive variable names. This may take time, but it will prevent you from losing track of what your code is doing, especially on a Whiteboard, and it will also help your interviewer to keep track of your logic.
5. Review your code and clean up when you’re done
But be careful to not get your interviewer bored, in case they don’t mind going through this stage. Just say something like “I usually check the code against some edge cases, so should we do that next?”. In case your interviewer agrees, then proceed with a few steps:
- Walk through your solution by hand, out loud, with an example input. If you’re using a Whiteboard, write down the path your code should follow. write down the expected output. This step will help you spot any issues your interviewer might have seen already, and is waiting to see if you have the ability to spot it and fix it as well.
- Go back to those details you may have skipped. This is the time to fix any syntax you left behind, and make the code actually work.
- Test edge cases. You may include empty sets, negative numbers, and also mention unit tests – which is definitely a bonus!
6. Last but not least: Practice!
At the end of the day, there’s no other way to improve yourself better than practicing. Even use paper and pen to actually write code, which will feel awkward in the beginning, but will definitely help you overcome that when it’s time for a real interview.
Alright, now that you know the first steps to handle a Coding Interview, let me tell you a secret: this subject was discussed in our last Premium Open House Experience, with a live coding practice at the end of our session. The Open House Experience is a monthly event where all VanHackers are welcome to attend one day of Interview Practice, and get a taste of what it feels like to be a Premium Member.
So if you enjoyed this episode, you definitely don’t wanna miss the next Open House Experience, happening on September 24th at 04:00 and 8:00 am (Pacific time). Just go to the Events section at Vanhack, apply, and you’ll get the link to join when that day comes. But, if you’re listening to this episode in the future instead, don’t worry, there’s a new Open House event happening every month, so go check the Events section out and make sure you apply for the next upcoming event available there.
Thank you so much for staying with me ‘till the end of this episode, and I hope you enjoy this new series of “Interview Hack”. I am Aline from VanHack Premium, and I’ll talk to you next time here at the VanHack Podcast. Cheers!