Technical interviews offer potential employers a way to see how you think on your feet, and to make sure that your skills stack up against your resume. But if you’ve never had a technical interview before, we know just how nerve racking it can be — especially when it’s the last stage in your journey to landing the job you’ve dreamed of.
“Technical interviews can be stressful, but the skills you need to pass them are ones that you'll use throughout your career,” Alisha tells us. Our objective is to help set you up for success — both in your interview and in your career as a software developer.
What is a technical interview?
Before we share tips on how to prepare for a technical interview, we thought we’d share a quick rundown of what a technical interview is in the first place. The technical interview is one component of the overall interview process, which can include a combination of phone screens, in-person interviews, take-home or in-person assignments and more.
While every company is different, the technical interview usually involves a question where you'll be asked to implement a specific function or program. The interviewer will usually explain the problem, let you ask questions about intended behavior, and then it's up to you to implement a solution! Some interviews will happen with real code in a code editor, and some will have you write code out by hand on a whiteboard.
Your technical interview may include anything from debugging existing code, building a small project, adding a feature to an existing code base, or talking about the design and architecture for a technical problem. If you can, ask your main contact at the company if they can provide information about what to expect before you head in for an interview.
Technical interview preparation tips
“The best way to prep for a technical interview is to practice,” says Ian. “Try solving practice technical interview questions and problems, studying up on your language of choice, or even practicing in person with a friend.”
Simply spending time building your own projects is also a great way to prepare for technical interviews. Working on personal projects gives you the opportunity to think through your approach and problem-solve on your own — the very skills that technical interviews are designed to test.Know your language
Most technical interviewers will let you complete your in-person or remove technical interview in the language of your choosing. If you’ve landed a technical interview, chances are that you already know at least one programming language really well at this point, so stick with the language you’re most comfortable with!
“You might need to know how a particular built-in method works in order to analyze the runtime complexity of your answer, or you might be able to use a novel language feature to make your solution more optimized or more idiomatic and readable,” Ian says. “Knowing your language like the back of your hand will help you concentrate on the problem itself rather than thinking about syntax.”
Alisha and Ian stress the importance of asking questions during your technical interview. “Ask any question that comes to your mind! It's much easier to get rid of any ambiguity before you start coding than when you're halfway through implementing a solution that might be built on false assumptions!”
Clarify the problem up front and gather as much information as you need to execute on it effectively. Here are some things to consider asking:
- Ask about any edge cases.
- Make sure you understand how the program should behave given certain inputs.
- Ask whether you need to build in error handling.
- Repeat the problem back to the interviewer so they can set you on the right track if you got anything wrong.
Think about your approach
Just as asking questions is important to ensure you completely understand the task at hand, taking time to think about your approach is important. “In a technical interview,” says Ian, “one of the biggest pitfalls is to jump in and start coding right away.”
“At the beginning of your technical interview session, take the time to think through different approaches to the problem. Talk through those approaches out loud. Don't worry about saying things that seem obvious or unimportant — it could be that you missed an edge case, and talking through the problem out loud will help you catch it!”
Get to a solution, then optimize
“The most important thing in an interview is to show the interviewer that you can think through a problem,” says Ian. “Work to get there first, and then go back and clean up your code. It can be very tempting to jump to fancy techniques, but many if not most interview problems can be solved using basic language features. Sometimes the best way to start out is with the humble `for` loop!”
“After you've got a basic working solution, now it's time to handle edge cases and optimizations. Chances are, your interviewer will appreciate that you first got something that worked and then continued to spruce it up. As you optimize, talk about what you're doing and how it improves your program. If you know how to analyze the Big O runtime of your solutions and figure out ways to improve it, now's the time to show that off.”Talk, talk, talk
Last but not least, Ian and Alisha recommend talking — a lot. “The more you can talk, the more your interviewer will understand your thinking.” Understanding how you think and how you approach problems is, in large part, why the technical interview exists. So talking through your process is big.
“If you get stuck while solving a problem, don't clam up. Talk through your issue. The more you can talk, the more your interviewer will understand your thinking, and hearing yourself out loud may even cause you to reconsider your approach.” As an added benefit of talking, some interviewers will offer tips or a helping hand along the way — and many will be more willing to do this if you're already having a lively dialogue.
We know that talking out loud while coding is not the most natural thing for many programmers. If it feels awkward or uncomfortable to you, that’s totally normal. Try practicing with a friend to get more comfortable with it.
We hope the course helps you learn a new way of thinking that’ll set you up to land the job you’ve been dreaming of!
This post written by Codecademy Team was originally published on 18/06/2020 at news.codecademy.com.