Technical interviews are often a traumatic experience. The questions are difficult, the setting is unnatural, and sometimes you might be given an inexperienced or ineffective interviewer.
While I can't alter the technical interview process as a whole, I can provide you with some tips to help you during your next interview.
Here are five tips for acing your technical interview.
1. Think Out Loud
I'm going to let you in on a secret: your interviewer can't read your mind. What?! You must be joking!
In fact, I am not.
One of the biggest mistakes candidates make during a technical interview is to keep their thought process in their mind.
Instead of thinking through the problem in your own head, tell the interviewer what you're thinking! Perhaps there's a solution in your head that almost works but there is one piece that breaks it. If you say this out loud, your interviewer might ask you a question that turns on the lightbulb and helps you find the solution. Or perhaps they'll even give you a hint.
Speak what is in your mind.
A technical interview is a conversation. Work with your interviewer to find the solution. They most likely want to help you succeed, so let them help you.
2. Ask Clarifying Questions
In relation to tip one, if you're uncertain about a piece of the question, ASK!
Technical interview questions are designed to be vague, because the company wants to see your ability to recognise the holes and ask for clarification.
You will never seem incompetent by asking for clarification, instead it will show your thought process and ability to problem solve.
3. Don't Be Afraid To Admit You Don't Know
If you've gone through a potential solution multiple times, explained your thought process to your interviewer and asked clarifying questions, yet you still don't know where to go, be honest.
There is no shame in admitting you don't know the answer. In fact, it's better to admit you don't know than to pretend you do and make up a fake answer.
This method is good for straight-forward questions such as "What is the Big-O runtime of this algorithm" or "define a promise". If you don't know, you don't know, and your interviewer should appreciate your honesty.
4. Optimise Your Solution
If you're tasked with developing an algorithm for a problem but can't think of an optimal solution, start with the brute force solution.
Perhaps you're asked to order a list of integers from smallest to largest, but the only solution you can think of is to test every integer against every other integer and swap if they're out of order.
Writing the brute force solution is better than writing no solution; start with the nested for-loop. O(n^2) is better than no O.
Once you have the brute force solution, talk through it. Where can you improve your solution?
Maybe instead of comparing an element against every other element, you can divide the list into smaller and smaller increments to decrease the size of the problem. And perhaps this process will lead you to remembering the merge sort solution.
Solve then optimise.
5. Test Your Solution
Once you have an optimised solution it's time to test. Think about the edge cases which might break your solution and walk through your code. Does it behave as you intended? If not, it's time to refactor.
Not testing solutions is one of the biggest mistakes a candidate can make. Testing is important when writing production-ready code. If we test before pushing to production we definitely should test during a technical interview.
By keeping these five tips in mind during your next interview, you're bound to do great! Study your material, preferably not the night before if you have the opportunity, and then relax, be yourself, and kick some technical interview ass.