The Ultimate Guide to Acing Coding Interviews for Data ScientistsFeb 08, 2023
Coding interviews are becoming more and more part of the data science interview loop. You now need to know more than just SQL to land a data science job, especially for certain positions.
This increase in computer science in data science interviews can be daunting, but that’s why this post exists! Here we are going to walk through everything you need to know about coding interviews for data scientists.
Why Coding Questions?
A coding interview is any technical session that requires coding in any programming language other than a query language such as SQL.
Coding interviews have become an essential part of data science for 3 main reasons:
- Data science is a technical subject that requires technical skills so basic programming proficiency is a must.
- Data scientists often have to work with engineers and others who use computer science.
- Data scientists may have to create production code which requires strong coding skills.
This is why if you want a job as a data scientist you should be prepared to show that you have coding skills.
What Roles Are Likely to Have Coding Interviews?
That being said, some data science positions are more likely to have extensive coding interviews. The following roles are some examples of where you should expect coding interviews:
- Data scientist roles with a heavy machine learning (ML) or modeling emphasis.
- Companies in which data scientists are part of an engineering organization.
- Data scientist roles at small to medium-sized tech companies.
In contrast, if you are interviewing for a product analytics position your chances of encountering a coding interview are smaller but it is still good to be prepared because general programming skills may still be tested.
When Does the Coding Interview Happen?
Coding interviews can occur during the technical phone screen or the on-site interview.
On the technical phone screen, the coding interview will be through an online integrated development environment (IDE) like CoderPad, HackerRank, and CodeSignal. During the on-site, it could be on a whiteboard or an IDE.
Coding interviews usually last from 45 minutes to an hour. The choice of coding languages is typically flexible.
Categories of Coding Questions
Breaking down coding questions into categories will help you to systemize your preparation. These 4 categories cover the type of questions you are likely to encounter in a coding interview.
Basic Data Structures
These questions are about computer science fundamentals. It can include topics like:
- Data Structures: Arrays, Hashmaps/Dictionary, Heaps, Sets, Stack/Queues, Strings, and Tree/Binary Tree
- Algorithms: Binary Search, Recursion, Sorting, and Dynamic Programming
This is usually presented as a single scenario with multiple questions asked about it. It could also be an applied business problem where the candidate is asked questions to solve a hypothetical business scenario.
Mathematics and Statistics
For these questions, you will need an undergraduate-level understanding of mathematics and statistics along with coding skills. Concepts in these questions include:
- Simulation: Monte Carlo simulations, weighted sampling, simulating Markov chains, etc.
- Prime Numbers / Divisibility: Calculations involving divisibility of natural numbers, Euclidean algorithm for computing the greatest common divisor of two natural numbers, etc.
Machine Learning Algorithms
This type of question requires you to code a basic ML algorithm from scratch. To answer these questions you will need to be familiar with common families of machine learning models such as:
- Supervised Learning: Decision Tree, Linear Regression, Logistic Regression (using stochastic gradient descent), and K-nearest Neighbors
- Unsupervised Learning: K-means Clustering (see this video for a step-by-step walkthrough)
This is less common than the other types of questions. You will be asked to process and transform data without using SQL or pandas. Example questions include
- Representing two datasets as dictionaries, and joining them together on some given key values.
- Calculating a 30-day rolling profit.
- Parsing event logs and returning the count of unique strings by day/month/year.
Preparing for Coding Interviews
That may seem like a lot to cover, but don’t worry! Here are some steps you can use to be prepared.
Brush up on the basics.
You always want to make sure you have the basics down. The following resources can help you do that for the different categories of questions:
- Data Structures: Cracking the Coding Interview and The Best Python Books
- Machine Learning: Introducing the Facebook Field Guide to Machine Learning Video Series and The Elements of Statistical Learning
- Mathematics and Statistics: brilliant.org
Look over commonly encountered problems and create an organized database for easy review. You can find problems on Leetcode, GeeksForGeeks, and GlassDoor.
Compare multiple solutions.
Develop multiple solutions to the same problem and compare them to ensure a comprehensive understanding.
Explain to others.
Try explaining solutions to a non-technical person.
Do mock interviews.
You can either do these with someone else or use an online coding platform to practice.
Being prepared is the first step to success. These steps can help you gain the knowledge and confidence for your next coding interview.
What Are Interviewers Looking For?
There are 4 things you want to show during a coding interview:
- Logical Reasoning - Are you logical in your approach?
- Communication - Can you explain your ideas clearly?
- Code Quality and Best Practices - Can you produce quality code?
- Proficiency - Can you do things within a time limit?
Tips for Acing Coding Interviews
Nothing of the basics of coding interviews and how to prepare here are some tips for knocking these interviews out of the park organized by stages.
Before the Interview:
- Always ask your recruiter what to expect. Knowing what to prepare for is half the battle.
- Clarify the questions and its underlying assumptions.
- Explain your overall approach to the interviewer.
- Begin with a brute-force solution and optimize it later.
- Think out loud.
- Proposed several normal cases and edge cases if test cases are not provided.
- Explain your solution out loud with an example input.
Coding interviews can be daunting, but with the right preparation, you can ace them!
Remember that the time you spend in preparation will never be wasted. Improving your coding skills will not only help you land a job but will also help you excel in that job once you get it.
If you want to check out an even more detailed version of this post, click here.