Interviews are scary. You sit across the table from someone who has the power to grant you income and measure of security. They hold your future in their hands. You have to make them like you, trust you, think you are smart (and believe you are capable of doing one of the country's fastest-growing jobs). There are fewer situations in life that induce greater anxiety. Luckily, there are some things you can do to make a data science interview a little gentler on you.
Preparing for the Interview
There are many wonderful things about data science. Its extreme breadth is not one of them. The title of "data scientist" means something different at every company. To some it means PhD statistician. To some it means proficiency in Excel. To some it means machine learning generalist. To some it means being handy with Spark and Hadoop. Read job postings carefully for specific skills, tools, and languages. A well-written posting will give you a lot of insight into what a company is looking for.
You have a limited amount of time to prepare. This is your budget, and you want to spend it so as to get the biggest bang for your buck. You have a few options:
- Best: If you have a gut feeling for what you need to prepare, go with that.
- Second best, but still awesome: If the recruiter has given you advice, follow that.
- Last resort: If you have no idea where to start, I recommend one of the following:
Pocket Plan (10 hours)
This is only enough time to dust off things you already know. Compare your current level of comfort to the job posting. Are there some skills you haven’t used in five years? Some terms you don’t recognize? Where are your biggest gaps? Spend more of your time on these.
Here’s how you can loosen your foundational skills in their holster:
- Flip through a cookbook. Read through six entries in foundational areas like data structures and string manipulation.
- Write out and explain programs that solve two practice problems.
- Data engineering
- Flip through a SQL cookbook. Read through six entries on foundational areas like conditional WHEREs and ways to combine tables.
- Write out and explain SQL queries for three practice problems.
- Probability and statistics
- Flip through the first half of an introductory textbook. Read all the key definitions and equations.
- Write out and explain the answers to two practice problems.
- Machine learning and algorithms
- Flip through the first three chapters of Steven Skiena’s Algorithm Design Handbook. Read two sections that feel unfamiliar.
- Explain, with diagrams, a machine learning algorithm that you are familiar with.
You will get the biggest benefit if you do all of your practicing OUT LOUD. Explain your answers to your cat, or to an empty chair. Use a pen and paper, or better yet, a whiteboard. These help recreate common interviewing environments in small ways so that when you get there it feels a bit more familiar.
Don’t panic if you encounter topics and tools you’ve never heard of before. Many job postings are written as wishlists. They sound like a 15 year old describing their perfect mate — a billionaire celebrity-lookalike winner of the Nobel Prize in physics and the Peace Prize. Those are all fine attributes in a partner, but most of us would be pretty excited about finding one or two of them. No one has them all. In my experience, the candidates hired are strong in some of the points listed in the post, but not necessarily all of them.
"Many job postings are written as wishlists. They sound like a 15 year old describing their perfect mate — a billionaire celebrity-lookalike winner of the Nobel Prize in physics and the Peace Prize."
Also, don’t forget to leave time for a fifth area: learning about the company. Visit the their webpage. Get a sense of how they make their money and who their customers are. Read their engineering blog to learn what tools they use and how their infrastructure is built. Learn the name of the CEO. If you are lucky enough to get your interviewers’ names, Google their professional activities. Learn about their research interests. Get a feeling for what matters to them.
Standard Plan (40 hours)
If Pocket Plan preparation is a single pancake, Standard Plan is the tall stack — the same process, repeated; each pass going a little deeper than the last. You work more of the same example problems and read through more of the same references. Where the Pocket Plan only gives you enough to time to dust off your skills, the Standard lets you put a sharp edge on them. You can learn about things that you’ve heard of but never absorbed.
After your first pass through the Pocket Plan, take a step back and look at where you feel the least prepared. For instance, if the job posting says “SQL required” and the recruiter told you that you will be asked a couple of SQL questions, but you don’t know any SQL, that’s a gap. Make a wishlist of things you would like to dig into deeper and start with the biggest gap. Then go back to the Pocket Plan and allocate your time to practice problems and reference reading accordingly.
Deluxe Plan (100+ hours)
If you have the luxury of buying the deluxe option, congratulations! You have enough time to acquire new skills from scratch. The way to do this is to start with a Standard Plan-style gap analysis, but instead of working on practice problems, you get to bring out the big guns: microprojects and practice interviews.
Microprojects. A microproject is a small-scale project, no more than 10 hours start to finish. It will set you on the road to mastering entirely new skills and concepts. Here’s how microprojects work:
- Selection. Choose a project that requires you to use one or two of your gap skills. This is harder than it might seem, but try not to overthink it. The use case can be ridiculous. The result can be trivial. The only requirement is that it demands the skills you are trying to learn
- Execution. This is the fun part. In order to build your tiny project, you will have to gain a working knowledge of some small slice of whatever it is you’re trying to learn. There will be a lot of Internet searches, trial and error, and possibly tears. This is all very good. Self-directed learning can be painful, but it is the fastest way to grow new skills. Don’t give up.
- Stopping. Projects have a tendency to take on a life of their own and are easy to fall in love with. Force yourself to stop after about 10 hours. Otherwise, you run the risk of neglecting your other gaps. If you can’t make yourself kill it, at least put it on hold until after your interview. Then you can come back and adopt it as a passion project.
- Reporting. You’re not quite done until you explain your project out loud. What problem are you trying to solve? What approach did you use? How did it work? What did you learn? What would you do differently next time? This is the best practice for an interview that you are ever going to get.
Practice interviews. Unfortunately, the best way to learn what a company wants in a data scientist is to interview with them. It’s not uncommon to interview with the same employer several times over the course of a few years. This is admittedly an expensive data gathering process, but it pays handsome rewards to the patient candidate.
If you want a faster version of this process, use interviews with other companies for practice. This may not tell you everything you need to know about your target company, but it will build out your interviewing skills faster than anything else I know.
I wish I could guarantee that if you prepare thoroughly enough, you’ll nail your interview and get an offer. Unfortunately, the truth is bleaker than that. But don’t let it get you down! Having your eyes wide open will help you survive your data science interview with style and grace.
Bleak truth number one: You probably won’t get an offer. On average, we each interview more than once before getting an offer. It's more than likely that any given interview will result in a rejection.
Solution: Never do a “real” interview. If every interview is practice for the next one, you never have to deal with the additional pressure of “I must land this.” That way, it’s no big deal if you don’t get an offer. When you approach it this way, a strange thing can happen: Unexpectedly, one of your practice interviews goes so well that you find yourself holding an offer to work with a bunch of great people on a fun problem.
Bleak truth number two: Your interviewers are biased. It’s because they’re humans. There are common biases like gender, race, age, and sexual orientation. There are also idiosyncratic biases such as voice timbre, alma mater, and which text editor you use. When they are conscious and intentional, biases are a moral failure, but unconscious biases are unavoidable. We are hardwired for them.
Solution: There’s nothing you can do about this, so don’t try. You can’t anticipate it, you can’t compensate for it, and you don’t want to.
Bleak truth number three: Your own brain will try to sabotage you. It is hard not to get tripped up by the voices in your own head. They’ll chant things like “Everyone here looks smarter than me," “I shouldn’t have said that," or “I should have learned more about Bayes Theorem."
Solution: You can’t ignore your voices (I’ve tried) or make them go away (I’ve tried that too). Just notice them. They are not telling you the truth or helping you, but, for better or worse, they are part of you. Let them clamor in the background and go about your business.
Bleak truth number four: You probably don’t want to work for this company. Any group of people, whether it is a football team, a company, a rock band, or a family, is quirky (not to say dysfunctional) in its own way. The trick is to find a company whose quirks are compatible with our own. Unfortunately, quirks are by definition unusual, and finding a complementary set is tough. It’s like finding a climbing partner or a good hat. You have try on a few to find one that works.
Solution: When you’re interviewing, watch for things you like and things you don’t. Listen to how you feel. If you look around and find it easy to picture yourself in this place, working with these people, that’s a good sign. If you find yourself thinking “I could make this work," proceed with caution. If you can’t wait to get out, that’s a strong no.
Heads up: Wherever there is a great power disparity, there will always be a few who exploit it. After your interview, you should feel like you just completed a workout where a personal trainer pushed you to your limits. You should not feel like you were made to dance and grovel for someone else’s pleasure. If this was the case, that is a clear signal. You do not want to be connected to a culture that permits small abuses like this. They fester and foster large abuses as well. Luckily, this isn’t common — but it is worth keeping an eye out for.
On the bright side, by the time you get to your interview, most of your work is done. All you need to do is take a shower and show up on time. Get some sleep (if you can), eat a good breakfast (if you can keep it down), and you are good to go.
Forget about checklists of things to say. Don't bother with tricks like mirroring and power poses. Don't pretend to be hyper enthusiastic. Just be you. If you are thirsty, ask for a drink. If you are curious about something, ask about it. If something is funny to you, laugh. If you are confused, say so. You will be asked questions you don't know how to answer. That's on purpose. Feel free to admit it and to ask for clarification. Once you let go of trying to remember all the things you are supposed to be, you'll have more mental energy for working out code on the whiteboard.
It's in your interest to give your potential employer an accurate impression of who you are. Truth in advertising means you don't have to keep up false pretenses. If you are a passionate Yankees fan, it's OK to mention it. If you have an abiding fondness for image processing, share that. If you are an unrepentant asshole, let your interviewer see it. You will want to be with people who know how to deal with that. If you would rather have your fingernails pulled off than pair program, tell your interviewer. If you've only written two lines of C++ code in your life, it's OK to say so. Avoid trash talking anyone, including your past self, but be straightforward. Pretending to be anything other than who you are doesn't help you and it doesn't help your interviewer.
It's hard to overstate the power of being genuinely you. It is magnetic. It gives you an air of strength and makes you interesting. It's kind of scary, so few of us do it. As a result, it tends to make you stand out in the minds of your interviewers. They may or may not make you an offer, but whatever the case, it will be the best outcome for you.
I wish you luck as you travel along your path. May it take you somewhere even better than you planned.
Disclaimer: This is not a guide to the data science interview process at my current or any former employer. It is built from a collection of my experiences interviewing across the industry. It's just my own opinions. Don't blame anyone else for them.
You can read more of my work on my blog.