There’s a lot that goes into preparing for a programming interview. Technical interview preparation is more than thinking up clever answers to “what is your greatest weakness,” after all!
Learning how to prepare for technical interview questions may require a bit of a time investment, but it’s well worth it.
How to prepare for a technical interview
Some elements of coding interview preparation should ideally start well before you even land the interview. Other job interview preparation steps can be accomplished closer to the day itself.
So, here are some of the most important coding interview preparation tips to master in the days, weeks, or months leading up to your job applications and interviews:
1. Prepare a 30-second to 1-minute elevator pitch for the “tell me about yourself” question and examples/stories for other interview questions
It’s important that you go prepared to talk about non-coding topics like your employment history, career goals, past projects, etc. The technical interview could just be one part of many if you’re at a company with a long interview process, and you’ll probably have to answer some version of this question when you meet new interviewers. It’s a great time to demonstrate soft skills and passion.
It’s also a good idea to prepare some real-life examples and anecdotes/stories ahead of your interview. Doing this can help you prepare for pretty much any behavioral or situational interview question. This works because if you have some examples/stories ready to go, you can apply them to nearly any interview question — which is important because you can’t really prepare for every single software developer interview question you might come across.
So, for example:
- You could think of an accomplishment you’re super proud of. That one example could be applied to questions like “Describe a time you went above and beyond at work” or “What’s your proudest accomplishment?”
- You could have an example of a time you made a mistake at work. That one example could be applied to questions like “Tell me about a time you made a mistake at work” or “Give me an example of a time you overcame a challenge”
Other stories/examples to prepare include:
- When you worked as part of a team
- When you solved a difficult problem
- When you showed leadership
- What you’re passionate about and why
Think about how to adapt your anecdotes to fit common software developer interview questions you might face.
2. Before you go, study up on the most important CS fundamentals
Don’t stress yourself out like you’re cramming for an exam and trying to learn everything–but do dedicate extra preparation time to key technical interview skills.
For software engineer interview prep or really anything computer-science related, Start with these must-study topics:
- Data structures
- Big O Notation
- Sorting and search algorithms
- Hash tables
- Dynamic programming
Of course, depending on the exact position you’re applying for, there might be other topics you think you should brush up on during your coding interview practice. How to prepare for software developer interviews is obviously different from how to prepare for data science interviews.
3. Pick one programming language and know it really well
Companies usually let you choose the language you’re most comfortable with. But which language should you use? Go for the language you have the most practice with. Even if the company uses a different tech stack, choosing the language you know inside and out will often be the better option.
4. Do regular coding challenges/smart practice
During your coding interview preparation, it’s important to study the right way. Start early so you don’t have to cram. How early? It will depend on your level of experience, how many hours per day/week you can dedicate to studying, and how soon your interview is, but if possible, start preparing before you even have a tech interview scheduled. 4-8 weeks is a good amount of time to aim for.
According to this Redditor: “If you can dedicate 1 to 2 hours most nights, you can prepare for a FAANG coding interview in 2 weeks without being completely burned out. Another 2 weeks and you can be prepared for the onsite with more coding, system design, and behavior interviews.”
Aim to solve 2-3 coding interview practice questions per day. A great resource providing software developer interview questions is Interview Cake.
Practice coding by hand on a whiteboard or piece of paper (without the help of a code editor). Consider imposing a deadline on yourself to get accustomed to working under time pressure. The more realistic a scenario you can create, the more effective your coding interview preparation will be.
5. Understand tech fundamentals
In the majority of cases, technical interviewers aren’t going to grill you on obscure concepts or expect you to recite complex formulas from memory. “Most questions will not be based on gotcha-knowledge,” says Chris (Launch School). “Instead, the interview conversation will be probing your ability to deconstruct complex concepts and seeing if you can peel back the layers.”
For example, he continues, “An interviewer may ask ‘If you had a page that’s experiencing performance issues, how would you go about figuring out the bottleneck?’ This open-ended question is simultaneously assessing a candidate’s knowledge of fundamentals, and at the same time allowing the candidate to show off their depth of understanding. It’s these open-ended questions where interviewers can [identify] those who can work at a deeper engineering level. The only way to stand out is to understand the fundamental concepts that underpin the feature in question.”
6. Come to the interview with a relevant project to talk about
“A lot of people will advise job hunters to build a project and showcase that during the interview,” says Chris. “This is a great tactic because it allows the candidate to flip the conversation from being grilled to showcasing their ability.”
However, just like you should tailor your cover letter to the company you apply to, you should think about a highly relevant project to feature during your software engineer interview prep. “A good general rule would be to build projects that, at minimum, match the complexity of work for the job you’re applying,” advises Chris. “Prospective employers will then be able to see that you not only can but actually have done work at the level that they require.”
Don’t have a relevant project? Start building one the second you’ve sent out your job application!
“Smart candidates should target specific roles,” Chris continues. “Study the requirements of the role and the type of projects the role is expected to work on. Then map out a way to independently produce projects of approximately equal complexity. You’ll stand out if you bring that type of project to the interview.”
7. Learn to manage your time effectively
The more focused and efficient you can be during your tech interview preparation, the better you’ll do when you’re actually in the hot seat. Set a timer when practicing. Aim to finish a problem in about 30-45 minutes (including debugging at the end).
If you run into snags, think of ways you’d explain your hesitation and potential next-step ideas to the interviewer.
8. Do mock coding interviews
Having a technical interview cheat sheet, reading books like “Cracking the Coding Interview,” (from Amazon) and doing online coding challenges on sites like Interview Cake are all amazing, but if you want to take it even further, live coding interview preparation might be what you need to really get comfortable and polished.
“Pramp.com is an excellent place for getting realistic coding interview practice–and it’s free!” says CEO Refael. “While solving coding problems can help you improve your technical abilities, mock interviews with peers can also enhance your soft skills: the way you communicate, your body language, etc.”
Ultimately, interviewing is a skill, and your interview skills are sharpened with practice. Knowing how to prepare for coding interviews comes with time! “Practice, practice, practice,” says Chris (Launch School). “Your 20th interview will be dramatically different from your 1st, so try to get to the 20th in a practice setting and your first ‘real’ interview will actually be your 21st.”
9. Get a study buddy or find a coding mentor
Got a friend or peer with similar job goals? Recruit them to help! Study coding concepts and work through problems together. Take turns interviewing one another so you understand the perspective of the interviewer as well.
10. Have a process you can rely on to deconstruct questions
Technical interviews can get tough – you’re probably not going to be thrown softball questions the whole time.
However, by anticipating this and forming a system to “deconstruct” questions, navigating the hard ones becomes a lot easier. “If you don’t have a process, it’s not going to be possible to figure one out on the fly,” Chris explains. “Think about how to do this before the interview. For example, one that I recommend to people is PEDAC.”
11. Never turn down an opportunity to interview
This circles back around to the idea of practice! Even if a company isn’t your dream place to work, if they invite you for the tech interview stage, go. “Don’t turn down an opportunity to interview–the more coding interviews you complete, the stronger a candidate you’ll become,” says Refael (Pramp).
After all, best case scenario: you get a job. Worst case scenario: you’re one step closer to knowing how to ace a technical interview!
Common technical interview mistakes to avoid
Knowing what not to do can be just as important as knowing what to do, so let’s quickly cover a few common technical interview mistakes.
1. Not preparing enough
Seriously, there’s no such thing as too much coding interview preparation. “The good news is, most candidates don’t put in that time. So it doesn’t take much to really pull ahead of the pack,” says Parker (Interview Cake). “It’s such a bummer as an interviewer to watch a candidate really come up short and just think to yourself, ‘I can tell you’re smart–if you had just reviewed some of this stuff I’m sure you’d be able to get this.’”
2. Jumping into the code without taking a moment to think it through
You might be eager to start solving the problem, but take a few minutes to question your assumptions and make a game plan first! “Starting too quickly gets a lot of people into trouble when they could have taken a moment to prevent confusion down the road,” says Refael (Pramp). “Some of the most common mistakes candidates make are avoidable. Pause for a moment to think through the problem-solving process.”
3. Being too arrogant or opinionated
People would rather work with a humble person than an arrogant know-it-all. Especially for those with fewer years of experience, “it’s more important to come across as being malleable and eager to learn, so the employer can envision you in a variety of projects and roles,” says Chris of Launch School. “Even seemingly innocent statements like ‘I love X and don’t like Y’ may come across as ‘I’m limited in my ability to work in a certain way.’”
By considering your “soft” interview skills and choosing your words carefully, you can avoid these misunderstandings. As Chris advises, “A candidate should be tempered in their preference. For example: ‘I’ve been enjoying X lately, but also have experience with Y.’”
4. Not making conversation/chit-chat
Remember, your interviewers are human! It can be extremely valuable to find a point of connection. “An interview is not just about answering questions correctly, but also about a conversation,” says Chris. “Ask good questions. Laugh and make jokes at appropriate junctures. At the end of the interview, even if you missed a few questions, the overall feeling the interviewer has about you should be positive. If you know that you are not a great conversationalist, make sure to focus on improving this.”
Read the full blog at the link below!