If you’re looking to break into data analytics or switch to a data role that lists SQL or Python as a required skill, there’s a good chance you’ll be asked to showcase your skills in a live coding interview.
Coding while someone is watching can often be intimidating and anxiety-inducing, even for seasoned pros. Therefore, it’s absolutely essential to be prepared, both from a technical perspective and a mental one.
I’ve been through quite a few of these interviews myself (with soaring successes and brutal failures), so I decided to compile my advice for the process, starting before you apply for a role.
Before You Apply...
Master the Basics.
If you’re 50/50 on something at home, odds are this is closer to 0 in a situation where you are timed and someone is watching.
Practice, practice, practice!
Because Practice makes perfect.
Look for practice problems online to test your fundamentals. Leetcode, SQLZoo, and many other sites and blogs can be found with a quick search.
Find real-world data sets in the Maven Data Playground or elsewhere with multiple tables. In some cases, you can find case studies, but you can always draw up your own list of questions to answer with the tool you’ll be interviewing with.
Once you start solving most practice problems, start practicing with strict time limits to replicate the interview experience and improve your efficiency
If you have a friend or classmate who is comfortable with the tool, do mock interviews with them.
If you get invited to interview...
Research the company.
How will the tool be used in the role? What types of data might be common at this company? This can help better focus your practice.
Ask your recruiter if they can provide any example questions or a list of topics the interview might cover. You won’t always get additional information, but it never hurts to ask!
You can often find coding questions a company has asked online, on glassdoor.com, or elsewhere. While this may seem like cheating, it’s unlikely you’ll get asked the exact same questions, but you WILL get a much better sense of the exact concepts you need to master for the interview.
The day before...
Don’t cram!
While I still suggest an hour or so of focused practice the day before the interview to stay sharp, it’s unlikely you will significantly improve your skills.
Trying to make big improvements or cover new concepts the night before will cut into the time you could be using for general interview prep like preparing your questions for the interviewer or doing additional research on the company.
It may also make it hard to…
Get a good night’s sleep.
This is often easier said than done, but being well-rested will ensure you are mentally sharp and reduce anxiety.
The Morning of...
Limit your caffeine intake.
You will likely have plenty of nervous energy and excitement without caffeine.
I’m not going to tell you not to have your first cup of the day, but I do advise against drinking a triple-shot espresso drink on your way to the interview. You’ll want to be as calm, cool, and collected as you can be so you can focus on the task at hand.
Practice Positivity.
Listen to your favorite song, meditate, call a good friend, laugh, etc.
At this point, there is really no studying that will alter the course of your interview, but getting yourself in a positive mindset will reduce your anxiety and make you more fun to interview (this is more important than it sounds).
During the interview...
Make sure it’s a two-way conversation.
You will see this advice everywhere, and it’s true. But when your interviewer gives you an SQL question (or Python, or Excel), you are ABSOLUTELY expected to:
Ask clarifying questions about the data and metrics they want you to calculate. (e.g.: should this average include ALL sales or only those where customers are in Table A?).
State your assumptions. Not only does this help interviewers understand your thought process, but most interviewers will steer you in the right direction if your assumptions are off, which can prevent a train wreck.
If you get stuck, tell your interviewer. In many cases, they’ll give you a hint, they WANT to be asked. In others, at the very least, they’ll move you on to the next question, which gives you another opportunity to succeed.
Don’t sit there in silence! As someone who has been on both sides of this phenomenon. There is nothing more awkward than being or seeing a candidate struggling in silence. From an interviewer’s perspective, I WANT you to succeed. I want to know how you’re thinking and WHY you’re making the choices you made. Even if you’re perfectly answering the questions, I am going to be quite bored and possibly annoyed if you’re treating me like I’m invisible.
Try to make it fun. Tying back to the positivity – if you make a mistake or two in your interview but were having fun and engaged with your interviewer, they will be a lot more likely to recommend you than if you were a nervous wreck or froze them out, even if your code was the same in both scenarios. Rather than treating interview questions like a life-or-death question from a scary teacher, treating interview questions like an opportunity to solve an interesting puzzle with someone else who likes puzzles has helped me shift my mindset and improved my success rate dramatically.
After the interview...
Thank your interviewer promptly with a follow-up email.
Practice some self-care! Regardless of how you feel about your performance, interview prep and interviewing are draining. Exercise, treat yourself to a nice meal, take a bubble bath, or whatever makes you relax. There is no point dwelling on your performance while you wait to hear back.
Reflect on the process. Whether or not you passed the interview, take a moment to reflect on how the interview went, which concepts you missed, and whether you built a good relationship with your interviewer. These notes will help you next time.
Wrapping Up
Just to give you a sense of how these can go: I’ve been the interviewee in about 20 coding interviews, and the interviewer in more. In some cases, I passed with flying colors, but I’ve also failed plenty.
In one case I performed so poorly that I was asked to leave the interview early. This was largely due to a company masking a senior software engineering role as an entry-level data scientist role. I laugh about it now, but it was painful and embarrassing at the time. And yet, I didn’t have to leave the country and move into a new career field. I just applied for a job that was a better fit!
I’ve also failed an interview where I answered every question perfectly, but I wasn’t recommended because I silently solved problems without talking to the interviewer outside of a single clarifying question. You won’t be the only person interviewing for a job that is good at a specific tool. You need to demonstrate who you are and why you’d be a good colleague, too.
Some of my best interviews have been for roles I was only interviewing for practice or because I was contacted by a recruiter. Because the stakes felt low, my anxiety was low, I had fun, and let my personality and skills shine without being self-conscious the entire time.
Keep these things in mind, and you’ll do fine:
Interviewing is often arbitrary.
Remember that humans are part of this process, and sometimes you just caught the interviewer when they were in a bad mood, distracted by their own deadline, whatever. Sometimes you are interviewing for a role that has already been given to another person. You may have applied later than them, or they may be an internal employee transferring, but legally the need to interview other qualified applicants. Whatever the reason you didn’t get the role…
You CAN’T take failure personally.
You are not your interview results; even if you performed poorly, you can learn valuable lessons from each interview that will help you succeed the next time. You can improve your technical and interview skills with practice. Consider bad interviews as practice. Getting caught in an anxiety loop and questioning your self-worth about a bad interview will lead you to another anxious interview, and another, and so on.
I believe in you.
I’ve never seen someone with a mastery of their tools and a bit of interview coaching fail to get a role as an analyst. They might not get the first role they apply to, or the 4th, but continued practice and persistence will win in the end.
I hope you've found this guide helpful. Best of luck!
BLACK FRIDAY CAME EARLY!
Save up to 50% on Maven Pro plans today!
This week, we're offering up major discounts on individual subscriptions at Maven Analytics. Don't wait -- this offer ends soon!
Chris Bruehl
Lead Python Instructor & Growth Engineer
Chris is a Python expert, certified Statistical Business Analyst, and seasoned Data Scientist, having held senior-level roles at large insurance firms and financial service companies. He earned a Masters in Analytics at NC State's Institute for Advanced Analytics, where he founded the IAA Python Programming club.