How I entered the data science field (part 1) - 2 pillars to tackle interview preparation

From late 2017 to early 2018, I prepared and interviewed for my current data science role. Now, I get paid to train and deploy machine learning models (yay!), and use my combined statistics/econometrics and programming skills to create impact. In this 2-part article, I share my approach that I think contributed the most to entering the field straight out of school, updated with real observations on the job.

Now, whether you are a fresh grad, seasoned data scientist, or looking to transition from another career, I hope this article can shed some light into what goes into a data science job search. Despite having been on the other side of the table now, as an interviewer, I still learn a lot from fellow data scientists’ experiences. My goal is for this article to be like an online coffee chat with you; there were so many people that shared their knowledge to me during my own job search, and I’d like to pass it on!

This post was previously only available to newsletter subscribers, which you can sign up for here, but I’ve taken the opportunity to update it with plenty of extra content, which ended up having 2 parts! I also encourage you to check out Serena’s excellent blog about her data scientist job search approach, which inspired me to write one of my own.

Two pillars of data science skills

My opinion is that data science requires expertise in both statistics and programming. I do feel eventually more pillars enter the mix such as product, or systems design, but since this article focuses on my experience entering the field, I focus on these two pillars.

For simplicity, I use the term “statistics” to refer to machine learning theory, in particular, the mathematical understanding of how algorithms work, from logistic regression to natural language processing (NLP) techniques. Similarly, I will use the term “programming” to refer to general coding, building data pipelines, and software development (including version control, terminal, etc. if the role requires).

It is actually a tall ask to build expertise in both statistics and programming - oftentimes, schooling can only prepare one for so much. It could be that someone with a statistics background does not have the programming experience, and vice versa. For entry levels, my opinion is that one does not need to be a master at both statistics and programming at the time of the interview. However, you absolutely should not be a “zero” at either one of them.

The reason I say this, is that there are many, many flavors of data scientists. It all depends on the team, the projects that the role works on, tech stack of the company, and many other factors. There are data scientists that use their statistics expertise at 70% capacity in their day to day, but 30% of their programming skills. Other team members could be more focused on MLOps (productionalizing, CI/CD…) and require much less statistics in their day to day, but should still be familiar with the algorithms they deploy.

Hence, I’d prefer to look at qualifications of a candidate from their skills in both pillars, the requirements of which vary a lot in roles all titled “Data Scientist”. The point being, it’s possible that, for an entry role, one doesn’t need to have 100% in both pillars, but rather a holistic combination of them.

If you are looking to enter the field, and notice that you have built less expertise in one of the pillars, for example, only a slight understanding of statistics (e.g. 1/10, only took an introductory course in undergrad), but a lot of experience in programming (e.g. 8/10), focus on raising the statistics pillar to a 3/10.

How I tailored my interview prep with the two pillars

My personal educational background was in Economics, which heavily focused on inferential or predictive modelling, using data such as financial markets, pricing, household earnings, and so on. Sounds quite a lot like data science in industry, doesn’t it?

Econometrics gave me a solid understanding of the “statistics” pillar, since the upper year courses require a lot of calculus and matrix algebra, which were invaluable when I started self-learning about more machine learning algorithms. But, there was a catch - I only learned statistical programming through a proprietary software called Stata, not the languages common in industry, such as Python or R.

To those unfamiliar with Stata, it is still terrific for doing quick linear modelling or time series, and is commonly used in the economist profession, for example, government or related institutions that make recommendations to policy makers (those people that are quoted in the news!). However, when I was applying to (non-government, non-research) industry roles, I quickly noticed that Python and R were much more common requirements, with Python being mentioned the most during my job search.

Formal education wise, I would have put my Python skills at a 1/10, since I only took one elective computer science course. Note: a 10 here not being a 10 in industry overall, but my impression, whether realistic or not, of the expectation for a very competitive entry level candidate.

It turned out that I was in luck - I had been coding since my 3rd year to build video game prototypes, which should have raised the programming pillar up to, say, 4/10. But I was in for a shock - in the job descriptions, Python packages such as NumPy and pandas, were mentioned again and again. However, I had never heard of them! In game development, I never needed to use those packages at all. I had some serious catching up to do. So I mentally filed my “programming” at a 1/10, because of my inexperience with “Python for data science”, and not with “Python in general”.

I mention my experience in detail, because, if I hadn’t done that self-assessment of skills on both pillars, I wouldn’t have caught onto what my strengths were for data science roles. I might have been scared of applying to any data science roles because my degree wasn’t in “pure” statistics or computer science. I also wouldn’t have figured out areas to improve, so that both pillars were at a 4/10 at the minimum. To achieve that goal, I spent a lot of time learning NumPy and pandas with small projects, such as replicating assignments I did in Stata. In my data science side project article, I walk through more detail on how to build a portfolio; for additional information, I recommend the “Proof of work” section of Serena’s article.

Beware job description induced impostor syndrome

I have had coffee chats with folks who mention job descriptions that ask for, say, a PhD in computer science, even if it’s clearly an entry level position. In that case, ignore the requirement and apply, even if you don’t have a PhD in said discipline. Chances are, the other applicants are also folks that are fresh grads or new to data science.

Impostor syndrome is something I would really like to warn my younger self about. Don’t avoid applying to something because you think all the applicants are going to be “more qualified” than you already. The truth is, you literally don’t know who the other applicants are! So, that thought is just not true and is impostor syndrome talking.

Tackle data science interview preparation based on personal strengths

Just to recap: after self-assessing my skills on the two pillars, statistics and programming, I immediately came up with a list of action items designed to bring my skills on both pillars to a satisfactory minimum. My programming in Python for data science was weak at the time, so I spent a lot of time learning NumPy and pandas, and replicating past projects (written in Stata) with those packages, and statsmodels.

In addition, and this was mostly luck - I had just started enforcing version control for my game development processes, because without it, my projects were becoming a mess when scaling up (I elaborate more on the game development experience in this article). So, I got a lot of practice using git from the terminal (aka command line). This existing knowledge turned out to help immensely on the job, and was asked about during my interviews, but if I didn’t happen to have the experience, I would definitely put in additional effort to brush up on it.

I also spent a lot of time understanding the most common machine learning algorithms - logistic regression, some clustering techniques, etc., and their mathematical derivations. My econometrics background saved me a lot of time here, as the core intuition of iteratively minimizing loss was quite clear already after semesters of coursework. However, as with most coursework, by the time I was applying for jobs, most details had faded from memory, so I had to review the concepts to a point where I felt comfortable explaining it out loud to an interviewer.

Networking to learn information missing from job descriptions

Networking, as part of a job search, is mentioned a lot as an essential step. In university, I heard a lot about how important networking is, but back then, I never understood what the term really meant. There was a false impression of going to events and mixers with free drinks and pizza, and randomly wandering around until bumping into someone that will employ you. My point being, the term “networking” is super confusing.

However, now that I am in the industry, I look back and, like those before me, say that networking is important. Here’s why, in my opinion. During grad school, I attended conferences and local Meetups. I was in the interview process for two large companies at the time, and I met people in both the hiring teams in separate events - even several of my future interviewers!

So, attending events certainly helped, while also being a matter of luck - when I spoke to those people at the Meetups I had no idea they would be directly interviewing me, and I doubt that they knew either. In addition, chatting to many people at events gives a better idea of what a typical role in the industry would look like - oftentimes a job description alone is nowhere close to capturing the day to day work.

This is also a great time to learn how much of each pillar the team uses: do they rely more on their statistics knowledge in their day to day, or are they more programming focused? It is jarring to learn about this after accepting the role; after all, you can make more informed decisions about an offer if it is in line with your long term career goals!

Another factor is that people you get along with are often happy to help - many friends I met through undergrad, mostly through my volunteer work, have always been supportive of my career, even though back when we met, job search was far from our minds.

Apart from these serendipitous encounters and existing friendships, I also reached out to alumni of my grad program. The advice they gave me on job search was often invaluable, since their background is similar; a lot of online articles had good insights, but due to having different educational backgrounds, could not answer specific questions I had. I tried to get a holistic view of the job search - there were alumni I reached out to to ask questions about their workplace in particular, whereas for some I asked about how they built their skills, regardless of company.

The above is my experience with networking, which might still be vague, so here are some major points to help you with your first steps:

Action items to get started

  1. Assess your skills on the two pillars for data science, statistics and programming, and create an action plan to brush up on both your strengths and weaknesses
  2. Reach out to people, whether in person or online, to hear about their career experience, and seek holistic coverage (e.g. reach out to some to learn about their company or role, and some for educational experience, etc.)

In the next part of this article (to be updated) I will go through what to expect in each round of the data science interview process, as well as how I prepared back then. Hope this was helpful!

Additional resources

How I entered the data science field (2 part series)

Related articles about "data science"