The process, tips, and some resources
The reason that I write this blog
I just started my new job at Airbnb as a data scientist a month ago, and I still feel that I’m too lucky to be here. Nobody knows how much I wanted to join this company — I had pictures of Airbnb office stuck in front of my desk; I had my iPhone wallpaper set as a photo of me standing in front of the Airbnb logo; I applied for positions at Airbnb four times, but only heard back from the recruiter in the last time…
In the past, when people asked me, “Which company do you want to work for the most?” I dare not to say “Airbnb” because when I said that, they replied to me, “Do you know how many people want to work there? How many of them eventually got in? Come on, be realistic.”
The result proves that nothing is impossible. Since many of my friends asked me to share about my job search experience, I think it might be helpful to write it down and share with people.
To provide an overview of my job search process:
- Applications: 475
- Phone interviews: 50
- Finished data science take-home challenges: 9
- Onsite interviews: 8
- Offers: 2
- Time spent: 6 months
As you probably can see from the data, I’m not a strong candidate because, otherwise, I would just apply for a few positions and receive a bunch of offers. Yes, I used to be super weak; I used to be the kind of candidates who are wasting interviewers’ time. But “who you were months ago doesn’t matter, what matters is who you are becoming.”
The road less traveled to a data scientist job
A little bit about my background, I obtained a Bachelor’s degree in Economics from a university in China and a Master’s degree in Business Administration from the University of Illinois at Urbana-Champaign. After graduated, I worked as a data analyst for two years, with 7 months as a contractor at Google, and another 1 year 4 months at a startup. My work was mostly about writing SQL queries, building dashboards, and give data-driven recommendations.
After realizing that I was not learning and growing as expected, I left my job and applied for Galvanize Data Science Immerse program, which is a 12-week boot camp in San Francisco. I failed the statistics interview to enter the boot camp program for 4 times, got admitted after taking the statistics interview for the fifth time.
The content taught at Galvanize was heavy on Python and machine learning, and they assume you already have a strong foundation in statistics. Unsurprisingly, I struggled a lot in the beginning, because I didn’t know much about programming, nor was I strong in statistics. I had no choice but to work really hard. During my time at Galvanize, I had no break, no entertainment, no dating, nothing else but more than 12 hours study every day. And I got much more comfortable with the courses later on.
However, I still embarrassed myself for uncountable times in interviews when I first started the job search process. Because the gap between a real data scientist and I was so huge that even though I was hardworking, the 12-week study was far from enough to make a career transformation. So I applied, interviewed, failed, applied again, interviewed again, failed again. The good thing is, each time I got to learn something new, and became a little bit stronger.
In March 2018, I have been unemployed for almost a year since I quitted my previous job. With only ~$600 in my bank account, I had no idea how to pay for the next month’s rent. What’s even worse, if I couldn’t find a job by the end of April 2018, I have to leave the U.S. because my visa will expire.
Luckily, after so much practice and repetition, I’ve grown from someone who doesn’t know how to introduce herself properly, doesn’t remember which one of Lasso and Ridge is L1, knows nothing about programming algorithms, into someone who knows she is ready to get what she wants.
When I entered the final interview at Airbnb, I had one data scientist offer in hand; thus, I was not nervous at all. My goal for the final interview was to be the best version of myself and leave no regret. The interview turned out to be the best one I have ever had. They gave me the offer, and all the hard work and sleepless nights paid off.
Tips I would love to share
- Know what you want, set your goal, work really hard to achieve that goal, and never settle for less.
- Growth mindset, it’s really important (check out this growth mindset animation video if you haven’t heard about it). Don’t say “I’m not good at coding,” “I’m not good at stats”. It’s not about talent. Don’t use “talent” to describe others as an excuse for your laziness. What you need is to learn in the right way, and practice many times until you are good.
- Take note of all the interview questions you got asked, especially those questions you failed to answer. You can fail again, but don’t fail at the same spot. You should always be learning and improving.
- Discuss questions you don’t understand with other people if possible. I really appreciate the help from my fellow classmates and instructors at Galvanize, everyone was very supportive and willing to help each other.
- Go to local data science meetups, join data science learning groups, connect with people in industry, send a personalized note when you are trying to connect with strangers on LinkedIn… Expand your network as much as possible, you don’t know which one will open a door for you.
- Sometimes, the result is a combination of luck and preparation, and you are just not lucky this time. Don’t always credit failure to yourself being not good.
What would I do differently if I could restart the job search process
- Don’t interview with the companies that you want to work for at the beginning of your job search, unless you think you are ready to go for them.
I started my job search process with an interview with Uber, and I deeply regret that decision. I screwed up so bad that I couldn’t get interviews for other teams at Uber. Most people aim at the major tech companies as dream companies; however, most of these companies have a strict rule that if you fail once, you can’t take another interview in 6 months or 1 year. Therefore, you want to make sure you are prepared before taking interviews at these companies.
- Narrow down what types of jobs you want to do, and what types of jobs are not for you, this will save you a lot of time.
If you have ever looked at the data scientist job postings, you would know how broad the responsibilities can be. There are data scientists who work on natural language processing, computer vision, deep learning, and there are also data scientists who work on A/B tests, product analytics. Making sure what kind of job is a good fit for you and what is not, this will help you save a ton of time in preparing for interviews.
In my case, I skipped all job postings that ask for a Ph.D. degree and knowledge of deep learning, computer vision, etc. But I still have too many areas to learn and prepare. Below is a summary of the resources I used during my job search. Remember, there are too many resources you can use to learn, and you can spend a lot of time just searching for the materials, please be selective and make sure you utilize them to the fullest.
Resources for data science interview preparation
- Khan Academy: Very good to learn about basic concepts.
- Practical Statistics for Data Scientists: Good one, very practical, strongly recommend.
- Statistics course by Duke University on Coursera (Taught in R)
- brilliant.org: I purchased their membership when preparing my interviews, and I found it is one of the recommended materials in Facebook’s onsite interview prep guide.
- Udacity A/B testing course by Google: I watched it twice and wrote a summary of this course.
- KDD papers and slides by Microsoft: A/B test is commonly asked in data science interviews but not many people outside the industry have ever done an A/B test before, so I searched and read ~15 papers when I was trying to learn about experiment design.
- Slides and videos on Exp Platform
- Company tech blogs, such as Airbnb data science blog
- Stanford University Machine Learning course by Andrew Ng on Coursera
- An Introduction to Statistical Learning: with Applications in R: One of the textbooks we used at Galvanize
- Machine Learning in Action: Another textbook we used at Galvanize
- Applied Data Science with Python Specialization by University of Michigan on Coursera
Basic programming algorithms
- HackerRank: More entry-level friendly
- LeetCode: work on questions from easy or medium level
- Cracking the Coding Interview: 189 Programming Questions and Solutions (Written in Java)
Python data manipulation (Pandas, Numpy)
- Tip: I improved Python data manipulation tremendously by working on companies’ take-home challenges. Practice is the best way to learn.
- Sorry I don’t use much R. Usually in interviews you can use either R or Python.
- Mode Analytics SQL Tutorial: I’m fairly familiar with SQL but I still go through this before every SQL interview, especially the advanced section, just in case.
Product sense/Business understanding
General interview questions
- Lynda Raynier’s Youtube Channel: Really helpful for general interview questions. You can also search for other videos to learn about how to answer a specific interview question.
Seeking for a job is just one episode of our life journey. But the grit, passion, and perseverance we carried through the process will benefit us in the long run. Personally, I deeply believe in the quote below and will always continue to believe in it. Hope it motivates you just like how it motivated me:
“Don’t ever let someone tell you that you can’t do something. You got a dream, you gotta protect it. People can’t do something themselves, they wanna tell you that you can’t do it. You want something, go get it. Period.” — The Pursuit of Happyness