There is no single and accurate test for knowledge, however, every organization must prepare its own process to vet and hire talents. The outcome: A series of rigorous, specialized, and challenging set of tests that evaluate your coding skills, communication skills, problem-solving abilities, and your personality in general; this process has come to be known as a Technical Interview.
Although this process( which entails both phone screening, online coding challenges, 1–1 coding interview) may seem challenging and scary, it's a lot easier when you know what to prepare for and how to go about it.
The interview is harder than the actual job!
What Is a Technical Interview?
It happens to be an assessment of candidates' abilities by taking them through a series of exam-like stages instead of a single and straightforward test. This involves one or all coding challenges, assignments, phone calls.
There is a common saying in software development that the interview is harder than the actual job. How far this saying has traveled goes to tell us how demanding some interview processes are.
The process is quite tasking and demanding for all levels of developers but happens to really affect the beginners due to:
- their lack of adequate preparation.
- their anxiety caused by a lack of experience.
- their inadequate problem-solving skills.
- their poor grasp of basic CS.
Now that we have gotten over the long definitions, let get to the fun part!
Over the last year, I have undergone a series of Technical Interviews, in both Local, International, and Outsourcing Platforms. Hence, I would be sharing my take on each stage I encountered, tips on scaling through each stage, things to avoid, things to take out from the process, and a general overview of it all.
Stages of the Interview Process
Yes! You have just received that mail from the recruiting team to inform you that your resume caught their attention and they would love to move ahead with you to the next stage: the Technical Interview stage. Thumbs Up!
At this point adrenaline shots within your body and you are filled with excitement and then when it subsides you come to face another reality, the fear of what to expect in this new stage. Well, welcome to the club!
Based on my experience these are the common stages the entire process takes:
- Phone Call.
- Assignment/Timed Coding Challenge.
- 1–1 Coding Challenge.
Phone Call Stage
This could take the shape of a phone call asking about your personality, a bit about your skill and expertise, experience, passion, and expectation.
The key thing to focus on here however is the ability to show our enthusiasm, passion for tech, communication skills, knowledge about the company, and work approach(do you love working in a team, open to remote).
The key takeaway from this stage is that at its end both parties would be better informed about each other, what the job entails, the skill set required, and experience levels.
Assignment/Timed Coding Challenge Stage
This stage could involve them sending a take-home assessment to be completed and submitted at a specific time or an invitation to a platform where a timed coding task would be assigned.
- Assignment(Take Home) — This usually occurs to test one's knowledge level and ascertain if the skill listed in a resume is actually valid and if one possesses the skills needed in the organization. A specific language or framework could be required. From my experience, the key things to be done here is to get a proper understanding of the questions before attempting to write a single line of code(to see the catch), use best practice to stand out(proper structure, DRY approach, clean code), code documentation (include a README.md file), writing of tests!
- Timed Coding Challenge — This usually occurs to test one’s CS fundamentals, ability to work under pressure(the timed environment on its own is pressure, lol). Before beginning, take time to understand the environment been used, the question’s edge cases, and what is required. On some occasions, a human interview may be at the other end to observe the process and make sure there are no irregularities.
1–1 Coding Challenge Stage
Here, we are expected to solve some challenges that may build on the previous stage or not at all. The interview may ask why certain choices were made in the previous stage, hence it's good practice to do all stages ourselves without external help!
A major mistake I have seen made by lots of developers is that they tend to not engage their interview adequately by not taking them through their thought process, asking questions for clarification. A friend of mine told me a story of his friend who was invited to a 30mins challenge and he spent more than half the time understanding the environment! He could simply have asked!
Speak boldly and precisely, ask questions about the task before even starting, engage and communicate with the interviewer throughout this stage as we walk them through how we intend to solve the challenge, be open to feedback.
Hence the key thing to focus on here is our collaborating skills, technical/coding skills, problem-solving skills. These are skills needed to be shown at this stage, keep that in mind!
- Do mock interviews.
- Practice algorithm challenges on sites like Hackerrank, Codewars, Codility, and their likes.
- Send out more applications so as to become more familiar with the process.
- Study up on most CS fundamentals.
- Study more on best practices in your domain.
- Pick a language and be an expert in it!
- Learn how to manage your time properly.
- Practice how to stay calm and also how to communicate effectively.
- Review your previous interviews(if any) and learn from them.
- Believe in your abilities.
Things to avoid
These are common mistakes I and some other developers made and which came back to haunt us:
- Not engaging the interviewer; they are humans too you know.
- Not preparing adequately.
- Not receiving feedback positively throughout the process.
- Not thinking through before actually attempting to write codes.
Off you go!
With these tips, you are in a good shape to ace that technical interview and move on to the next stage.
The world awaits you!