Data science is one of the fastest growing segments of software development,
but it takes a slightly different set of skills than your average full-stack development job.
This means there's a big opportunity to get into data science, but how do you do it? How do you get
into the industry? Well, that's what Hugo Brown Anderson is here to tell us all about.
This is Talk Python to Me, episode 139, recorded November 7th, 2017.
Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm at
mkennedy. Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on
Twitter via at Talk Python. Talk Python to Me is partially supported by our training courses.
Have you tried to learn Python but got stuck or lost focus? We know how it feels to try and jam
fact after fact, loop construct after turn hair expression, into your head. At best, it's boring.
At worst, it can turn you off programming altogether. That's why we built our course,
Python Jumpstart by Building 10 Apps. This course guides you through carefully planned applications.
It starts simple but progresses to quite real apps. Best of all, you won't be learning dry
facts. You'll be learning like the pros do by building real applications and learning in
context. If you want to start building with Python, just visit talkpython.fm/course to get
started. Hugo, welcome to Talk Python.
Thanks, Michael. Great to be on the show.
It's fabulous to have you here. I think it's time that we do a dive into how people become
data scientists and how they get into data science. And really, I've done a couple of shows on becoming
programmers, but that's not exactly the same thing as becoming a data scientist in the sense. So,
I'm super excited to talk to you about all these different paths into data science and how people
can kind of level up in that space.
I'm really excited also because I've been thinking about this a lot lately, of course.
Yeah, of course. It's a really important topic. I mean, data science, I really attribute Python's
meteoric growth over the last three years to data science. I know it's growing in other areas and
it's playing important parts all over. But data science, the rise of Python in data science and the
rise of Python becoming more popular, those two graphs seem like the same.
Absolutely. And you can see the Python community embracing this as well. I mean, I was at PyCon in
Portland where you are this year and we had two keynotes, although many keynotes, but Jake
Vanderplass and Catherine Huff seeing, you know, such data science luminaries and thought leaders being
invited to something like PyCon to give keynotes more and more is really exciting.
Yeah. And Jake Vanderplass's keynote especially struck a nerve with me because it really opened
my eyes to, you know, basically his message was this Python ecosystem is a mosaic and there's many
different ways in which people are using Python and basically many different things that Python means
to different people. And the way that maybe a web developer working on a large scale web app works
is really different than the way a data scientist exploring astronomical data would work.
But these are both super valid and reinforcing ways to work. And I really liked his message.
For sure.
Yeah. Awesome. Okay. So before we get into pass into data science, let's get your story. How did you get
into programming in Python?
Okay. So at grad school, I'm from Australia. I went to the University of New South Wales for grad school.
I did pure math there and I did a bit of MATLAB. I'd done some Maple as an undergrad, but all of this was
relatively minimal. When I started my postdoc, I moved away from pure math and went into more applied math that I'd done as part of my undergrad.
I was working in cell biology, in fact, in Germany, and I was working in biophysics. So thinking about kind of the physical,
mechanical principles of how cells grow, reproduce, that type of stuff.
It sounds really interesting.
It was incredible. And I was actually working in an institute of maybe 400 cell biologists and theorists dedicated. So it wasn't on a university campus. It was an incredible environment.
But I was hired ostensibly to do mathematical modeling. But the biologists I work with kept on coming and asking me the same questions with respect to data analysis, statistical inference, this type of stuff, which I didn't know a great deal about at the time.
But with my quantitative training, I really could pick it up on the fly. And so I started working more on the data analysis and statistical inference in conjunction with the modeling.
Of course, to do that in to do that today, you need to be able to program. Right. Because data sets are so large. I mean, you can't you can't do it with pen and paper like they they used to.
So I started learning Python and and R to to do this. I learned online by online courses, a lot of web web resources.
And in fact, you know, the open source community in Python and R really embracing. So any any questions I had, I could pick up on on the fly.
Yeah, that's really cool. And I definitely see this working with scientists or in these types of areas. Very important.
How how much programming did the biologists do? Like, did they program in MATLAB? Were they just Excel people?
Like, how much were they kind of taking care of themselves? And how much were you solving their like science problems?
So the answer then, which this was now, well, seven years ago, I didn't quite realize that.
The answer then was MATLAB. Grad students would come to me and say, I need to learn how to do this image analysis in MATLAB.
Or how do we estimate these statistical parameters? How do I get the mean out of this data set using using MATLAB?
Something I saw.
Maybe three or four years ago was a conversion in which more and more students came and started asking to learn Python and and R.
biology is R a lot of the time, but more and more Python in physics and at R in biology.
And I think people just started seeing seeing the value.
Also, I think there's there's a challenge that MATLAB is incredible for a number of things.
But part of their their business means they're embedded in institutions.
And it's it's really tough for institutions to break away.
It's generational in a lot of ways, actually, because, you know, the guys at the top who they MATLAB work worked for them in a number of respects.
But seeing kind of the resurgence of this, this these open source libraries for academic research is really exciting.
It's super exciting. And to be fair, you know, the world looked really different 25 years ago in scientific computing than it does now.
Like open source was not so much of a thing.
It was, you know, your alternative was probably like C++ or something. Right.
Absolutely. I mean, maybe Fortran. Right.
But it was not they were not great tools.
So it was a super clear choice to choose MATLAB.
But you're right now. It's the senior professors that have been doing MATLAB for 30 years and all their work is in MATLAB.
You know, there's probably a tendency to just kind of stick with that.
Your your students come on to help you like, hey, you got to learn MATLAB because that's where I work.
Right. Something like this. That's correct.
But I do think there's some really interesting.
You know, growth in around sort of trying to displace MATLAB.
I mean, there's SageMath also from Seattle, you know, similar similar place to where Jake van der Plassen, the e-science institute is up there.
But yeah, I think it's it's really powerful to see people coming in learning Python.
I think one of the major advantages that people get is you can take that into general industry when you're done.
Like if you go and study applied math, but then you actually don't become a professor.
What are you going to do? Right.
Well, the knowing Python has a lot more doors that get open for you than knowing MATLAB.
Yeah. And you can collaborate with anyone around the world as well.
Somebody to to read and execute your code doesn't require them to have a proprietary license.
Yeah, that's a really good point.
I think, you know, the cost of these proprietary systems like MATLAB or Maple, like you mentioned, are really problematic.
Right. Like I did some work with Wavelet decomposition.
And that was like a two thousand dollar add on to MATLAB.
I mean, that's a crazy amount of money for one license.
Absolutely. Right.
That's probably like pip install something now.
That's right.
And so I mentioned Katie Huff's keynote at PyCon.
She in this keynote did a wonderful thing where she laid out a series of points of what scientific research and scientific methodology has been historically and needs to be and demonstrated that open source communities actually are far better at all these scientific principles than most other communities that have existed since since the ancient Greeks.
So things such as version control, reproducibility, absolutely open code bases, this type of stuff is exactly what science needs now, particularly as, you know, we're all this buzz term reproducibility crisis.
It's incredibly important that all of our tools and techniques are open.
Yeah, that's a really interesting point that open source kind of is very much in the same has the same zen as the principles of scientific research and exploration.
Right. Yeah.
Yeah, that's awesome.
So that was how you got into Python and programming.
How about now?
What do you do today?
So I work for a startup called DataCamp and we do online education for data science.
So we have an in-browser platform and now we have a mobile app, actually, where people can come and learn and practice and apply data science.
Until recently, so I've recently changed positions in the company.
Until recently, I was working on curriculum building.
So when I joined the company, we had two Python courses.
And over the past year and a half, I built it out with colleagues and external instructors to around 30 courses.
So that job was really ideation, what courses will look like, high level view of a curriculum, figuring out what data sets to use in courses, techniques to teach, whether it's scikit-learn, pandas, how to approach these APIs.
We've taught them with wonderful people such as Andreas Muller of scikit-learn, great courses with the people at Anaconda, spend my days writing code and explanations for courses, marketing material, being on calls and on GitHub with instructors, which was so much fun to work.
I think this is, you know, I actually did basically the same job, but for a different focus curriculum.
But for a long time, I was sort of head of curriculum at a company called Developmentor, which just got acquired and don't do that anymore.
But it was really fun to sort of look broadly at a technology, think about how do people get started?
How do they become experts?
What are the important parts?
And really try to piece that together as like a jigsaw puzzle.
It's a fun job.
It's super fun.
And particularly, just trying to match up all those different parts of curriculum building.
So just making sure that, you know, five days in a row, I'm not in the weeds of figuring out which data sets to use.
So mixing up high level curriculum building with being in the weeds.
Yeah, that's awesome.
It's definitely a social side of programming.
For sure.
And now I've transitioned to a job working as a data scientist, a data science advocate and evangelist for DataCamp.
So I'm doing data science on a daily basis, writing articles about data science for our community, pedagogical articles, technical blog posts, topical.
So currently I'm writing and developing an analysis of the Me Too movement on Twitter.
So seeing how that is developed using the Twitter API and Python and a package called Tweepy.
Yeah, so doing data science.
For example, the Twitter analysis I just spoke about.
I'm also doing data science on student data to see how we can cluster users and cluster our students and see best learning techniques for students.
So I think that's a lot of things.
I think that's a lot of things that I'm doing.
a student imports pandas as PD.
What are the top three mistakes they make straight away?
And these types of things will be of interest to us, to our students, and also to the open
source community at large.
Yeah, I think that's really interesting.
These ideas of helping people with that first step.
Because a lot of times getting into a new technology or a new library, it's those first steps that
are the hardest to take.
Absolutely.
Nice.
And are you also doing a podcast?
Exactly.
I'm currently developing a podcast called Data Framed, which is about data science,
about what data scientists do on a daily basis, and about the societal impact of data science,
which is really exciting.
Because I think it can be of great value to our students, and it can be of great value to
a lot of working data scientists.
So for example, data scientists working at Uber really may have no idea what data scientists
working at Netflix or data scientists working in astronomy do on a daily basis.
Because it's a term that encompasses so much of what working professionals do.
I think it's really exciting for me and will be for the community as well.
Yeah, I think that's awesome to shine a light on these different areas.
I mean, the stuff that you're doing at Uber, like you said, is really, really different than maybe
trying, if you're working at, say, a police department, trying to understand how police violence or violence
against police happens.
And these are really, really different.
But maybe there's lessons to be learned from one to be applied to the other.
Absolutely.
And all the way from that to city transit data, how I live in New York, and New York
transit has a huge API, the MTA, where you can go and access data with respect to how the subway
works and how decisions are implemented around that.
Yeah, that's really interesting.
I bet there's some awesome data science stories to be told out of the public transit of these major cities.
Absolutely.
There's a blog called iQuantNY, which is all about getting access to public New York data and seeing what you can find in it.
So that's a great blog to check out.
Yeah, there's probably a lot of data science going on there in New York around the stock market as well.
Yeah, absolutely.
Oh, man.
Of course, they don't share that so much.
Yeah.
Once you find something that works, they keep that quiet, right?
Yeah, that's it.
The other thing I've been doing recently is these Facebook Live Code Along sessions.
So I'm a huge fan of live coding.
I know it's probably slightly masochistic, but I don't have a huge problem.
One of my favorite things about live coding, one of the most valuable moments for me and people
coding along is when I make a mistake that I can't figure out and I need to go and use a search engine
and go and stack overflow.
And people see me kind of figure it out in real time.
And actually, I think Jake VanderPlus one up that one.
So where he was doing a live coding session and found a bug in scikit-learn and went in
and issued a PR in the coding session that fixed the bug.
And that's online somewhere.
That is awesome.
Yeah.
But the Facebook stuff's great because Facebook's really pushing their live sessions at the moment.
So everyone who follows us, we've got now, I think, 330,000-odd followers on Facebook.
When I start a live code along session, they all get notified and a whole bunch of them jump on and
interact and it's super fun.
And they can comment just below the video.
I've got a colleague there who filters the questions and I answer some of them.
And that's also a lot of fun.
That's a really interesting trend.
I haven't seen a whole lot of that previously, but I did just talk about on Python bytes last week,
this AI framework that you can basically plug your AI into almost any game and then teach it to play that game.
And the guy who runs that, he actually has a Twitch channel.
And some of his Twitch code along building up these AIs and teaching them to play various games sessions are like six hours long.
That's really cool.
And it's, it was really, I'd never really watched one of those.
It's really quite interesting, actually.
Yeah.
It's a whole different world, isn't it?
Yeah, it sure is.
I mean, a lot of the stuff that's online is really polished or somewhat polished,
but it's at least intended to be polished and like packaged up for like, here's a 20 minute little thing.
Whereas, you know, those are more like, let's just explore this until we have the answer.
That's cool.
Yeah, exactly.
Nice.
All right.
So careers into data science, career paths into data science.
Let's, let's talk about those.
I think we'll, in this conversation, move to maybe more technical, more specifically data sciencey material.
But the first thing I wanted to state very passionately is that, as with anything, but perhaps more so in data science, be active, be curious, and be part of a community.
There are lots of budding data scientists, aspiring data scientists, working data scientists, hiring managers out there.
And getting in touch with them and putting yourself out there is incredibly important.
So to that end, I'd really suggest starting on some basic data science projects, if there's your first foray into it.
And we can talk about what that could look like in a second and create a public profile.
Get yourself a GitHub account to do that.
Maybe have a little blog where every now and then you post some analysis you've done.
Even if it's a basic exploratory data analysis, that's great.
And put some words in there, put some images and figure out how to communicate around this.
Go to conferences.
Go to meetups and talk to people.
Hackathons are also fantastic.
Yeah.
Hackathons, that's definitely a nice way to meet people who are, you know, more than just sitting next to you at a presentation.
But actually, you know, you're kind of working together a little bit.
That's cool.
Yeah.
I think I definitely encourage people to create some kind of blog or write stuff.
I think that that's really valuable.
And it doesn't have to be, you don't have to wait until you're an expert for sure at like something.
It could be you're solving some problem and you couldn't find a way online how to solve that particular problem.
So, you know, blog about that, right?
Talk about what you tried, what didn't work.
There's a lot of people who would be interested in following along this I'm getting started sort of story.
Absolutely.
And also, do a bit of self-promotion or marketing.
I'm not suggesting like, you know, get your paid ads on Facebook.
But, you know, if somebody asks a question on Reddit or Quora or Stack Overflow and you think your response may be helpful, get out there and put it there.
There are also a number of blogs that have really wide distribution where you can write analyses for them as well.
I mean, DataCamp, we've got a community section where we solicit external contributions.
The Open Data Science Conference, ODSC, has a blog where they do the same.
So, once you feel a bit more comfortable with your material, definitely put it out there.
And I know that that can be difficult as well.
So, there's certainly a bit of a loss of ego that needs to occur in this scenario.
But just remember, there's a lot of interesting stuff going on out there and you can be part of it.
Absolutely. And, well, I think it's really, really important on how you frame what you've created and presented.
If you say, I'm the expert in this thing and then you're not, well, then, you know, people may find that out and that's going to go badly.
But if you're really upfront, like, look, I'm really just getting started, everyone.
But here is something that I couldn't find any help with.
And here's what I figured out and I thought it was awesome.
Like, nobody's going to knock you for that, right?
Absolutely.
Well, except for maybe on Reddit, they might send something angry.
But you've got to have to take it.
There'll always be at least one troll, right?
That's right. That's right.
But, you know, it's totally, totally worth it.
This portion of Talk Python to Me has been brought to you by Rollbar.
One of the frustrating things about being a developer is dealing with errors.
Relying on users to report errors, digging through log files, trying to debug issues,
or getting millions of alerts just flooding your inbox and ruining your day.
With Rollbar's full-stack error monitoring, you get the context, insight,
and control you need to find and fix bugs faster.
Adding Rollbar to your Python app is as easy as pip install Rollbar.
You can start tracking production errors and deployments in eight minutes or less.
Are you considering self-hosting tools for security or compliance reasons?
Then you should really check out Rollbar's Compliance SaaS option.
Get advanced security features and meet compliance without the hassle of self-hosting,
including HIPAA, ISO 27001, Privacy Shield, and more.
They'd love to give you a demo.
Give Rollbar a try today.
Go to talkpython.fm/Rollbar and check them out.
The other thing you brought up is a GitHub repo or a GitHub profile.
And I think that that's super important.
One of the things about GitHub is you can't fake the commit history over time very easily,
right?
Like if you say, I've been doing this for three years, but your GitHub repo only has like
a week of activity, that's not a great sign.
So if you're planning this, like, you know, do that stuff early so that it can, you know,
sort of create this history that is proof of what you've been doing.
Absolutely.
And something I did when I was starting up my profile on GitHub, I had a sticker, a sticky,
like a literal sticky on my computer screen, not the app stickies.
But I had a sticky that said commit to GitHub today.
Just like I didn't actually do it every day.
But you can actually see before I joined DataCamp that there was a lot of public activity I was
doing.
One, because I really enjoyed it.
But two, because I made an active decision to put myself out there.
Yeah, it makes a huge, huge difference.
So conferences, what are some of the data science conferences that people should go to?
I really like the Open Data Science Conference, ODSC, which I mentioned earlier.
And in fact, that's where I met the DataCamp people.
And I had two, well, three, let's say two and a half job offers from going to the going
to ODSC.
I also, I also think not only conferences, but but meetups are incredibly useful.
I know it depends which city you're in.
But in New York, there are a lot of interesting meetups.
A lot of a lot of people go there after work because they love data science.
And even more so, you have hiring managers and recruiters get up.
Literally, the organizers at these meetups say at the start or the end, hey, anyone who has
a job, stand up and tell us what it is.
Yeah, I see that definitely in the Python programming meetups as well.
And I agree.
That's a great way to get connected with your local people, not just people in the industry,
but people down the street, right?
Absolutely.
And the great thing about data science recruiters and data science people in HR and managers
is that there are a significant number of jobs out there.
So they're really interested in the conversation.
As someone approaching data science at the moment, you are in a relative position of power.
I mean, it is competitive.
But compared to the recruiters, they'll be definitely up for a conversation in a way that they wouldn't
in other industries currently.
And I remember I had a conversation with this great guy from Goldman Sachs where I just asked
him up front, you know, what are mistakes that you've had people make in interviews that
I should not make?
And he gave me lots of great feedback.
One example, he said, if you don't know something, just admit you don't know it and say that's
a gap and I'm looking forward to filling that.
He had guys where it was one guy he asked what the bias variance trade-off meant.
And it was on a call and he heard the guy start typing and then answered the question.
Okay.
Yeah.
Pro tip, use a touch pad, some kind of touch device if you're going to Google during your
interview.
Exactly.
The other thing, when you go to conferences and hackathons and this type of stuff, conferences
are also great because they have sprints.
A lot of the big, you know, packages, whether it be scikit-learn, pandas, gen-sim, project
Jupyter, which we'll talk about later on, I think.
They have sprints when the conference ends where you can go and help contribute to the
project.
The communities are super open.
You can start.
They actually encourage you to start by just helping out with documentation, which is a
huge bottleneck at a certain point in open source software development.
So you can actually be an active member of these development communities immediately without
being like, oh, I don't know how to, you know, define this class correctly.
Yeah.
Well, I think another huge benefit of that is if you do want to have your public profile
have, you know, PRs against say pandas or scikit-learn or something like that, those are
mature, polished libraries that are hard to just get into yourself.
But if you go to a sprint and sit down with somebody who's an expert and you guys do it
together, well, there's a pretty quick way to get up to speed to where that you can start
doing those things if you want.
That's one of your paths you want to follow.
And you're right.
You're there at these sprints and you're able, you know, best case scenario to be pair
programming with core developers on pandas or scikit-learn or numpy, right?
That's crazy.
Yeah.
And so when you go to that job interview and they say, well, how does it really work inside
pandas when you do this?
Like, which would be better?
Should I do this or that?
You're like, well, internally it does this.
And so here's why you do that.
Like, that's an incredible answer.
And you could totally get those kinds of insights from these sprints.
I agree.
Absolutely.
And what that also demonstrates is that you're entrepreneurial, which I think, you know,
a lot of people are looking for these days, someone who will, you know, take responsibility
and run with it.
Yeah.
That puts you in a pretty thin group already, which is great.
Yeah.
You also said that reading blogs and things like that pretty helpful.
Absolutely.
Read as widely as possible.
I think reading blogs, getting on newsletters, following people on Twitter is one of my greatest,
greatest resources.
So we've chatted about Jake Vanderplass.
On the R side, you have Mara Averick, Hadley Wickham, Hilary Mason's great, Dave Robinson on the R side.
I follow all these people, so you may as well follow me, Hugo Bowne, because I retweet a lot of this stuff.
Catches the important retweets, right?
As well.
We're really arcing up on the Datacamp community at the moment.
And as I said, ODSC has a fantastic blog.
Python Weekly.
There are so many different places.
And I'll include a significant number of links in the notes of this podcast on this stuff as well.
Yeah.
I find that Twitter is super, super valuable.
I also find Reddit, actually, if you don't mind, a few angry comments every now and then.
Certainly, the Reddit community is great and really smart.
So you can drop in on the data science one or the Python one and pick up a lot there.
Yeah.
Cool.
And so this kind of sets the stage for you to be prepared to get a job, to make the connections to get a job.
But eventually, probably most people's goals are to go get some kind of working data science job, right?
Yes.
So you already brought up recruiters.
And I think that's certainly one of the possibilities.
Probably one of the least effective ways to get a job is to just go to the career page and just apply by filling out the online form.
You know, like a recruiter can help you get inside.
If you have a friend that you know works at that place, ask for an introduction, right?
I think most jobs that are really great jobs start looking for someone to fill it by saying, all right, team, who knows somebody who would be awesome for this job?
Anyone?
And then it becomes this open search, right?
So how do you get inside this first round before it becomes just posted on the career page?
I actually think hackathons are a great way to do that because you actually start coding with people there, do a bit of pair programming, and you get to meet people there.
When there are jobs going around, there are a lot of working data scientists from all levels at these hackathons.
I also think more specific online platforms, AngelList, if you want to work with startups, there's a lot of stuff happening there.
And LinkedIn, in North America anyway, making your LinkedIn profile as attractive as possible will definitely help.
And you'll get inbound mail coming as opposed to needing to go to the apply page.
Yeah, and you're in a much better place when people are reaching out to you rather than the other way around, for sure.
I think that's totally right.
Yeah.
The other, this is general advice to anyone applying for a job, and maybe everyone knows this, but when I heard it a few years ago, it blew my mind.
And if you're applying for a job and sending a cover letter, use the same font and the same colors as that company's website.
How interesting.
Yeah, that's pretty easy to do, right?
Yeah, exactly.
And generally, they love it.
We got one recently at Datacamp.
We were like, wow, this looks really nice.
And then we're like, wait a second.
Oh, they've done that.
And when we realized that they'd done that, it was even stronger.
Yeah.
Well, I think, you know, I did, I was on the receiving end of people applying for jobs for quite a while.
Yeah.
To me, when I saw something come in and it was just a standard resume or like, here, I'm applying for this job.
Here's my info.
If it wasn't, I think your company is amazing because, and I want to work with you to do X, like that went straight in the trash.
Like if there was not something about the job, the place, the, you know, if it was just like, here's a copy of my Word document.
It was like, well, here's a copy of my recycle bin.
Next.
Exactly.
And it's the same when recruiters reach out to you.
I mean, you know, I get recruiter mail on LinkedIn, which is like, your skill set matches our company.
And I'm like, come on.
Right?
Yeah, exactly.
It's not even, hey, you've done this cool stuff in Python and whatever it may be.
But this actually speaks to something else, which is making it particular to the company and also making it particular to yourself.
So being yourself when doing data science or trying to build your portfolio is incredibly important.
I think playing to your own strengths, a lot of aspiring data scientists feel they need to be a data science unicorn so that they can, you know, they can do the data munging, data collection, data manipulation, machine learning, statistical inference, Bayesian methods, data visualization, data, you know, like this is crazy.
Right?
And when you're trying to teach people data science and they feel that that's, that's totally overwhelming.
I'm actually overwhelmed by that, that sentence I just, just stated.
Sounds like a PhD in math plus programming, right?
Exactly right.
And you don't need to be an expert at machine learning algorithms.
For example, to be an effective data scientist, that will make you some sort of effective data scientist.
But playing to your own strengths and realizing that data scientists work in teams.
So I've, I've worked on a course recently with an educator and data scientist, Sergey Fogelson, who he manages a four person data science team at Viacom here at Times Square.
And on his, I was chatting with him about his team.
And he said, if everyone he hired, like knew the ins and outs of support vector machines, that would be a horrible team.
He's got one person who is great at statistical data visualization.
He has one person who's a data engineer and fantastic at that.
He has one person who does the machine learning stuff and also has a background in math and physics.
So he can actually explain the ins and outs of these algorithms to, to the rest of the team.
I actually forget what the fourth, fourth person does.
But that, that speaks to the fact that managers are aware that when they hire in teams, they're going to hire people with, with different strengths.
And for that reason, I'd suggest to anyone entering data science to do things that interest you, have a play around.
Like when developing your portfolio, you'll see, you've got to do different steps in the data science pipeline, figure out what you enjoy the most, and then apply for those jobs as well.
Yeah, I totally agree with you.
And I think one of the underlying things you're touching on here is authenticity.
Because if you feel like someone is reaching out to you and they're being super authentic, like you said earlier about that, well, you know, I honestly have no idea what that term means, but I'm super excited to learn it if it's important.
Like I would love, like I'm not against, you know, not against it.
I just don't know every single little detail about this.
I think when people are hiring, if you see the enthusiasm, you see some real problem solving skills and some authenticity, it really goes a long ways.
Yeah.
And being able to adapt, pivot and learn as well.
So being able to say, hey, this is what I've learned in the past year.
I have no idea what that means, Mrs. Hiring Manager, but I'm willing to learn that is incredibly important in this space.
Because in all honesty, in five years, it might not be Python with the, you know, Julia may come up.
R may really, really blast in again.
So the ability to learn and relearn, I think, is incredibly important and demonstrating that.
Yeah, absolutely.
Because at a minimum, you have to learn the details and the ins out of like that actual problem set and that industry that maybe you don't have.
So another thing you touched on was do what interests you.
Because then you have the enthusiasm and that really is super powerful as well.
And I'm a big fan of combining what you're interested in or what you have expertise in plus programming, plus data science.
And I think it really gives you like this superpower.
Like you talked about this cell biology project that you had.
Like they were probably like, you know, go to Hugo.
He can solve the problem because he both owns, he controls the magic of programming and he can do this biology stuff.
And so there's this, this really unique set of skills.
Like you don't, you don't go from like a million data scientists and how do you differentiate yourself from them?
You're like, I'm, I'm the data scientist that also understands wind power like nobody else.
So if I'm trying to apply to like a renewable energy company, like, well, that's a clear win, right?
For sure.
And I, I definitely think you've got to be doing something you're interested in.
I think a lot of people may say, I'm going to do a Kaggle competition because that's what people do.
I think Kaggle competitions are great, but choose one that you're super interested in.
If, if you're interested in flight patterns in North America, do a Kaggle competition about, you know, how often flights are delayed, which airlines, which cities, that type of stuff.
If you're a movie buff, jump into the movie lens data set and try to develop a basic recommender systems, recommendation systems engine.
If you're into Yelp reviews, if, okay, if, if you hate Yelp reviews that don't give you enough information, try to learn a bit of natural language processing or natural language.
understanding by segmenting or filtering or clustering these, these Yelp reviews.
So doing things that interest you is incredibly powerful when developing your data science portfolio.
But also it makes sense, right?
In the sense that if someone's talking to you about something that they don't really care about, you're not that affected.
Whereas we've all, we all love listening to people who are passionate about something, right?
So that's, that's very powerful.
Another approach, I actually had this conversation with a data scientist and statistician.
in the R ecosystem, Mina Chetungkaya Rundle.
I'm sorry if I got that pronunciation wrong, but we were discussing this and she said, yeah, do stuff that interests you or stuff that you have to do.
And I said, what do you mean?
And she said, well, let's say you're doing, you're trying to learn data science and you're doing your budgets, your monthly family budgets in Excel.
Try to do that in R.
Try to develop a minimal dashboard or in Python and see how that goes.
If you wear a Fitbit, you know, get your Fitbit data out of CSVs and have a look at your own sleeping patterns and your own heart rate data and accelerometer data and that type of stuff.
And write something on your blog or on GitHub about that.
Right.
I think even, you know, companies get created out of those types of activities, right?
You're like, you know, I really wish I could do this thing better for myself.
And I'm like, wait a minute.
This seems like everybody must have this problem.
And this is a cool solution.
What can I do with that?
Right?
Exactly.
This portion of Talk Python to Me was brought to you by GoCD.
GoCD is an on-premise, open-source, continuous delivery tool to help you get better visibility into and control of your team's deployments.
With GoCD's comprehensive pipeline modeling, you can model complex workflows for multiple teams with ease.
And GoCD's value stream map lets you track changes from commit to deploy at a glance.
Say goodbye to deployment panic and hello to consistent, predictable deliveries.
We all know that continuous integration is super important to the code quality of your applications.
Choose the open-source local CI server, GoCD.
Learn more at talkpython.fm/gocd.
That's talkpython.fm/gocd.
I love that you spoke to this idea of creating superpowers by combining two or more areas of expertise because I think that will also help differentiate you.
You know, a lot of people are out there trying to get data science jobs.
But if you're data science plus, you differentiate yourself from everyone else who's speaking about data science.
So if you're interested in data science plus analyzing genomic data or data science plus analyzing, as we discussed, Yelp reviews, that type of stuff will help differentiate you from the masses.
Yeah, absolutely.
If I was on the hiring side and I saw this is a person who is a proper data scientist, but they also know my industry, like that goes right at the top.
That's great.
Exactly.
So let's talk about programming skills a little bit.
Love to.
Yeah.
So I'm familiar with the programming skills you need to be a web developer, but how about data scientists?
Like what do you think people should really focus on there?
Currently, I would learn at least one technology really well by applying it to projects, the types of projects we've just discussed.
I think the two most applicable technologies right now are Python and R.
So if you learn one of them really well by applying it to projects, I'm not necessarily going and saying going and learning all the ins and outs of object oriented programming in Python.
But the type of stuff you pick up when doing a project of, you know, analyzing social media trends using Twitter, you'll gain so much knowledge doing that.
I'd also suggest learning a bit about others to be able to speak the language.
So if you choose Python, I'd then learn a bit of R and not necessarily as much as you know in Python, but being able to speak that language will really help you in whatever roles you enter in the future.
Yeah, certainly having these multiple languages as your skill set to understand like, well, maybe over in R, there's this really cool way to do this one thing that's not so easy in Python.
And that can help you think of different ways to solve the problem, or maybe it's just not so obvious in Python how to do it, right?
So that can definitely open your mind to like different avenues of solving these problems.
And you maybe can grab a library that's important over there, port it over to Python and use it if you'd rather, right?
For sure.
And I think one great example of this is, so I use Python substantially more than I use R these days.
One case in which maybe I'll jump into R is doing some, you know, very basic exploratory data analysis and filtering and that type of stuff.
Because all these new tidyverse tools developed by Hadley Wickham, among other people, are incredibly useful for kind of rapid iteration of exploratory data analysis in a way that the more Pythonic tools perhaps are not.
Sure. Yeah, that's a good example.
So what do you think about, I'm not sure what the proper way to say, like sort of software engineering type of skills, like refactoring, design patterns, those kinds of ideas.
Like how important is that kind of stuff versus a good exploratory, just we're just going to find the answer.
We're just going to like rummage through this data type of programming.
That's an incredibly important question that I don't have a concrete answer to yet.
But I think what people need to do is, I mean, you don't want to go down the hole of becoming a developer.
You're trying to do a data sign.
I didn't actually mean it's a hole that you enter when you're becoming a developer.
But you don't want to go down the hole of, you know, developing software engineering best practices and only focusing on that.
But you do need basic programming best practices.
So the first things are, you know, having a style guide, Python, pepe, all the way, commenting your code, using version control, have a workflow.
And maybe you don't have this at the very start, but do exploratory data analysis and write exploratory code while it's working for you.
But when you start tripping over it, when it starts to become more inefficient, then perhaps start to refactor your code.
Have some, you know, put your functions in modules, in .py files, for example.
Have an editor that you use or notebooks.
Yeah.
One of the areas that I see that this kind of stuff becomes really important is people can do super important work, especially if they're coming more from the science side towards the programming rather from the software side towards the data.
Is they're really good at writing scripts that will answer their problem, but they're not super reusable.
Right.
They're kind of just like it goes through the steps that I need to solve my problem rather than here's the thing I could make an open source project.
And imagine if pandas was just crammed inside of some other application in a way that wasn't able to become this amazing thing.
Right.
Exactly.
And that's a huge bottleneck for working scientists.
I mean, the type of code I saw, I don't want to be too hard on the biologists, but the type of code I saw was really like we had to go through it in serious detail to figure out what was happening in there, even when it was published.
And of course, remember that you're writing code for other people to read.
But more importantly, you're writing code for future you to read.
Yes.
So be good on future you.
Yeah.
I often have this thought of like, if I do this, my future self will thank me in programming, but also just in like making coffee before I go to bed.
Right.
Get ready to press the button.
That's it.
And I also think there are a few other technologies which we've spoken to in some sense.
Git is incredibly useful.
There can be a slightly steep learning curve before you see the value there.
But I do think version control is incredibly necessary for data science moving forward.
Learning Bash, a bit of shell, is really useful.
If you're in a job and you need to spin up an AWS instance, you'll need to know a bit of that stuff.
I don't necessarily, you know, say, spend weeks or months using it.
And I know all of this can be quite overwhelming, all these different tools.
But if you know a bit of each, you'll be in good stead for getting into data science.
Yeah, what's worked for me a lot in these things is like, it's not like, well, I want to know Bash and Linux.
So I'm just going to like study them to death.
It's like, I have this problem I need to solve with Linux.
Let me learn enough to make that problem, to solve that problem.
And then you just keep doing this.
Like you build up enough to like kind of hit most of the important areas anyway.
Exactly.
And once again, you're speaking to doing projects, right?
Like having some particular project which you can do and learn tools around it.
And as we've discussed, putting that on your blog, having, you know, a blog post, how I use Linux to solve this part of this problem.
And if someone asks you about it, you can say, yeah, I know this and that about it.
And you can check out more content on my blog.
I think that's incredibly useful.
Or on my GitHub, right?
Yeah, yeah, absolutely.
It's super important.
So we talked about the programming stuff, kind of low level.
What are the core skills?
I mean, do I need to go and do I need a math degree to be a data scientist?
Do I need to be a scientist, a programmer?
Like what are the core skills?
So you definitely don't need a math degree to be an effective data scientist.
I do think, though, if you learn a bit along the way, let's say you're totally not into matrices and linear algebra and all of that jazz.
That's cool.
But if you do learn a bit along the way and try to not be scared of it, you know, you'll become probably a bit more effective.
So I'd suggest you to try and ease yourself into that stuff.
But the more important initial skills, being able to explore data, being able to read in a data set using Pandas, for example, or Data Table in R, and check it out.
Look at some figures.
Look at some summary statistics.
That type of stuff.
Very related to this is data cleaning and data manipulation.
Anyone who's, you know, there's the saying that 80% of my job is cleaning data and manipulating it.
And it's a joke because it's more like 95% of most people's jobs.
And I think this is incredibly important.
Statistics, I think, is really essential in data science.
But I need to be careful there because when I say statistics, I don't mean the central limit theorem.
I'm talking about applied statistics or practical statistics.
And actually, when I was wrapping up my postdoc, I was asked the same question so many times by students that I started running workshops in R and Python called An Introduction to Practical Statistics, where we'd take their data sets and see how we can find out stuff in them from Python and R.
So what I'm talking about there is, you know, how to compute the mean standard deviation, how to do basic statistical modeling, fitting polynomials, that type of stuff.
Right. And answering, is this a trend, you know, are these correlated or not?
Things like that, right?
Exactly. And thinking about how then that translates in to my initial question as well.
It's not only, you know, does this look linear?
It's what are the implications of this?
What can I tell to someone who doesn't know something about the Pearson correlation coefficient?
How can I explain this in human terms to a manager, for example?
Bootstrapping is an incredibly useful technique in statistics that I think everyone should know.
I might try to explain very briefly what bootstrapping is.
Yeah, yeah. Go for it, because I'm not entirely sure what it is myself.
So, and it means something different in the world you're from as well, I think.
Yes. There's two meanings of bootstrap that I know of already.
Neither of them are what I'm thinking of.
So I don't think what you're thinking of.
Think about this. You've got some data set, people's heights in a certain population.
And you have the average. So this is the average height of this data set.
But you know that, let's say you only have 10 data points or 20 data points.
You know that this won't actually be the average height of the entire population, right?
So what you do is, so the average height you've got has some sort of error bars associated with it.
And what you want to do is estimate those error bars.
And so what you do is, you resample from the sample you have.
So if you have 20 data points, you can resample 20 with replacement to get a slightly different average.
You can do that 100, 1000 times.
And then you get some sort of distribution of potential means or potential averages.
So that will tell you, that's the bootstrap of the average.
That will tell you kind of the spread of possible averages in the total population.
But the great thing is that this isn't just, this doesn't just apply to averages or means.
You know, you can do this with any statistic under certain scenarios.
And it gives you a pretty good idea of what you're looking at statistically.
That's really cool. It's like meta statistics, like statistics about statistics.
Exactly.
And the great thing is, once you have that distribution of means, you can visualize it, right?
So you get a distribution, you can have a look at it.
And that speaks to the next core skill that I think everyone, if you're not going to be a specialist in data visualization, that's fine.
But as a working data scientist, you'll be asked time and time again to explain your results.
And a picture is worth a thousand lines of code.
So I think that's incredibly important to become adept at data visualization.
I think the fifth point, which is a term on everyone's tongue, is machine learning, the related deep learning.
I think machine learning is incredibly important for working data scientists.
But I don't want aspiring data scientists or software engineers who are trying to enter the data science space to fall into the trap of thinking, if I can machine learn, in inverted commas, you know, that makes me a data scientist.
And I'd suggest that definitely learn a bit about deep learning, but don't get sucked in or too sucked in unless you want that to be your focus.
And then really do it, right?
Yeah, it's definitely one of the most mysterious and sort of new buzzy parts of data science.
Exactly.
And the way it's related to this, you know, kind of re-burgeoning concept of artificial intelligence is fascinating.
But it's, you know, there's also a potential for a bubble.
I don't want to be too harsh on it because it's incredibly important.
And the effects on, you know, on society and the way we live will be huge.
But we need to be careful as well.
Yeah, well, I think the probably the danger is that it can become the hammer where everything becomes a nail to hit it with.
There was this funny image I retweeted on Twitter yesterday.
I don't know where it came from originally, but there's this huge bulldozer thing.
Instead of having like a big scoop on the end of its arm, it had like a little regular person-sized shovel.
And it was like digging with it.
And the quote was something like, you know, machine learning solution when all you really needed was a few if statements.
It's something like that.
That's fantastic.
Yeah, and I do see that possibly being a danger, right?
It's not the only way to solve problems.
But the problems that they can solve are like they were unsolvable before.
So it really does have the possibility to open new doors.
All right.
But it's not the only only tool for it.
Yeah.
I mean, you know, the pendulum swings both ways.
And part of the reason it's really buzzy now is because it has been incredibly effective, as we've seen.
Yeah.
And these companies are saying, hey, we have tons of data and we don't fully understand it.
Could this maybe be our magic silver bullet to unlock something we didn't know about?
Yeah.
And also you said story.
Yeah.
Storytelling, right?
Storytelling is incredibly important.
And I think, you know, even when you're writing a chunk of code, you're telling a story to future you or someone else who's reading it and trying to interpret it.
But when developing a data science project, you're introducing them to a data set.
You're showing them exploratory data analysis.
You're potentially showing them some statistical inference, machine learning pipelines.
So being able to explain in a variety of terms what your data science story is, is incredibly important.
And to give takeaways at the end, to give an introduction, this type of stuff.
So considering it a story and also thinking who your target audience is.
If you want to, you know, write a blog post which a hiring manager can understand, that's one thing.
But if you want to write a blog post who's someone who's, you know, very well versed in machine learning can understand, they're very different things.
So just kind of think about that.
Practice that.
And read what other people do as well.
There's a website.
I can't remember what it is.
But it's called something like, you know, 100 Interesting Jupyter Notebooks in Data Science.
Yeah, I think I've seen that.
That's really cool.
Yeah.
Yeah, that definitely is a great place.
I think Jupyter Notebooks really are powerful and they've brought storytelling to code in a way that just wasn't there before.
Absolutely.
And the idea of being able to interactively write your code and see output straight away below the cell you've written in is really strong.
And this was actually one of Jake Vanderpluss's points, right, in his PyCon keynote where, you know, someone said to him,
Oh, I can't believe you use Jupyter.
It's so slow and beefy.
And he was like, Oh, I never thought about that.
But that doesn't affect my workflow.
It's really about, you know, speed of development for me, not speed of execution, I think, was his term.
And that he can go in there.
And we all can write some code, see the output, get some cool visualizations, move on, write some markdown in there in order to have some text and tell that story.
Now, one of the greatest things, of course, now is that has been for some time that GitHub renders Jupyter Notebooks as well.
So you can just give someone a link to your Jupyter Notebook on GitHub and they can go and check it out immediately without even needing to clone the repository.
Oh, I didn't know that.
That's awesome.
Yeah.
Very cool.
So I guess we're kind of getting near the end.
Probably we've got to wrap it up a bit.
But one of the final things we should focus on is, you know, it's a time of unparalleled information and learning resources.
I mean, 20 years ago, it was get a book or get a degree.
There's a whole lot more than that now, right?
Absolutely.
So you guys at DataCamp already have, you have a ton of courses for data scientists.
Yeah.
So I definitely think one way to keep up to date with what's happening in the field is online education.
And there are lots of platforms for this which offer different things.
So I think Coursera and edX, you know, open the world of online education, not only in data science and programming,
but everything from, you know, the humanities to space exploration to politics, you know, and it's an incredible platform.
Oh, sorry.
Both of them are.
Yeah.
What we do at DataCamp is we're building a vertical platform for people to learn data science.
And what we offer really, one of our major value propositions is it's more personalized in the sense that you get a shell and you get to write a script in the course.
And you get automated personalized feedback.
So let's say I try to import Pandas and then read in a CSV, but I pass the wrong argument to it or the wrong separator or something like that.
DataCamp will say, hey, you passed in this argument.
Why don't you try doing this instead in order to import it, read the CSV correctly?
So we have a mixture of videos and interactive coding sessions.
There are lots of other great places.
Kevin Markham has his data school, which is great for Pythonic data science.
Yeah, Kevin Markham.
Yeah, Kevin Markham is doing really awesome stuff.
Shout out to Kevin.
I was just talking to him yesterday, actually.
And he and I have done a little bit together.
He's got some really cool stuff for data science and Python for sure.
Absolutely.
And of course, your courses, your talk Python courses for pure Python.
Everyone should do this.
Well, thank you very much.
I appreciate the shout out.
That's awesome.
Of course.
All right.
Well, hopefully people who are getting started in data science or the programs, they want
to move into data science.
Hopefully this has been really helpful.
I think there's a pretty concrete roadmap of steps that you can take to get there.
So thanks for laying that out for us.
Absolutely.
And thanks for coming up with this idea for us to have this chat as well.
Yeah, it's been really cool.
Yeah, it's super fun.
I think everyone's going to enjoy it, I think.
All right.
So before I let you get out of here, though, you've got two questions to answer.
First of all, if you're going to write some code, namely Python code, really, what editor
do you open up?
When I use an editor, which I do for scripting, I'll use Atom.
But as we've said, for most data science, I do it in Jupyter Notebooks.
I love Jupyter Notebooks.
Also, I'd recommend very soon, or even now, people checking out JupyterLab.
I don't know JupyterLab.
Tell us about it.
JupyterLab's amazing.
It's really a modular infrastructure for data science and scientific computing.
So you open up your JupyterLab kernel, and you can have a Jupyter Notebook in there.
You can have a terminal in there.
You can have a markdown file, which you see rendered immediately.
You can even have notebooks.
You and I can open Jupyter Notebooks in our respective JupyterLab environments and collaborate
on them in real time.
And you can paste code into the chat that then I can paste into my notebook.
So it's really kind of a new modular infrastructure.
That's awesome.
It's like social Jupyter.
Yeah, absolutely.
That sounds great.
So that's super exciting.
And the development around that is really strong.
Nice.
Okay.
So notable PyPI package.
Okay.
So there are so many.
It's so hard.
It's like 120,000 almost now.
It's insane.
I actually, I'll mention one that I recently discovered, and I've only played around with,
but it seems super cool.
It's called Newspaper.
And I've been thinking about it a bit recently.
I spent a lot of my time trying to scrape HTML and prettify it.
So, and for that, I use, generally, I use requests and BeautifulSoup, which those are huge.
But that isn't, those aren't the ones I'm talking about at the moment.
This is called Newspaper.
And it's a really simple API for scraping articles and curating them and doing natural
language processing.
So you can, you know, get in touch with the New York Times or whatever it may be.
Scrape the article really easily.
There are some natural language processing methods, title methods, text methods, that type of stuff,
where it'll, you know, I think the method, I probably won't get this right, but it's something
like NLP method, and it spits out keywords and topics and that type of stuff.
So I've only played around with it.
Yeah, it's an incredible library.
Yeah, I just discovered it recently as well.
And basically, the idea is, instead of combining requests, plus BeautifulSoup, and then you
have to, you get the text and the semantic markup, and you got to do whatever you're going to
do.
It's like, you can just point it at an article and say, who was the author?
When was this published?
Exactly.
What are the keywords?
And you can point it at the homepage, like the homepage of the New York Times to say,
what are the articles on this page?
It's crazy.
It's awesome.
And it deals with date times in a really intuitive, nice way, which date times are the bane of
my existence a lot of the time.
Why are date times so hard?
They are, though.
It really is tricky.
So I think James Gleick has this thing where it's an article about how there should just be
one time zone.
I'm not going to go into that, but I'm just putting that out there.
It's not obvious who would be the center of that time zone, but...
Yeah, that's a big debate there, right?
But I wake up at two in the afternoon, and then I get up, right?
Like, that would totally simplify things.
His argument is that time zone is a historical artifact that we need to get rid of.
But that's my notable PyPI package.
I just wanted to give a few shout outs to a bunch of others from the data science Python
stack.
And this list is by no means exhaustive, but I use Pandas, scikit-learn, NumPy is huge.
Matplotlib, Seaborn, Altair, and Bokeh are all great for data viz.
DAS for distributed computing.
PyMC3, stats models.
These are all really interesting and core elements of the data science Python stack that I use and
love.
Yeah, those are all very, very good ones.
So awesome.
Yeah, newspaper.
Lots of fun with that one.
All right.
So here you go.
Final call to action.
People, they want to get into data science.
What do you say?
Get out there and do things.
Play to your own strengths.
Be brave.
And something we haven't really chatted about, realize that imposter syndrome is a real thing
for everybody.
So at the inaugural JupyterCon this year, Fernando Perez, the creator of iPython, for real, the
creator of iPython and co-leader of Project Jupyter, encouraged everyone to realize that
everyone has imposter syndrome and that he himself has imposter syndrome.
So anytime you think you're an imposter, remember that Fernando Perez feels the same way.
He's out there changing the world and so can you, right?
Exactly.
Awesome.
That's it.
All right.
Well, great to talk with you.
And thanks for coming on the show.
Such a pleasure.
Thank you.
This has been another episode of Talk Python to Me.
Today's guest has been Hugo Brown Anderson.
And this episode has been brought to you by Rollbar and GoCD.
Rollbar takes the pain out of errors.
They give you the context and insight you need to quickly locate and fix errors that might have
gone unnoticed until your users complain, of course.
As Talk Python to Me listeners, track a ridiculous number of errors for free at
rollbar.com slash Talk Python to Me.
GoCD is the on-premise, open-source, continuous delivery server.
Want to improve your deployment workflow but keep your code and builds in-house?
Check out GoCD at talkpython.fm/gocd and take control over your process.
Are you or a colleague trying to learn Python?
Have you tried books and videos that just left you bored by covering topics point by point?
Well, check out my online course, Python Jumpstart, by building 10 apps at
talkpython.fm/course to experience a more engaging way to learn Python.
And if you're looking for something a little more advanced,
try my Write Pythonic Code course at talkpython.fm/pythonic.
Be sure to subscribe to the show.
Open your favorite podcatcher and search for Python.
We should be right at the top.
You can also find the iTunes feed at /itunes,
Google Play feed at /play, and direct RSS feed at /rss.
on talkpython.fm.
This is your host, Michael Kennedy.
Thanks so much for listening.
I really appreciate it.
Now get out there and write some Python code.
I'll see you next time.
Bye.
Thank you.