Having knowledge and demonstrating this knowledge in a job interview are two completely different things. Even experienced professionals often feel confused at job interviews and cannot show their best qualities.
This problem is even more acute for newcomers because the first interview for a programming job is a huge source of stress. During a job interview, even basic questions can cause a candidate to stutter.
It is impossible to completely take away the anxiety, but preparing for a job interview can reduce it. In this lesson, we are going to discuss how to prepare for the interview in the best possible way.
Before you start a job search, think about what your priorities are for your next role. There aren’t any right or wrong answers here; it’s about what will make you feel happy and fulfilled personally.
The priorities of different people can differ considerably from one another. To determine your personal preferences, try to ask yourself such questions and answer them:
It is important to recollect these priorities before attending an interview. They will help you think through the qualifying questions you can ask the interviewer.
Prepare or refresh a list of your latest and greatest achievements, strengths and interesting projects. For example, you won some hackathon or passed some challenging training, and contributed to some open source projects. If you have managed to do so, you should add a few sentences about that in your resume.
To make achievements look advantageous, they need to be clearly presented and described. The STAR method will help with that. It is one of the best practices in an interview when discussing a specific case. It consists of four parts:
Let’s take a look at this example. There is a case, described with the help of STAR framework:
The most common mistake at a job interview is that people come in unprepared. Let's imagine a candidate who put a bunch of different languages and frameworks on his resume:
Such a candidate presented a CV with a huge stack but didn’t refresh his knowledge on that. It’s risky because the interviewer can ask a question related to these technologies, and the candidate can't answer it.
To prevent this, take your time in the preparation and familiarize yourself with the latest updates of your language or framework. It's also important to refresh your fundamental programming knowledge, which we'll talk about in more detail below.
Most of the candidates are good at using programming for their daily-life research problems. But when it comes to a coding interview, one needs to brush up on the basics of different data structures. It’s crucial because most of the problems revolve around selecting the right data structure for the given problem.
Here is a list of essential data structures important for a coding interview:
To refresh your knowledge of these topics, you can take a look at some top coding interview questions on popular resources like LeetCode or HackerRank.
Algorithms are a big part of coding interviews. Whether you’re interviewing at Microsoft or Amazon, you’ll surely be asked some questions to test your knowledge of algorithms and their optimization.
Let's quickly take a look at some common algorithms that you’ll need to know for a software development interview:
So check out all these algorithms and common tasks on them. It would be great if you solve ~ 10-15 problems for each of these algorithms.
If you are a mid or senior-level candidate, you may expect system design questions as part of your technical interview. The objective of system design interviews is to evaluate a candidate's skill at designing real-world software systems involving multiple components.
Understanding and mastering system design questions are crucial in practice before software engineering interviews. If you’re not properly prepared for these questions and concepts in your interview, you'll miss out on the opportunities of expanding your career with a better-paying position, or even with a great company.
During the preparation phase, it is important to think about how you will present yourself to the recruiter. Let's consider a few tips that help show you more positively:
For most people, the reason they're finding a new job is to increase their salary, and salary negotiation is the last stretch in achieving that goal.
In most cases, there's room for negotiation on your offer and recruiters expect candidates to negotiate. The initial offer that you are given is never the best package that the company can offer. In most cases, you could always negotiate for more money, and some aspects of your salary are easier to negotiate than others.
With multiple offers in hand, you will be able to negotiate a better offer from every company.
Rejections are going to happen. That is expected, and it’s okay! Do not take it personally. Try not to over-analyze rejections. Take whatever feedback you get and decide whether you can use it to perform better in your next interview.
At times, the job hunt can be rough on your mental health. Make sure to take care of both your physical and mental self. Lean on friends, family, or mentors for support. Not every company or role will be the right fit for you, and that’s okay.
To summarize new knowledge from the lesson, let's revisit the most important insights for preparation:
The Hexlet support team or other students will answer you.
Programming courses for beginners and experienced developers. Start training for free
Our graduates work in companies:
From zero to a developer. Refunds in case you won't get a job
Sign up or sign in
Ask questions if you want to discuss a theory or an exercise. Hexlet Support Team and experienced community members can help find answers and solve a problem.