Tags | employability-sprint |
There are many general-purpose guides available on how to prepare for software engineering interviews. This is one of our favourites: Interviewguide.dev
Often, you’ll need to first pass technical tests at home before even getting into the room with a human recruiter. Code tests are a quick and easy (and highly automated) way to assess whether you have the basic skills needed to land the interview. Normally they don’t expect juniors to get 100%, but they do want to get a better understanding of your skills.
Practice makes perfect and there are many sites that allow you to practice your coding skills.
Focus on your general problem-solving skills. These links are great for this:
Technical interviews are notoriously biassed towards questions on algorithms and data structures, for which you can and should prepare well.
Practising a wide variety of problems on the platforms mentioned above should power you up to tackle anything the technical test throws at you. You can never know exactly what they’ll test you on, so instead of trying to “hack the test”, practise a variety of different problem types on various platforms. If the first few interviews don’t go well, you’ll at least gather valuable data on where to lean in more.
One place where a lot of people go wrong in these tests is poor use of time. Below is a basic procedure to try out. Of course, everyone is different and you might want try a different approach, but this one has worked for many people:
The first thing to do is read through all the questions. Get a basic idea of what you are dealing with. Your subconscious brain will then start working on the problems in the background.
Choose something that looks doable to start off with to get your brain warmed up. Double check your understanding of the question.
Make sure you RTFQ! It’s very important that you don’t jump to conclusions.
Most problems can be broken down into smaller problems. Do your best to decompose the test question and work through all its parts one at a time. Be consistent and keep your logic clear. The intention of your code must be clear at all times.
If you get stuck, don’t immediately give up and move on. And don’t just bash your head against the problem until you run out of time. Check how much time you have left, and set a time limit for yourself. Somewhere between two and five minutes is generally good.
Bash your head against the problem and focus as hard as you can on this one problem for those two-five minutes. If you make a breakthrough, continue working. If you are still completely stuck at the end of your two-five minutes, move onto another question. You can come back to this question once you have attempted others.
Multitasking slows you down and splits your focus. Seriously, don’t try to think about two problems at the same time. Focus on one thing, and then continue.
Go and read over all your answers:
Tests can be scary, we get it. But panic isn’t useful. If you are feeling overwhelmed, stop what you are doing, take a deep breath, and intentionally slow down.
Yes, slow down. By slowing your movements, you actually calm yourself.
Focus your mind only on the one problem that is right in front of you. It might be a single question, or even a single part of the question.
Sometimes when people panic, they start to jump from question to question. This isn’t useful. Use the time-boxing technique mentioned above to stop yourself from doing that and to help you focus. For two-five minutes, you only have one problem to think about. Do your best on that one problem.
One thing worth knowing is that if you do well at your work you will probably get promoted to a position where there is a lot of pressure. Anxiety is part of the job! Anxiety is also very normal so there is a lot of wisdom out there that you can tap into.
For more information about anxiety please read this TOPIC: Dealing with anxiety (for coders)
Lots of companies only do these after you’ve done “well enough” on an automated test, but some prefer to do these earlier in the process. Either way, the preparation discussed in the section on automated technical tests should power you up quite well for these as well.
In this section, we’ll explore some of the softer skills and live-interview techniques that will make a difference during in-person technical interviews.
This is a very important part as it is a visual representation of the skills that a learner/junior has.
Most companies ask, for example, for a link to the candidate’s repo to see their work.
These are questions that are specific to the role that you’re going to be filling. It helps interviewers see if you know what the job involves and if you can fulfil the role.
You can prepare for this by:
If you get interviewed and you get asked a question that you don’t know the answer to, admit that you are unsure. Don’t ever, ever pretend to know something you don’t.
First, read this: HackerNoon Whiteboarding Advice
Any interaction you have with a human at the employing organisation will feed into a “culture fit” assessment, but sometimes employers will set up time with senior staff specifically to assess “culture fit”. Cultural fit is the likelihood that you will be able to conform and adapt to the core values and collective behaviours that make up the organisation where you are applying for a job opportunity..
Your biggest weapons in these sessions are preparation and empathy. The better you understand the context of the organisation and the person sitting across from you, the better equipped you are to align what you can offer with what they are looking for ––whether from a skills standpoint or in terms of values alignment.
These articles give great overviews of how to engage well at every step of the process, as well as how to prepare for the relational/people-focused side of the interview process:
Remember that you can also ask people in your network for support on this. Friends, mentors, or even just kind acquaintances in the industry can often be a powerful resource in your preparations. As we mentioned earlier in the course, people generally do want to help. Sometimes you just need to ask!
“I’ve never found anybody that didn’t want to help me if I asked them for help.” Steve Jobs (This two minute video might just change your life!)