You've done it. You just spent months learning how to analyze data and make predictions. You're now able to go from raw data to well structured insights in a matter of hours. After all that effort, you feel like it's time to take the next step, and get your first data science job.
Unfortunately for you, this is where the process starts to get much harder. There's no clear path to go from having data science skills to getting a data science job. You'll need to put in a lot of hard work to forge your own.
But don't give up hope! Getting a data science job after learning on your own is very possible. In this post, we'll discuss the things you should be doing to put yourself in position to start getting data science interviews. In a subsequent post, we'll cover the interview process itself, and how to prepare.
Afterwards, you might get a snazzy new company laptop!
If you feel like your data science skills aren't yet well developed enough to start looking for a job, you might want to check out our post on how to learn data science, or go to Dataquest and start one of our data science learning paths.
1. Keep Learning By Building Projects
This may seem counterintuitive, as you only have so many hours per day, and you probably want to spend all of them on looking for a job. But think about it this way instead -- every data scientist's primary responsiblity is to learn. New tools are constantly coming out, and what skills are defined as "data science skills" is constantly changing. By learning, you stay on top of these skills, and improve your desirability to employers.
I'd highly suggest spending a majority of your time on learning. In order to set yourself up for getting a job, you'll want to learning by working on projects. Projects are what you'll be creating in a data science job, and building them on your own is a good way to practice. Projects also help you improve your portfolio, and boost your odds of scoring an interview.
Creating a project can follow this rough process:
- Find an interesting dataset. You can consult this list of places to find datasets.
- Formulate a few questions you want to use the dataset to answer. Pull in any supplementary datasets you want to use.
- Make sure at least one or two of these questions push the boundaries of your knowledge, or force you to learn new tools.
- Use Jupyter Notebook or an equivalent tool to explore and analyze the data.
- Store your notebooks on Github.
Jupyter Notebook makes it easy to analyze data.
As you learn, make sure to pay special attention to the following topics, which tend to be underemphasized in most data science teaching materials:
- Data Cleaning — being able to clean data is a critical skill, and will be most of your job. You can take a Dataquest data cleaning course to help you with this.
- Statistics — a good part of being a data scientist is being rigorous, which involves statistics. You can take a Dataquest statistics course to help you with this.
- End To End — going from a raw dataset to a rigorous analysis is a very important skill.
2. Show Off Your Work
As you've learned data science, you've hopefully been building up a portfolio of projects. These projects will ideally be authored in Jupyter Notebook or an equivalent tool.
Projects are a great way to practice your skills, but it's when you show them off that they become extremely valuable in your job search. By posting your portfolio publicly, you raise your profile, and allow other people to see your work and skills.
The quickest way to share your work is to create a Github account and start uploading your notebooks to their own repositories. Here are some example project repositories:
As you can see, both projects have a
README file that clearly explains what they do, and how to use them. If you upload a Jupyter Notebook to Github, like this example, it will automatically be rendered in the interface, making uploading notebooks a great way to show off your work.
You should aim to have 5-10 projects on Github as you embark on your job search.
A project on Github.
Creating A Blog
A slower, but more rewarding, way to show off your work is to create a blog post about it. A blog post will typically describe how you created the project, and why you took certain steps. Here are some good project walkthrough blog posts:
In order to create posts like the above, you'll need to make your own blog. You can read a good tutorial on making your own data science blog here.
You should aim to have 5 or so blog posts as you embark on your job search.
3. Share Your Work
As you raise your profile in the data science world, you'll find it easier to access new opportunities. One way to raise your profile is to share your work with others in relevant contexts. There are quite a few data science and programming communities that appreciate tutorial or project walkthrough blog posts:
- /r/machinelearning — general machine learning related articles and tutorials.
- /r/datascience — general data science related articles and tutorials.
- /r/python — articles broadly about Python/
- DataTau — basically Hacker News for data science.
- /r/learnpython — articles or tutorials about learning Python.
- /r/learnprogramming — articles or tutorials about learning programming.
- Data Science Community Slack
Before you submit your article to any of these communities, make sure you engage in the community, and understand what types of content they respond well to. This will generally involve reading articles in the community for a few weeks, and making relevant comments.
By sharing your work, you'll get traffic for your blog, which can result in:
- Suggestions for improving your work.
- Direct leads from recruiters.
- Direct opportunities from companies and community members.
- A sense of the data science market, and who's hiring.
Networking is a great way to get inbound interest from companies, and to discover any holes in your skills. You should primarily network through online communities, meetups, and coffee meetings.
As part of sharing your work, you should be engaging in online communities. Make sure to read articles in those communities to get a sense of what data science trends are. Also make sure to comment regularly so you can share your viewpoint and meet other people.
It's also common to create posts to ask for advice from others. Here are some examples of useful posts from data science communities:
As you engage with the communities more, you'll learn more about the data science world, and be in a better position to get a job.
Meetups can be a good way to meet a lot of data scientists at once, and to hear interesting talks. You can browse Meetups in your city here. Searching for keywords related to what you're interested in, like "data science", "data visualization", "Python", or "R" will be helpful.
Some meetups are sponsored by companies that are hiring data scientists, and thus can be a good way to find opportunities. Be careful to not just listen to talks at meetups -- interact with people around you, and talk to them. You'd be surprised at the opportunities that can come out of casual interactions at these events. Make sure not to see these casual interactions as pure networking opportunities, though. If you can help someone else out, you'll be able to build a more authentic, two-way relationship.
Try to reach out to 1-2 people in your area every week for coffee meetings. You can find people on LinkedIn or AngelList by searching for data scientists in your city. You can also find data scientists on Twitter, or through popular data science blogs.
Don't worry too much about only networking with managers, or only people who're in charge of hiring. Often the best referrals come from your peers, so focus on networking with other data scientists. It's also a good idea to build a relationship with folks by commenting on their blog, chatting with them over Twitter, or commenting on their Quora answers before reaching out.
Once you're ready to email, a great way to reach out to folks is to say something along the lines of this:
Hi! I've been learning data science, and I'm looking for a job now. I'd love some advice if you have time to get coffee. I've been following you online, and I love your [INSERT SOME OF THEIR WORK HERE].
I'm specifically interested in [INSERT QUESTIONS HERE]. I'm happy to travel to where your office is. [INSERT TIMES HERE] work for me, but I'm happy to accomodate your schedule if these don't work for you.
Some good questions to ask are:
- Anything about the background of the person you're connecting with, and how they got started.
- Questions about the work the person is doing now, and what their day to day is like.
- Questions about sector-specific data science applications. Example: "What are some of the most interesting data science applications in education?"
- Questions about openings at the employer of the person you're meeting with, and if they're hiring now.
- "Can I help you with anything?" — believe it or not, you probably have skills and experiences that the person you're meeting with doesn't. If you can help them with something, you'll build a stronger, more authentic, relationship.
Some bad questions to ask are:
- "How can I get a job?" — the more focused the question, the better. A better version of this question would be "I've created projects that cover random forests, data cleaning, and visualization. What other skills is your employer looking for in new hires? What skills should I work on next?"
- "Can you review my portfolio?" — reviewing a portfolio and giving good feedback can take a lot of time, and you only want to ask this after you've built a good relationship.
- "How do I do this thing in R?" — focus on high-level career advice to maximize your time.
You'll probably get one of
4 responses to outreach like this:
- Silence. If you get this response, you can follow up once, but if you still don't get a response, it's best to move on. Not everyone has time for these meetings, or is receptive to them.
- "Sorry, but I don't have time right now". This is a common response, and that's fine. Thank them for their time, and move on.
- "I don't have time to meet in person, but I'd love to do a call and/or answer more questions over email". This is a good response, and you should follow up as soon as you can.
- "I'd love to meet in person" — Awesome! You've just scored a valuable in person meeting. Be careful to ask focused, directed questions and maximize your time.
A coffee meeting with too many devices.
5. Establish An Online Presence
In order to get inbound leads, you'll want to establish an online presence. At the least, you should have a presence on the following sites:
Make sure your profiles in each one are up-to-date, have links to your projects, and have all of your relevant experience.
Some sites that you may also want to consider establishing a presence on are:
- Twitter — by following data scientists and chatting with them, you can learn more about the field.
- Quora — by following data science topics and answering questions, you can raise your profile.
6. Selectively Message Companies
So far, all of our focus has been on getting inbound leads and opportunities. You'll also want to selectively pursue outbound opportunities. LinkedIn and AngelList make it easy to indicate interest in hundreds of companies, but you'll want to avoid this strategy. It results in a lot of wasted time and effort, which actually makes it harder to get a job.
Instead, you'll want to be extremely selective:
- Figure out what kinds of companies you're interested in. Hopefully, from your networking, you should have a good picture of what data science work is like at different types of companies in different sectors. If you're really passionate about healthcare, and like to work at smaller companies, you should only look at smaller health companies.
- Find the interesting companies in the sector you're interested in. You can search AngelList for this. Create a list of 20-30 companies that you think are interesting.
- Optimize your online presence and portfolio for your chosen sector(s). For example, if you care about healthcare, you should write healthcare-related blog posts, like this one.
- Network with data scientists at companies you find interesting. See if you can get coffee meetings with data scientists at the companies you're interested in.
- Apply to jobs at the companies you're interested in. Make sure to write an email to the hiring manager (if you can find the email) describing your specific passion for this role, and why you'd be a good fit. If you've networked well, you'll be able to get a referral as well.
If after going through the
30 companies, you don't get any interviews, you may want to get some specific advice and change your approach. Coffee meetings can be a good way to get this advice. If you selectively message companies, but don't get an interview, some of the most common reasons will be:
- Your resume and cover letter aren't geared towards the company well.
- You didn't manage to get any referrals from people at the company.
- The jobs require more experience or skills than you have currently.
The Bottom Line
There are no guarantees, but if you follow these steps, you'll be in excellent position to get a data science job. I personally went through a multiyear journey while I transitioned into data science, which you can read about here.
The key is to stay patient. As long as you're learning and demonstrating your skills, you'll get hired.
If you haven't already learned the key data science skills, you might like to check out our interactive data scence courses at Dataquest.
We built our course around the philosophies outlined in this post, and we can take you from zero to the point where you can start competing for entry level jobs in data. If you're interested, you can signup and do our first module for free.
You might also like to read these other resources: