WEBVTT
00:00:00.001 --> 00:00:03.280
Data science is one of the fastest growing segments of software development,
00:00:03.280 --> 00:00:07.980
but it takes a slightly different set of skills than your average full-stack development job.
00:00:07.980 --> 00:00:13.280
This means there's a big opportunity to get into data science, but how do you do it? How do you get
00:00:13.280 --> 00:00:18.100
into the industry? Well, that's what Hugo Brown Anderson is here to tell us all about.
00:00:18.100 --> 00:00:23.900
This is Talk Python To Me, episode 139, recorded November 7th, 2017.
00:00:23.900 --> 00:00:43.240
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
00:00:43.240 --> 00:00:48.000
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm at
00:00:48.000 --> 00:00:53.540
mkennedy. Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on
00:00:53.540 --> 00:00:58.360
Twitter via at Talk Python. Talk Python To Me is partially supported by our training courses.
00:00:58.360 --> 00:01:04.080
Have you tried to learn Python but got stuck or lost focus? We know how it feels to try and jam
00:01:04.080 --> 00:01:10.560
fact after fact, loop construct after turn hair expression, into your head. At best, it's boring.
00:01:10.560 --> 00:01:15.220
At worst, it can turn you off programming altogether. That's why we built our course,
00:01:15.220 --> 00:01:20.520
Python Jumpstart by Building 10 Apps. This course guides you through carefully planned applications.
00:01:20.520 --> 00:01:26.600
It starts simple but progresses to quite real apps. Best of all, you won't be learning dry
00:01:26.600 --> 00:01:31.060
facts. You'll be learning like the pros do by building real applications and learning in
00:01:31.060 --> 00:01:37.080
context. If you want to start building with Python, just visit talkpython.fm/course to get
00:01:37.080 --> 00:01:40.080
started. Hugo, welcome to Talk Python.
00:01:40.080 --> 00:01:42.640
Thanks, Michael. Great to be on the show.
00:01:42.840 --> 00:01:49.320
It's fabulous to have you here. I think it's time that we do a dive into how people become
00:01:49.320 --> 00:01:55.080
data scientists and how they get into data science. And really, I've done a couple of shows on becoming
00:01:55.080 --> 00:01:59.720
programmers, but that's not exactly the same thing as becoming a data scientist in the sense. So,
00:01:59.720 --> 00:02:04.180
I'm super excited to talk to you about all these different paths into data science and how people
00:02:04.180 --> 00:02:06.380
can kind of level up in that space.
00:02:06.980 --> 00:02:11.100
I'm really excited also because I've been thinking about this a lot lately, of course.
00:02:11.100 --> 00:02:16.420
Yeah, of course. It's a really important topic. I mean, data science, I really attribute Python's
00:02:16.420 --> 00:02:21.220
meteoric growth over the last three years to data science. I know it's growing in other areas and
00:02:21.220 --> 00:02:27.180
it's playing important parts all over. But data science, the rise of Python in data science and the
00:02:27.180 --> 00:02:30.600
rise of Python becoming more popular, those two graphs seem like the same.
00:02:31.320 --> 00:02:36.560
Absolutely. And you can see the Python community embracing this as well. I mean, I was at PyCon in
00:02:36.560 --> 00:02:41.520
Portland where you are this year and we had two keynotes, although many keynotes, but Jake
00:02:41.520 --> 00:02:47.940
Vanderplass and Catherine Huff seeing, you know, such data science luminaries and thought leaders being
00:02:47.940 --> 00:02:52.960
invited to something like PyCon to give keynotes more and more is really exciting.
00:02:53.660 --> 00:02:59.500
Yeah. And Jake VanderPlas's keynote especially struck a nerve with me because it really opened
00:02:59.500 --> 00:03:06.620
my eyes to, you know, basically his message was this Python ecosystem is a mosaic and there's many
00:03:06.620 --> 00:03:12.440
different ways in which people are using Python and basically many different things that Python means
00:03:12.440 --> 00:03:18.320
to different people. And the way that maybe a web developer working on a large scale web app works
00:03:18.320 --> 00:03:23.200
is really different than the way a data scientist exploring astronomical data would work.
00:03:23.280 --> 00:03:28.480
But these are both super valid and reinforcing ways to work. And I really liked his message.
00:03:28.480 --> 00:03:28.760
For sure.
00:03:28.760 --> 00:03:35.300
Yeah. Awesome. Okay. So before we get into pass into data science, let's get your story. How did you get
00:03:35.300 --> 00:03:36.120
into programming in Python?
00:03:36.120 --> 00:03:42.680
Okay. So at grad school, I'm from Australia. I went to the University of New South Wales for grad school.
00:03:42.680 --> 00:03:48.740
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
00:03:48.740 --> 00:03:58.640
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.
00:03:58.640 --> 00:04:06.080
I was working in cell biology, in fact, in Germany, and I was working in biophysics. So thinking about kind of the physical,
00:04:06.080 --> 00:04:10.640
mechanical principles of how cells grow, reproduce, that type of stuff.
00:04:11.280 --> 00:04:12.040
It sounds really interesting.
00:04:12.040 --> 00:04:23.140
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.
00:04:24.180 --> 00:04:39.420
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.
00:04:39.560 --> 00:04:49.320
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.
00:04:49.740 --> 00:05:00.720
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.
00:05:00.720 --> 00:05:10.340
So I started learning Python and and R to to do this. I learned online by online courses, a lot of web web resources.
00:05:10.340 --> 00:05:19.200
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 the fly.
00:05:19.200 --> 00:05:27.760
Yeah, that's really cool. And I definitely see this working with scientists or in these types of areas. Very important.
00:05:27.760 --> 00:05:35.240
How how much programming did the biologists do? Like, did they program in MATLAB? Were they just Excel people?
00:05:35.240 --> 00:05:40.840
Like, how much were they kind of taking care of themselves? And how much were you solving their like science problems?
00:05:41.500 --> 00:05:46.580
So the answer then, which this was now, well, seven years ago, I didn't quite realize that.
00:05:46.580 --> 00:05:58.180
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.
00:05:58.180 --> 00:06:05.740
Or how do we estimate these statistical parameters? How do I get the mean out of this data set using using MATLAB?
00:06:05.740 --> 00:06:07.780
Something I saw.
00:06:07.780 --> 00:06:17.020
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.
00:06:17.020 --> 00:06:24.220
biology is R a lot of the time, but more and more Python in physics and at R in biology.
00:06:24.220 --> 00:06:27.900
And I think people just started seeing seeing the value.
00:06:27.900 --> 00:06:34.300
Also, I think there's there's a challenge that MATLAB is incredible for a number of things.
00:06:34.300 --> 00:06:39.500
But part of their their business means they're embedded in institutions.
00:06:39.500 --> 00:06:42.300
And it's it's really tough for institutions to break away.
00:06:42.300 --> 00:06:50.460
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.
00:06:50.460 --> 00:06:56.320
But seeing kind of the resurgence of this, this these open source libraries for academic research is really exciting.
00:06:56.320 --> 00:07:05.620
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.
00:07:05.620 --> 00:07:07.520
Like open source was not so much of a thing.
00:07:07.700 --> 00:07:11.420
It was, you know, your alternative was probably like C++ or something. Right.
00:07:11.420 --> 00:07:13.980
Absolutely. I mean, maybe Fortran. Right.
00:07:13.980 --> 00:07:16.920
But it was not they were not great tools.
00:07:16.920 --> 00:07:19.060
So it was a super clear choice to choose MATLAB.
00:07:19.060 --> 00:07:24.800
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.
00:07:24.800 --> 00:07:27.660
You know, there's probably a tendency to just kind of stick with that.
00:07:27.660 --> 00:07:31.700
Your your students come on to help you like, hey, you got to learn MATLAB because that's where I work.
00:07:31.700 --> 00:07:33.940
Right. Something like this. That's correct.
00:07:35.440 --> 00:07:37.840
But I do think there's some really interesting.
00:07:37.840 --> 00:07:43.420
You know, growth in around sort of trying to displace MATLAB.
00:07:43.420 --> 00:07:51.560
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.
00:07:52.220 --> 00:07:57.160
But yeah, I think it's it's really powerful to see people coming in learning Python.
00:07:57.160 --> 00:08:04.000
I think one of the major advantages that people get is you can take that into general industry when you're done.
00:08:04.000 --> 00:08:07.740
Like if you go and study applied math, but then you actually don't become a professor.
00:08:07.740 --> 00:08:09.700
What are you going to do? Right.
00:08:09.700 --> 00:08:15.780
Well, the knowing Python has a lot more doors that get open for you than knowing MATLAB.
00:08:16.340 --> 00:08:19.020
Yeah. And you can collaborate with anyone around the world as well.
00:08:19.020 --> 00:08:24.300
Somebody to to read and execute your code doesn't require them to have a proprietary license.
00:08:24.300 --> 00:08:26.140
Yeah, that's a really good point.
00:08:26.140 --> 00:08:32.120
I think, you know, the cost of these proprietary systems like MATLAB or Maple, like you mentioned, are really problematic.
00:08:32.120 --> 00:08:36.060
Right. Like I did some work with Wavelet decomposition.
00:08:37.060 --> 00:08:40.400
And that was like a two thousand dollar add on to MATLAB.
00:08:40.400 --> 00:08:43.500
I mean, that's a crazy amount of money for one license.
00:08:43.500 --> 00:08:44.780
Absolutely. Right.
00:08:44.780 --> 00:08:46.600
That's probably like pip install something now.
00:08:46.600 --> 00:08:47.700
That's right.
00:08:47.700 --> 00:08:51.540
And so I mentioned Katie Huff's keynote at PyCon.
00:08:51.880 --> 00:09:11.900
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.
00:09:11.900 --> 00:09:24.380
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.
00:09:24.380 --> 00:09:27.040
It's incredibly important that all of our tools and techniques are open.
00:09:27.040 --> 00:09:36.760
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.
00:09:36.760 --> 00:09:37.340
Right. Yeah.
00:09:37.340 --> 00:09:38.100
Yeah, that's awesome.
00:09:38.100 --> 00:09:41.460
So that was how you got into Python and programming.
00:09:41.620 --> 00:09:42.140
How about now?
00:09:42.140 --> 00:09:42.800
What do you do today?
00:09:42.800 --> 00:09:49.660
So I work for a startup called DataCamp and we do online education for data science.
00:09:49.660 --> 00:09:57.460
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.
00:09:57.460 --> 00:10:02.220
Until recently, so I've recently changed positions in the company.
00:10:02.220 --> 00:10:04.400
Until recently, I was working on curriculum building.
00:10:04.400 --> 00:10:07.320
So when I joined the company, we had two Python courses.
00:10:07.820 --> 00:10:13.980
And over the past year and a half, I built it out with colleagues and external instructors to around 30 courses.
00:10:13.980 --> 00:10:27.520
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.
00:10:28.380 --> 00:10:44.700
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.
00:10:44.900 --> 00:10:51.500
I think this is, you know, I actually did basically the same job, but for a different focus curriculum.
00:10:51.500 --> 00:10:59.060
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.
00:10:59.060 --> 00:11:06.740
But it was really fun to sort of look broadly at a technology, think about how do people get started?
00:11:07.000 --> 00:11:08.580
How do they become experts?
00:11:08.580 --> 00:11:09.760
What are the important parts?
00:11:09.760 --> 00:11:12.120
And really try to piece that together as like a jigsaw puzzle.
00:11:12.120 --> 00:11:13.120
It's a fun job.
00:11:13.120 --> 00:11:13.900
It's super fun.
00:11:13.900 --> 00:11:18.100
And particularly, just trying to match up all those different parts of curriculum building.
00:11:18.100 --> 00:11:26.300
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.
00:11:26.300 --> 00:11:29.720
So mixing up high level curriculum building with being in the weeds.
00:11:29.720 --> 00:11:31.220
Yeah, that's awesome.
00:11:31.220 --> 00:11:33.980
It's definitely a social side of programming.
00:11:33.980 --> 00:11:34.500
For sure.
00:11:34.980 --> 00:11:42.520
And now I've transitioned to a job working as a data scientist, a data science advocate and evangelist for DataCamp.
00:11:42.520 --> 00:11:52.140
So I'm doing data science on a daily basis, writing articles about data science for our community, pedagogical articles, technical blog posts, topical.
00:11:52.140 --> 00:11:59.760
So currently I'm writing and developing an analysis of the Me Too movement on Twitter.
00:11:59.760 --> 00:12:04.500
So seeing how that is developed using the Twitter API and Python and a package called Tweepy.
00:12:04.500 --> 00:12:06.880
Yeah, so doing data science.
00:12:06.880 --> 00:12:10.580
For example, the Twitter analysis I just spoke about.
00:12:10.580 --> 00:12:20.680
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.
00:12:20.680 --> 00:12:25.060
So I think that's a lot of things.
00:12:25.060 --> 00:12:25.900
I think that's a lot of things that I'm doing.
00:12:25.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:27.520
I think that's a lot of things that I'm doing.
00:12:27.520 --> 00:12:28.900
I think that's a lot of things that I'm doing.
00:12:28.900 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:39.120
I think that's a lot of things that I'm doing.
00:12:39.120 --> 00:12:41.120
I think that's a lot of things that I'm doing.
00:12:41.120 --> 00:12:43.120
I think that's a lot of things that I'm doing.
00:12:43.120 --> 00:12:44.120
I think that's a lot of things that I'm doing.
00:12:44.120 --> 00:12:45.120
I think that's a lot of things that I'm doing.
00:12:45.120 --> 00:12:48.760
a student imports pandas as PD.
00:12:48.760 --> 00:12:52.620
What are the top three mistakes they make straight away?
00:12:52.620 --> 00:12:56.740
And these types of things will be of interest to us, to our students, and also to the open
00:12:56.740 --> 00:12:58.740
source community at large.
00:12:58.740 --> 00:13:00.240
Yeah, I think that's really interesting.
00:13:00.240 --> 00:13:04.240
These ideas of helping people with that first step.
00:13:04.240 --> 00:13:09.760
Because a lot of times getting into a new technology or a new library, it's those first steps that
00:13:09.760 --> 00:13:11.240
are the hardest to take.
00:13:11.240 --> 00:13:12.240
Absolutely.
00:13:12.240 --> 00:13:12.240
Nice.
00:13:12.240 --> 00:13:14.240
And are you also doing a podcast?
00:13:14.240 --> 00:13:15.080
Exactly.
00:13:15.080 --> 00:13:20.680
I'm currently developing a podcast called Data Framed, which is about data science,
00:13:20.680 --> 00:13:25.800
about what data scientists do on a daily basis, and about the societal impact of data science,
00:13:25.800 --> 00:13:27.160
which is really exciting.
00:13:27.160 --> 00:13:32.200
Because I think it can be of great value to our students, and it can be of great value to
00:13:32.200 --> 00:13:33.480
a lot of working data scientists.
00:13:33.480 --> 00:13:38.600
So for example, data scientists working at Uber really may have no idea what data scientists
00:13:38.600 --> 00:13:43.160
working at Netflix or data scientists working in astronomy do on a daily basis.
00:13:43.160 --> 00:13:48.760
Because it's a term that encompasses so much of what working professionals do.
00:13:48.760 --> 00:13:52.760
I think it's really exciting for me and will be for the community as well.
00:13:52.760 --> 00:13:55.720
Yeah, I think that's awesome to shine a light on these different areas.
00:13:55.720 --> 00:14:00.440
I mean, the stuff that you're doing at Uber, like you said, is really, really different than maybe
00:14:00.440 --> 00:14:10.040
trying, if you're working at, say, a police department, trying to understand how police violence or violence
00:14:10.040 --> 00:14:11.320
against police happens.
00:14:11.320 --> 00:14:12.840
And these are really, really different.
00:14:12.840 --> 00:14:16.120
But maybe there's lessons to be learned from one to be applied to the other.
00:14:16.120 --> 00:14:16.680
Absolutely.
00:14:16.680 --> 00:14:22.680
And all the way from that to city transit data, how I live in New York, and New York
00:14:22.680 --> 00:14:31.160
transit has a huge API, the MTA, where you can go and access data with respect to how the subway
00:14:31.160 --> 00:14:33.720
works and how decisions are implemented around that.
00:14:33.720 --> 00:14:35.720
Yeah, that's really interesting.
00:14:35.720 --> 00:14:41.000
I bet there's some awesome data science stories to be told out of the public transit of these major cities.
00:14:41.000 --> 00:14:41.640
Absolutely.
00:14:41.640 --> 00:14:51.880
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.
00:14:51.880 --> 00:14:53.240
So that's a great blog to check out.
00:14:53.240 --> 00:14:58.200
Yeah, there's probably a lot of data science going on there in New York around the stock market as well.
00:14:58.200 --> 00:15:00.040
Yeah, absolutely.
00:15:00.040 --> 00:15:00.520
Oh, man.
00:15:00.520 --> 00:15:03.000
Of course, they don't share that so much.
00:15:03.000 --> 00:15:03.960
Yeah.
00:15:03.960 --> 00:15:06.920
Once you find something that works, they keep that quiet, right?
00:15:06.920 --> 00:15:07.960
Yeah, that's it.
00:15:07.960 --> 00:15:13.000
The other thing I've been doing recently is these Facebook Live Code Along sessions.
00:15:13.000 --> 00:15:17.000
So I'm a huge fan of live coding.
00:15:17.000 --> 00:15:21.160
I know it's probably slightly masochistic, but I don't have a huge problem.
00:15:21.160 --> 00:15:25.560
One of my favorite things about live coding, one of the most valuable moments for me and people
00:15:25.560 --> 00:15:32.200
coding along is when I make a mistake that I can't figure out and I need to go and use a search engine
00:15:32.200 --> 00:15:33.160
and go and stack overflow.
00:15:33.160 --> 00:15:36.440
And people see me kind of figure it out in real time.
00:15:36.440 --> 00:15:40.680
And actually, I think Jake VanderPlus one up that one.
00:15:40.680 --> 00:15:47.240
So where he was doing a live coding session and found a bug in scikit-learn and went in
00:15:47.240 --> 00:15:52.600
and issued a PR in the coding session that fixed the bug.
00:15:52.600 --> 00:15:54.360
And that's online somewhere.
00:15:54.360 --> 00:15:55.480
That is awesome.
00:15:55.480 --> 00:15:56.040
Yeah.
00:15:56.040 --> 00:16:01.720
But the Facebook stuff's great because Facebook's really pushing their live sessions at the moment.
00:16:01.720 --> 00:16:09.560
So everyone who follows us, we've got now, I think, 330,000-odd followers on Facebook.
00:16:09.560 --> 00:16:14.600
When I start a live code along session, they all get notified and a whole bunch of them jump on and
00:16:14.600 --> 00:16:16.440
interact and it's super fun.
00:16:16.440 --> 00:16:18.120
And they can comment just below the video.
00:16:18.120 --> 00:16:22.280
I've got a colleague there who filters the questions and I answer some of them.
00:16:22.280 --> 00:16:23.880
And that's also a lot of fun.
00:16:23.880 --> 00:16:25.720
That's a really interesting trend.
00:16:25.720 --> 00:16:32.200
I haven't seen a whole lot of that previously, but I did just talk about on Python bytes last week,
00:16:32.200 --> 00:16:43.480
this AI framework that you can basically plug your AI into almost any game and then teach it to play that game.
00:16:43.480 --> 00:16:47.800
And the guy who runs that, he actually has a Twitch channel.
00:16:47.800 --> 00:16:54.360
And some of his Twitch code along building up these AIs and teaching them to play various games sessions are like six hours long.
00:16:55.080 --> 00:16:55.800
That's really cool.
00:16:55.800 --> 00:16:58.280
And it's, it was really, I'd never really watched one of those.
00:16:58.280 --> 00:16:59.640
It's really quite interesting, actually.
00:16:59.640 --> 00:16:59.880
Yeah.
00:16:59.880 --> 00:17:02.200
It's a whole different world, isn't it?
00:17:02.200 --> 00:17:03.320
Yeah, it sure is.
00:17:03.320 --> 00:17:07.080
I mean, a lot of the stuff that's online is really polished or somewhat polished,
00:17:07.080 --> 00:17:11.720
but it's at least intended to be polished and like packaged up for like, here's a 20 minute little thing.
00:17:11.720 --> 00:17:15.960
Whereas, you know, those are more like, let's just explore this until we have the answer.
00:17:15.960 --> 00:17:16.440
That's cool.
00:17:16.440 --> 00:17:17.640
Yeah, exactly.
00:17:17.640 --> 00:17:18.520
Nice.
00:17:18.520 --> 00:17:18.760
All right.
00:17:18.760 --> 00:17:22.680
So careers into data science, career paths into data science.
00:17:22.680 --> 00:17:23.960
Let's, let's talk about those.
00:17:23.960 --> 00:17:31.720
I think we'll, in this conversation, move to maybe more technical, more specifically data sciencey material.
00:17:31.720 --> 00:17:42.600
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.
00:17:42.600 --> 00:17:50.760
There are lots of budding data scientists, aspiring data scientists, working data scientists, hiring managers out there.
00:17:50.760 --> 00:17:56.360
And getting in touch with them and putting yourself out there is incredibly important.
00:17:56.360 --> 00:18:03.880
So to that end, I'd really suggest starting on some basic data science projects, if there's your first foray into it.
00:18:03.880 --> 00:18:07.400
And we can talk about what that could look like in a second and create a public profile.
00:18:07.400 --> 00:18:10.360
Get yourself a GitHub account to do that.
00:18:10.520 --> 00:18:14.520
Maybe have a little blog where every now and then you post some analysis you've done.
00:18:14.520 --> 00:18:20.280
Even if it's a basic exploratory data analysis, that's great.
00:18:20.280 --> 00:18:26.520
And put some words in there, put some images and figure out how to communicate around this.
00:18:26.520 --> 00:18:27.880
Go to conferences.
00:18:27.880 --> 00:18:30.540
Go to meetups and talk to people.
00:18:30.540 --> 00:18:31.800
Hackathons are also fantastic.
00:18:31.800 --> 00:18:32.080
Yeah.
00:18:32.080 --> 00:18:39.900
Hackathons, that's definitely a nice way to meet people who are, you know, more than just sitting next to you at a presentation.
00:18:40.040 --> 00:18:42.760
But actually, you know, you're kind of working together a little bit.
00:18:42.760 --> 00:18:43.160
That's cool.
00:18:43.160 --> 00:18:44.080
Yeah.
00:18:44.080 --> 00:18:49.120
I think I definitely encourage people to create some kind of blog or write stuff.
00:18:49.120 --> 00:18:50.420
I think that that's really valuable.
00:18:50.420 --> 00:18:55.300
And it doesn't have to be, you don't have to wait until you're an expert for sure at like something.
00:18:55.300 --> 00:19:01.460
It could be you're solving some problem and you couldn't find a way online how to solve that particular problem.
00:19:01.460 --> 00:19:03.160
So, you know, blog about that, right?
00:19:03.160 --> 00:19:05.460
Talk about what you tried, what didn't work.
00:19:05.460 --> 00:19:11.480
There's a lot of people who would be interested in following along this I'm getting started sort of story.
00:19:11.480 --> 00:19:12.500
Absolutely.
00:19:12.500 --> 00:19:16.320
And also, do a bit of self-promotion or marketing.
00:19:16.320 --> 00:19:19.580
I'm not suggesting like, you know, get your paid ads on Facebook.
00:19:19.580 --> 00:19:30.860
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.
00:19:30.860 --> 00:19:37.800
There are also a number of blogs that have really wide distribution where you can write analyses for them as well.
00:19:37.800 --> 00:19:43.360
I mean, DataCamp, we've got a community section where we solicit external contributions.
00:19:43.360 --> 00:19:47.720
The Open Data Science Conference, ODSC, has a blog where they do the same.
00:19:47.880 --> 00:19:54.620
So, once you feel a bit more comfortable with your material, definitely put it out there.
00:19:54.620 --> 00:19:57.600
And I know that that can be difficult as well.
00:19:57.600 --> 00:20:03.300
So, there's certainly a bit of a loss of ego that needs to occur in this scenario.
00:20:03.300 --> 00:20:07.620
But just remember, there's a lot of interesting stuff going on out there and you can be part of it.
00:20:08.020 --> 00:20:13.140
Absolutely. And, well, I think it's really, really important on how you frame what you've created and presented.
00:20:13.140 --> 00:20:18.440
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.
00:20:18.440 --> 00:20:21.500
But if you're really upfront, like, look, I'm really just getting started, everyone.
00:20:21.500 --> 00:20:23.780
But here is something that I couldn't find any help with.
00:20:23.780 --> 00:20:25.600
And here's what I figured out and I thought it was awesome.
00:20:25.600 --> 00:20:27.760
Like, nobody's going to knock you for that, right?
00:20:28.560 --> 00:20:28.960
Absolutely.
00:20:28.960 --> 00:20:32.980
Well, except for maybe on Reddit, they might send something angry.
00:20:32.980 --> 00:20:35.400
But you've got to have to take it.
00:20:35.400 --> 00:20:36.900
There'll always be at least one troll, right?
00:20:36.900 --> 00:20:38.120
That's right. That's right.
00:20:38.120 --> 00:20:40.160
But, you know, it's totally, totally worth it.
00:20:40.160 --> 00:20:44.500
This portion of Talk Python To Me has been brought to you by Rollbar.
00:20:44.500 --> 00:20:48.180
One of the frustrating things about being a developer is dealing with errors.
00:20:48.180 --> 00:20:53.220
Relying on users to report errors, digging through log files, trying to debug issues,
00:20:53.220 --> 00:20:57.180
or getting millions of alerts just flooding your inbox and ruining your day.
00:20:57.620 --> 00:21:01.360
With Rollbar's full-stack error monitoring, you get the context, insight,
00:21:01.360 --> 00:21:03.940
and control you need to find and fix bugs faster.
00:21:03.940 --> 00:21:07.900
Adding Rollbar to your Python app is as easy as pip install Rollbar.
00:21:07.900 --> 00:21:12.140
You can start tracking production errors and deployments in eight minutes or less.
00:21:12.140 --> 00:21:16.320
Are you considering self-hosting tools for security or compliance reasons?
00:21:16.320 --> 00:21:19.900
Then you should really check out Rollbar's Compliance SaaS option.
00:21:19.900 --> 00:21:24.420
Get advanced security features and meet compliance without the hassle of self-hosting,
00:21:24.420 --> 00:21:29.280
including HIPAA, ISO 27001, Privacy Shield, and more.
00:21:29.280 --> 00:21:30.660
They'd love to give you a demo.
00:21:30.660 --> 00:21:32.360
Give Rollbar a try today.
00:21:32.360 --> 00:21:36.040
Go to talkpython.fm/Rollbar and check them out.
00:21:36.740 --> 00:21:41.100
The other thing you brought up is a GitHub repo or a GitHub profile.
00:21:41.100 --> 00:21:42.560
And I think that that's super important.
00:21:42.560 --> 00:21:49.260
One of the things about GitHub is you can't fake the commit history over time very easily,
00:21:49.260 --> 00:21:49.540
right?
00:21:49.540 --> 00:21:53.820
Like if you say, I've been doing this for three years, but your GitHub repo only has like
00:21:53.820 --> 00:21:56.640
a week of activity, that's not a great sign.
00:21:56.640 --> 00:22:02.780
So if you're planning this, like, you know, do that stuff early so that it can, you know,
00:22:02.780 --> 00:22:06.400
sort of create this history that is proof of what you've been doing.
00:22:06.400 --> 00:22:07.160
Absolutely.
00:22:07.160 --> 00:22:13.160
And something I did when I was starting up my profile on GitHub, I had a sticker, a sticky,
00:22:13.160 --> 00:22:17.460
like a literal sticky on my computer screen, not the app stickies.
00:22:17.460 --> 00:22:20.260
But I had a sticky that said commit to GitHub today.
00:22:20.260 --> 00:22:22.400
Just like I didn't actually do it every day.
00:22:22.780 --> 00:22:29.380
But you can actually see before I joined DataCamp that there was a lot of public activity I was
00:22:29.380 --> 00:22:29.740
doing.
00:22:29.740 --> 00:22:31.880
One, because I really enjoyed it.
00:22:31.880 --> 00:22:35.140
But two, because I made an active decision to put myself out there.
00:22:35.140 --> 00:22:37.420
Yeah, it makes a huge, huge difference.
00:22:37.420 --> 00:22:42.280
So conferences, what are some of the data science conferences that people should go to?
00:22:42.280 --> 00:22:47.920
I really like the Open Data Science Conference, ODSC, which I mentioned earlier.
00:22:48.380 --> 00:22:51.580
And in fact, that's where I met the DataCamp people.
00:22:51.580 --> 00:22:57.880
And I had two, well, three, let's say two and a half job offers from going to the going
00:22:57.880 --> 00:22:58.640
to ODSC.
00:22:58.640 --> 00:23:06.040
I also, I also think not only conferences, but but meetups are incredibly useful.
00:23:06.040 --> 00:23:08.620
I know it depends which city you're in.
00:23:08.620 --> 00:23:11.160
But in New York, there are a lot of interesting meetups.
00:23:11.160 --> 00:23:15.120
A lot of a lot of people go there after work because they love data science.
00:23:15.120 --> 00:23:19.080
And even more so, you have hiring managers and recruiters get up.
00:23:19.080 --> 00:23:23.380
Literally, the organizers at these meetups say at the start or the end, hey, anyone who has
00:23:23.380 --> 00:23:25.000
a job, stand up and tell us what it is.
00:23:25.000 --> 00:23:28.800
Yeah, I see that definitely in the Python programming meetups as well.
00:23:28.800 --> 00:23:29.300
And I agree.
00:23:29.300 --> 00:23:36.380
That's a great way to get connected with your local people, not just people in the industry,
00:23:36.380 --> 00:23:38.180
but people down the street, right?
00:23:38.180 --> 00:23:39.200
Absolutely.
00:23:39.200 --> 00:23:45.700
And the great thing about data science recruiters and data science people in HR and managers
00:23:45.700 --> 00:23:49.800
is that there are a significant number of jobs out there.
00:23:49.800 --> 00:23:52.060
So they're really interested in the conversation.
00:23:52.060 --> 00:23:58.560
As someone approaching data science at the moment, you are in a relative position of power.
00:23:58.560 --> 00:23:59.840
I mean, it is competitive.
00:23:59.840 --> 00:24:04.720
But compared to the recruiters, they'll be definitely up for a conversation in a way that they wouldn't
00:24:04.720 --> 00:24:06.360
in other industries currently.
00:24:06.360 --> 00:24:11.700
And I remember I had a conversation with this great guy from Goldman Sachs where I just asked
00:24:11.700 --> 00:24:16.720
him up front, you know, what are mistakes that you've had people make in interviews that
00:24:16.720 --> 00:24:18.280
I should not make?
00:24:18.280 --> 00:24:19.880
And he gave me lots of great feedback.
00:24:19.880 --> 00:24:24.360
One example, he said, if you don't know something, just admit you don't know it and say that's
00:24:24.360 --> 00:24:26.080
a gap and I'm looking forward to filling that.
00:24:26.080 --> 00:24:30.420
He had guys where it was one guy he asked what the bias variance trade-off meant.
00:24:30.420 --> 00:24:35.000
And it was on a call and he heard the guy start typing and then answered the question.
00:24:35.200 --> 00:24:35.600
Okay.
00:24:35.600 --> 00:24:36.480
Yeah.
00:24:36.480 --> 00:24:37.120
Yeah.
00:24:37.120 --> 00:24:43.540
Pro tip, use a touch pad, some kind of touch device if you're going to Google during your
00:24:43.540 --> 00:24:44.020
interview.
00:24:44.020 --> 00:24:45.160
Exactly.
00:24:45.160 --> 00:24:50.980
The other thing, when you go to conferences and hackathons and this type of stuff, conferences
00:24:50.980 --> 00:24:53.080
are also great because they have sprints.
00:24:53.540 --> 00:24:59.600
A lot of the big, you know, packages, whether it be scikit-learn, pandas, gen-sim, project
00:24:59.600 --> 00:25:02.360
Jupyter, which we'll talk about later on, I think.
00:25:02.360 --> 00:25:06.940
They have sprints when the conference ends where you can go and help contribute to the
00:25:06.940 --> 00:25:07.340
project.
00:25:07.940 --> 00:25:09.560
The communities are super open.
00:25:09.560 --> 00:25:10.900
You can start.
00:25:10.900 --> 00:25:15.080
They actually encourage you to start by just helping out with documentation, which is a
00:25:15.080 --> 00:25:19.960
huge bottleneck at a certain point in open source software development.
00:25:19.960 --> 00:25:24.280
So you can actually be an active member of these development communities immediately without
00:25:24.280 --> 00:25:30.160
being like, oh, I don't know how to, you know, define this class correctly.
00:25:30.560 --> 00:25:30.800
Yeah.
00:25:30.800 --> 00:25:36.300
Well, I think another huge benefit of that is if you do want to have your public profile
00:25:36.300 --> 00:25:43.760
have, you know, PRs against say pandas or scikit-learn or something like that, those are
00:25:43.760 --> 00:25:47.260
mature, polished libraries that are hard to just get into yourself.
00:25:47.260 --> 00:25:50.640
But if you go to a sprint and sit down with somebody who's an expert and you guys do it
00:25:50.640 --> 00:25:55.280
together, well, there's a pretty quick way to get up to speed to where that you can start
00:25:55.280 --> 00:25:56.260
doing those things if you want.
00:25:56.260 --> 00:25:58.040
That's one of your paths you want to follow.
00:25:58.040 --> 00:25:59.120
And you're right.
00:25:59.120 --> 00:26:02.980
You're there at these sprints and you're able, you know, best case scenario to be pair
00:26:02.980 --> 00:26:09.500
programming with core developers on pandas or scikit-learn or numpy, right?
00:26:09.500 --> 00:26:10.500
That's crazy.
00:26:10.500 --> 00:26:11.080
Yeah.
00:26:11.080 --> 00:26:14.740
And so when you go to that job interview and they say, well, how does it really work inside
00:26:14.740 --> 00:26:15.960
pandas when you do this?
00:26:15.960 --> 00:26:17.000
Like, which would be better?
00:26:17.000 --> 00:26:17.640
Should I do this or that?
00:26:17.640 --> 00:26:19.540
You're like, well, internally it does this.
00:26:19.540 --> 00:26:20.580
And so here's why you do that.
00:26:20.580 --> 00:26:21.780
Like, that's an incredible answer.
00:26:21.780 --> 00:26:25.020
And you could totally get those kinds of insights from these sprints.
00:26:25.020 --> 00:26:25.560
I agree.
00:26:25.560 --> 00:26:25.980
Absolutely.
00:26:25.980 --> 00:26:30.980
And what that also demonstrates is that you're entrepreneurial, which I think, you know,
00:26:30.980 --> 00:26:34.840
a lot of people are looking for these days, someone who will, you know, take responsibility
00:26:34.840 --> 00:26:36.460
and run with it.
00:26:36.460 --> 00:26:36.780
Yeah.
00:26:36.780 --> 00:26:40.720
That puts you in a pretty thin group already, which is great.
00:26:40.720 --> 00:26:41.440
Yeah.
00:26:42.360 --> 00:26:47.060
You also said that reading blogs and things like that pretty helpful.
00:26:47.060 --> 00:26:48.620
Absolutely.
00:26:48.620 --> 00:26:50.120
Read as widely as possible.
00:26:50.120 --> 00:26:57.700
I think reading blogs, getting on newsletters, following people on Twitter is one of my greatest,
00:26:57.700 --> 00:26:58.560
greatest resources.
00:26:58.560 --> 00:27:00.760
So we've chatted about Jake VanderPlas.
00:27:01.200 --> 00:27:07.400
On the R side, you have Mara Averick, Hadley Wickham, Hilary Mason's great, Dave Robinson on the R side.
00:27:07.400 --> 00:27:12.700
I follow all these people, so you may as well follow me, Hugo Bowne, because I retweet a lot of this stuff.
00:27:12.700 --> 00:27:14.080
Catches the important retweets, right?
00:27:14.080 --> 00:27:15.300
As well.
00:27:15.300 --> 00:27:21.380
We're really arcing up on the Datacamp community at the moment.
00:27:21.380 --> 00:27:24.760
And as I said, ODSC has a fantastic blog.
00:27:24.760 --> 00:27:26.880
Python Weekly.
00:27:26.880 --> 00:27:28.980
There are so many different places.
00:27:28.980 --> 00:27:35.640
And I'll include a significant number of links in the notes of this podcast on this stuff as well.
00:27:35.640 --> 00:27:36.660
Yeah.
00:27:36.660 --> 00:27:38.980
I find that Twitter is super, super valuable.
00:27:38.980 --> 00:27:43.600
I also find Reddit, actually, if you don't mind, a few angry comments every now and then.
00:27:43.600 --> 00:27:47.380
Certainly, the Reddit community is great and really smart.
00:27:47.380 --> 00:27:53.400
So you can drop in on the data science one or the Python one and pick up a lot there.
00:27:53.400 --> 00:27:54.160
Yeah.
00:27:54.160 --> 00:27:55.860
Cool.
00:27:55.860 --> 00:28:02.460
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.
00:28:02.460 --> 00:28:10.400
But eventually, probably most people's goals are to go get some kind of working data science job, right?
00:28:10.400 --> 00:28:10.820
Yes.
00:28:10.820 --> 00:28:13.480
So you already brought up recruiters.
00:28:13.480 --> 00:28:16.480
And I think that's certainly one of the possibilities.
00:28:16.860 --> 00:28:26.660
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.
00:28:26.660 --> 00:28:30.020
You know, like a recruiter can help you get inside.
00:28:30.020 --> 00:28:35.060
If you have a friend that you know works at that place, ask for an introduction, right?
00:28:35.200 --> 00:28:47.120
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?
00:28:47.120 --> 00:28:47.400
Anyone?
00:28:47.400 --> 00:28:50.200
And then it becomes this open search, right?
00:28:50.280 --> 00:28:56.240
So how do you get inside this first round before it becomes just posted on the career page?
00:28:56.240 --> 00:29:06.900
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.
00:29:07.700 --> 00:29:14.260
When there are jobs going around, there are a lot of working data scientists from all levels at these hackathons.
00:29:14.260 --> 00:29:24.940
I also think more specific online platforms, AngelList, if you want to work with startups, there's a lot of stuff happening there.
00:29:25.400 --> 00:29:34.660
And LinkedIn, in North America anyway, making your LinkedIn profile as attractive as possible will definitely help.
00:29:34.660 --> 00:29:39.440
And you'll get inbound mail coming as opposed to needing to go to the apply page.
00:29:39.440 --> 00:29:43.920
Yeah, and you're in a much better place when people are reaching out to you rather than the other way around, for sure.
00:29:43.920 --> 00:29:45.860
I think that's totally right.
00:29:45.860 --> 00:29:46.380
Yeah.
00:29:46.380 --> 00:29:53.760
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.
00:29:53.760 --> 00:30:00.560
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.
00:30:00.560 --> 00:30:01.760
How interesting.
00:30:01.760 --> 00:30:03.440
Yeah, that's pretty easy to do, right?
00:30:03.440 --> 00:30:04.460
Yeah, exactly.
00:30:04.460 --> 00:30:06.520
And generally, they love it.
00:30:06.520 --> 00:30:07.700
We got one recently at Datacamp.
00:30:07.700 --> 00:30:09.340
We were like, wow, this looks really nice.
00:30:09.340 --> 00:30:10.420
And then we're like, wait a second.
00:30:10.420 --> 00:30:11.860
Oh, they've done that.
00:30:11.860 --> 00:30:14.680
And when we realized that they'd done that, it was even stronger.
00:30:14.680 --> 00:30:15.660
Yeah.
00:30:15.660 --> 00:30:21.800
Well, I think, you know, I did, I was on the receiving end of people applying for jobs for quite a while.
00:30:21.800 --> 00:30:22.680
Yeah.
00:30:22.680 --> 00:30:30.440
To me, when I saw something come in and it was just a standard resume or like, here, I'm applying for this job.
00:30:30.440 --> 00:30:31.560
Here's my info.
00:30:31.900 --> 00:30:39.160
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.
00:30:39.160 --> 00:30:48.760
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.
00:30:48.760 --> 00:30:51.160
It was like, well, here's a copy of my recycle bin.
00:30:51.160 --> 00:30:51.560
Next.
00:30:51.560 --> 00:30:52.160
Exactly.
00:30:52.380 --> 00:30:54.500
And it's the same when recruiters reach out to you.
00:30:54.500 --> 00:30:59.420
I mean, you know, I get recruiter mail on LinkedIn, which is like, your skill set matches our company.
00:30:59.420 --> 00:31:00.360
And I'm like, come on.
00:31:00.360 --> 00:31:00.800
Right?
00:31:00.800 --> 00:31:01.740
Yeah, exactly.
00:31:01.740 --> 00:31:05.480
It's not even, hey, you've done this cool stuff in Python and whatever it may be.
00:31:05.600 --> 00:31:12.860
But this actually speaks to something else, which is making it particular to the company and also making it particular to yourself.
00:31:12.860 --> 00:31:18.780
So being yourself when doing data science or trying to build your portfolio is incredibly important.
00:31:18.780 --> 00:31:38.720
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.
00:31:38.720 --> 00:31:39.040
Right?
00:31:39.040 --> 00:31:44.640
And when you're trying to teach people data science and they feel that that's, that's totally overwhelming.
00:31:44.640 --> 00:31:47.680
I'm actually overwhelmed by that, that sentence I just, just stated.
00:31:47.900 --> 00:31:50.560
Sounds like a PhD in math plus programming, right?
00:31:50.560 --> 00:31:51.360
Exactly right.
00:31:51.360 --> 00:31:54.740
And you don't need to be an expert at machine learning algorithms.
00:31:54.740 --> 00:31:59.480
For example, to be an effective data scientist, that will make you some sort of effective data scientist.
00:31:59.480 --> 00:32:03.560
But playing to your own strengths and realizing that data scientists work in teams.
00:32:03.560 --> 00:32:15.840
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.
00:32:16.020 --> 00:32:19.740
And on his, I was chatting with him about his team.
00:32:19.740 --> 00:32:25.680
And he said, if everyone he hired, like knew the ins and outs of support vector machines, that would be a horrible team.
00:32:25.680 --> 00:32:31.020
He's got one person who is great at statistical data visualization.
00:32:31.020 --> 00:32:34.460
He has one person who's a data engineer and fantastic at that.
00:32:34.460 --> 00:32:40.640
He has one person who does the machine learning stuff and also has a background in math and physics.
00:32:40.640 --> 00:32:44.900
So he can actually explain the ins and outs of these algorithms to, to the rest of the team.
00:32:44.900 --> 00:32:48.520
I actually forget what the fourth, fourth person does.
00:32:48.600 --> 00:32:55.760
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.
00:32:55.760 --> 00:33:02.480
And for that reason, I'd suggest to anyone entering data science to do things that interest you, have a play around.
00:33:02.480 --> 00:33:11.740
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.
00:33:11.920 --> 00:33:13.460
Yeah, I totally agree with you.
00:33:13.460 --> 00:33:17.420
And I think one of the underlying things you're touching on here is authenticity.
00:33:17.420 --> 00:33:27.680
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.
00:33:27.680 --> 00:33:30.400
Like I would love, like I'm not against, you know, not against it.
00:33:30.400 --> 00:33:33.460
I just don't know every single little detail about this.
00:33:33.760 --> 00:33:43.340
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.
00:33:43.340 --> 00:33:43.900
Yeah.
00:33:43.900 --> 00:33:47.860
And being able to adapt, pivot and learn as well.
00:33:47.860 --> 00:33:51.000
So being able to say, hey, this is what I've learned in the past year.
00:33:51.000 --> 00:33:59.280
I have no idea what that means, Mrs. Hiring Manager, but I'm willing to learn that is incredibly important in this space.
00:33:59.280 --> 00:34:04.840
Because in all honesty, in five years, it might not be Python with the, you know, Julia may come up.
00:34:04.840 --> 00:34:07.240
R may really, really blast in again.
00:34:07.240 --> 00:34:14.300
So the ability to learn and relearn, I think, is incredibly important and demonstrating that.
00:34:14.300 --> 00:34:15.400
Yeah, absolutely.
00:34:15.400 --> 00:34:22.520
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.
00:34:22.520 --> 00:34:26.900
So another thing you touched on was do what interests you.
00:34:27.180 --> 00:34:31.360
Because then you have the enthusiasm and that really is super powerful as well.
00:34:31.360 --> 00:34:40.860
And I'm a big fan of combining what you're interested in or what you have expertise in plus programming, plus data science.
00:34:40.860 --> 00:34:43.880
And I think it really gives you like this superpower.
00:34:43.880 --> 00:34:47.800
Like you talked about this cell biology project that you had.
00:34:47.860 --> 00:34:50.060
Like they were probably like, you know, go to Hugo.
00:34:50.060 --> 00:34:56.620
He can solve the problem because he both owns, he controls the magic of programming and he can do this biology stuff.
00:34:56.620 --> 00:35:01.740
And so there's this, this really unique set of skills.
00:35:01.740 --> 00:35:06.460
Like you don't, you don't go from like a million data scientists and how do you differentiate yourself from them?
00:35:06.460 --> 00:35:12.160
You're like, I'm, I'm the data scientist that also understands wind power like nobody else.
00:35:12.160 --> 00:35:16.920
So if I'm trying to apply to like a renewable energy company, like, well, that's a clear win, right?
00:35:16.920 --> 00:35:18.020
For sure.
00:35:18.020 --> 00:35:22.700
And I definitely think you've got to be doing something you're interested in.
00:35:22.700 --> 00:35:27.520
I think a lot of people may say, I'm going to do a Kaggle competition because that's what people do.
00:35:27.520 --> 00:35:31.080
I think Kaggle competitions are great, but choose one that you're super interested in.
00:35:31.160 --> 00:35:39.360
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.
00:35:39.360 --> 00:35:48.440
If you're a movie buff, jump into the movie lens data set and try to develop a basic recommender systems, recommendation systems engine.
00:35:48.440 --> 00:36:00.900
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.
00:36:00.900 --> 00:36:05.420
understanding by segmenting or filtering or clustering these, these Yelp reviews.
00:36:05.420 --> 00:36:10.580
So doing things that interest you is incredibly powerful when developing your data science portfolio.
00:36:10.580 --> 00:36:12.760
But also it makes sense, right?
00:36:12.760 --> 00:36:18.580
In the sense that if someone's talking to you about something that they don't really care about, you're not that affected.
00:36:18.580 --> 00:36:22.600
Whereas we've all, we all love listening to people who are passionate about something, right?
00:36:22.600 --> 00:36:24.320
So that's, that's very powerful.
00:36:24.320 --> 00:36:30.420
Another approach, I actually had this conversation with a data scientist and statistician.
00:36:30.640 --> 00:36:36.780
in the R ecosystem, Mina Chetungkaya Rundle.
00:36:36.780 --> 00:36:44.000
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.
00:36:44.000 --> 00:36:45.040
And I said, what do you mean?
00:36:45.040 --> 00:36:51.820
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.
00:36:52.380 --> 00:36:53.600
Try to do that in R.
00:36:53.600 --> 00:36:57.940
Try to develop a minimal dashboard or in Python and see how that goes.
00:36:58.520 --> 00:37:08.320
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.
00:37:08.320 --> 00:37:12.300
And write something on your blog or on GitHub about that.
00:37:13.080 --> 00:37:13.400
Right.
00:37:13.400 --> 00:37:18.540
I think even, you know, companies get created out of those types of activities, right?
00:37:18.540 --> 00:37:21.160
You're like, you know, I really wish I could do this thing better for myself.
00:37:21.160 --> 00:37:21.780
And I'm like, wait a minute.
00:37:21.780 --> 00:37:23.480
This seems like everybody must have this problem.
00:37:23.480 --> 00:37:24.520
And this is a cool solution.
00:37:24.520 --> 00:37:25.480
What can I do with that?
00:37:25.480 --> 00:37:25.740
Right?
00:37:26.100 --> 00:37:26.400
Exactly.
00:37:26.400 --> 00:37:31.080
This portion of Talk Python To Me was brought to you by GoCD.
00:37:31.080 --> 00:37:39.820
GoCD is an on-premise, open-source, continuous delivery tool to help you get better visibility into and control of your team's deployments.
00:37:39.820 --> 00:37:46.380
With GoCD's comprehensive pipeline modeling, you can model complex workflows for multiple teams with ease.
00:37:46.540 --> 00:37:52.000
And GoCD's value stream map lets you track changes from commit to deploy at a glance.
00:37:52.000 --> 00:37:56.180
Say goodbye to deployment panic and hello to consistent, predictable deliveries.
00:37:56.180 --> 00:38:00.500
We all know that continuous integration is super important to the code quality of your applications.
00:38:00.500 --> 00:38:04.140
Choose the open-source local CI server, GoCD.
00:38:04.140 --> 00:38:08.060
Learn more at talkpython.fm/gocd.
00:38:08.060 --> 00:38:10.840
That's talkpython.fm/gocd.
00:38:11.340 --> 00:38:21.900
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.
00:38:21.900 --> 00:38:24.880
You know, a lot of people are out there trying to get data science jobs.
00:38:24.880 --> 00:38:31.000
But if you're data science plus, you differentiate yourself from everyone else who's speaking about data science.
00:38:31.040 --> 00:38:42.540
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.
00:38:42.540 --> 00:38:43.720
Yeah, absolutely.
00:38:43.720 --> 00:38:51.300
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.
00:38:51.300 --> 00:38:52.420
That's great.
00:38:52.420 --> 00:38:52.760
Exactly.
00:38:52.760 --> 00:38:55.360
So let's talk about programming skills a little bit.
00:38:55.360 --> 00:38:56.060
Love to.
00:38:56.460 --> 00:38:56.700
Yeah.
00:38:56.700 --> 00:39:02.660
So I'm familiar with the programming skills you need to be a web developer, but how about data scientists?
00:39:02.660 --> 00:39:05.640
Like what do you think people should really focus on there?
00:39:05.640 --> 00:39:13.560
Currently, I would learn at least one technology really well by applying it to projects, the types of projects we've just discussed.
00:39:13.560 --> 00:39:18.760
I think the two most applicable technologies right now are Python and R.
00:39:18.760 --> 00:39:30.700
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.
00:39:30.700 --> 00:39:40.820
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.
00:39:40.820 --> 00:39:44.960
I'd also suggest learning a bit about others to be able to speak the language.
00:39:44.960 --> 00:39:57.100
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.
00:39:57.100 --> 00:40:07.180
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.
00:40:07.380 --> 00:40:13.760
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?
00:40:13.760 --> 00:40:17.640
So that can definitely open your mind to like different avenues of solving these problems.
00:40:17.640 --> 00:40:22.320
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?
00:40:22.320 --> 00:40:23.240
For sure.
00:40:23.240 --> 00:40:29.360
And I think one great example of this is, so I use Python substantially more than I use R these days.
00:40:30.040 --> 00:40:38.220
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.
00:40:38.220 --> 00:40:55.220
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.
00:40:55.600 --> 00:40:57.020
Sure. Yeah, that's a good example.
00:40:57.020 --> 00:41:09.760
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.
00:41:09.760 --> 00:41:15.580
Like how important is that kind of stuff versus a good exploratory, just we're just going to find the answer.
00:41:15.580 --> 00:41:18.140
We're just going to like rummage through this data type of programming.
00:41:18.880 --> 00:41:23.600
That's an incredibly important question that I don't have a concrete answer to yet.
00:41:23.600 --> 00:41:31.620
But I think what people need to do is, I mean, you don't want to go down the hole of becoming a developer.
00:41:31.620 --> 00:41:33.040
You're trying to do a data sign.
00:41:33.040 --> 00:41:36.080
I didn't actually mean it's a hole that you enter when you're becoming a developer.
00:41:36.080 --> 00:41:42.660
But you don't want to go down the hole of, you know, developing software engineering best practices and only focusing on that.
00:41:42.760 --> 00:41:45.240
But you do need basic programming best practices.
00:41:45.240 --> 00:41:55.120
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.
00:41:55.120 --> 00:42:03.140
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.
00:42:03.140 --> 00:42:08.760
But when you start tripping over it, when it starts to become more inefficient, then perhaps start to refactor your code.
00:42:08.760 --> 00:42:15.700
Have some, you know, put your functions in modules, in .py files, for example.
00:42:15.700 --> 00:42:19.640
Have an editor that you use or notebooks.
00:42:20.000 --> 00:42:20.360
Yeah.
00:42:20.360 --> 00:42:32.800
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.
00:42:32.800 --> 00:42:40.000
Is they're really good at writing scripts that will answer their problem, but they're not super reusable.
00:42:40.000 --> 00:42:40.600
Right.
00:42:40.600 --> 00:42:45.820
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.
00:42:45.820 --> 00:42:53.500
And imagine if pandas was just crammed inside of some other application in a way that wasn't able to become this amazing thing.
00:42:53.500 --> 00:42:53.800
Right.
00:42:53.800 --> 00:42:54.480
Exactly.
00:42:54.480 --> 00:42:58.320
And that's a huge bottleneck for working scientists.
00:42:58.320 --> 00:43:13.600
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.
00:43:14.160 --> 00:43:18.320
And of course, remember that you're writing code for other people to read.
00:43:18.320 --> 00:43:21.660
But more importantly, you're writing code for future you to read.
00:43:21.660 --> 00:43:21.960
Yes.
00:43:21.960 --> 00:43:24.280
So be good on future you.
00:43:24.280 --> 00:43:25.300
Yeah.
00:43:25.300 --> 00:43:32.640
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.
00:43:32.640 --> 00:43:33.040
Right.
00:43:33.040 --> 00:43:34.340
Get ready to press the button.
00:43:34.340 --> 00:43:35.080
That's it.
00:43:35.480 --> 00:43:40.000
And I also think there are a few other technologies which we've spoken to in some sense.
00:43:40.000 --> 00:43:41.920
Git is incredibly useful.
00:43:41.920 --> 00:43:46.920
There can be a slightly steep learning curve before you see the value there.
00:43:47.440 --> 00:43:55.140
But I do think version control is incredibly necessary for data science moving forward.
00:43:55.140 --> 00:43:58.760
Learning Bash, a bit of shell, is really useful.
00:43:58.760 --> 00:44:04.760
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.
00:44:05.600 --> 00:44:09.960
I don't necessarily, you know, say, spend weeks or months using it.
00:44:09.960 --> 00:44:13.640
And I know all of this can be quite overwhelming, all these different tools.
00:44:13.640 --> 00:44:19.080
But if you know a bit of each, you'll be in good stead for getting into data science.
00:44:19.320 --> 00:44:23.280
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.
00:44:23.280 --> 00:44:25.480
So I'm just going to like study them to death.
00:44:25.480 --> 00:44:28.340
It's like, I have this problem I need to solve with Linux.
00:44:28.340 --> 00:44:31.820
Let me learn enough to make that problem, to solve that problem.
00:44:31.820 --> 00:44:33.240
And then you just keep doing this.
00:44:33.240 --> 00:44:37.880
Like you build up enough to like kind of hit most of the important areas anyway.
00:44:37.880 --> 00:44:38.680
Exactly.
00:44:38.680 --> 00:44:41.780
And once again, you're speaking to doing projects, right?
00:44:41.780 --> 00:44:45.780
Like having some particular project which you can do and learn tools around it.
00:44:46.120 --> 00:44:54.420
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.
00:44:54.420 --> 00:44:58.920
And if someone asks you about it, you can say, yeah, I know this and that about it.
00:44:58.920 --> 00:45:01.160
And you can check out more content on my blog.
00:45:01.160 --> 00:45:02.660
I think that's incredibly useful.
00:45:02.660 --> 00:45:03.980
Or on my GitHub, right?
00:45:03.980 --> 00:45:04.860
Yeah, yeah, absolutely.
00:45:04.860 --> 00:45:05.960
It's super important.
00:45:05.960 --> 00:45:10.240
So we talked about the programming stuff, kind of low level.
00:45:10.240 --> 00:45:11.600
What are the core skills?
00:45:11.600 --> 00:45:15.500
I mean, do I need to go and do I need a math degree to be a data scientist?
00:45:15.660 --> 00:45:17.220
Do I need to be a scientist, a programmer?
00:45:17.220 --> 00:45:18.420
Like what are the core skills?
00:45:18.420 --> 00:45:23.980
So you definitely don't need a math degree to be an effective data scientist.
00:45:23.980 --> 00:45:32.720
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.
00:45:32.720 --> 00:45:33.960
That's cool.
00:45:34.480 --> 00:45:41.020
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.
00:45:41.020 --> 00:45:43.920
So I'd suggest you to try and ease yourself into that stuff.
00:45:44.640 --> 00:45:56.600
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.
00:45:57.240 --> 00:45:58.480
Look at some figures.
00:45:58.480 --> 00:46:01.020
Look at some summary statistics.
00:46:01.020 --> 00:46:02.140
That type of stuff.
00:46:02.140 --> 00:46:05.700
Very related to this is data cleaning and data manipulation.
00:46:05.700 --> 00:46:11.980
Anyone who's, you know, there's the saying that 80% of my job is cleaning data and manipulating it.
00:46:12.380 --> 00:46:15.720
And it's a joke because it's more like 95% of most people's jobs.
00:46:15.720 --> 00:46:19.300
And I think this is incredibly important.
00:46:19.300 --> 00:46:25.640
Statistics, I think, is really essential in data science.
00:46:25.640 --> 00:46:31.540
But I need to be careful there because when I say statistics, I don't mean the central limit theorem.
00:46:31.540 --> 00:46:34.160
I'm talking about applied statistics or practical statistics.
00:46:34.160 --> 00:46:50.060
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.
00:46:50.060 --> 00:47:02.360
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.
00:47:02.360 --> 00:47:07.680
Right. And answering, is this a trend, you know, are these correlated or not?
00:47:07.680 --> 00:47:08.380
Things like that, right?
00:47:08.380 --> 00:47:14.600
Exactly. And thinking about how then that translates in to my initial question as well.
00:47:14.600 --> 00:47:17.740
It's not only, you know, does this look linear?
00:47:17.740 --> 00:47:19.400
It's what are the implications of this?
00:47:19.400 --> 00:47:23.200
What can I tell to someone who doesn't know something about the Pearson correlation coefficient?
00:47:23.200 --> 00:47:27.800
How can I explain this in human terms to a manager, for example?
00:47:28.540 --> 00:47:33.380
Bootstrapping is an incredibly useful technique in statistics that I think everyone should know.
00:47:33.380 --> 00:47:37.280
I might try to explain very briefly what bootstrapping is.
00:47:37.280 --> 00:47:40.160
Yeah, yeah. Go for it, because I'm not entirely sure what it is myself.
00:47:40.160 --> 00:47:43.240
So, and it means something different in the world you're from as well, I think.
00:47:43.240 --> 00:47:46.840
Yes. There's two meanings of bootstrap that I know of already.
00:47:46.840 --> 00:47:48.180
Neither of them are what I'm thinking of.
00:47:48.180 --> 00:47:49.920
So I don't think what you're thinking of.
00:47:50.160 --> 00:47:54.700
Think about this. You've got some data set, people's heights in a certain population.
00:47:54.700 --> 00:47:59.200
And you have the average. So this is the average height of this data set.
00:47:59.200 --> 00:48:02.560
But you know that, let's say you only have 10 data points or 20 data points.
00:48:02.560 --> 00:48:07.600
You know that this won't actually be the average height of the entire population, right?
00:48:08.380 --> 00:48:14.180
So what you do is, so the average height you've got has some sort of error bars associated with it.
00:48:14.180 --> 00:48:17.560
And what you want to do is estimate those error bars.
00:48:17.560 --> 00:48:22.480
And so what you do is, you resample from the sample you have.
00:48:22.480 --> 00:48:27.980
So if you have 20 data points, you can resample 20 with replacement to get a slightly different average.
00:48:27.980 --> 00:48:30.500
You can do that 100, 1000 times.
00:48:30.500 --> 00:48:34.940
And then you get some sort of distribution of potential means or potential averages.
00:48:35.100 --> 00:48:37.380
So that will tell you, that's the bootstrap of the average.
00:48:37.380 --> 00:48:41.780
That will tell you kind of the spread of possible averages in the total population.
00:48:41.780 --> 00:48:48.180
But the great thing is that this isn't just, this doesn't just apply to averages or means.
00:48:48.180 --> 00:48:50.940
You know, you can do this with any statistic under certain scenarios.
00:48:50.940 --> 00:48:54.720
And it gives you a pretty good idea of what you're looking at statistically.
00:48:54.720 --> 00:48:57.860
That's really cool. It's like meta statistics, like statistics about statistics.
00:48:57.860 --> 00:48:59.300
Exactly.
00:48:59.300 --> 00:49:03.720
And the great thing is, once you have that distribution of means, you can visualize it, right?
00:49:03.720 --> 00:49:06.000
So you get a distribution, you can have a look at it.
00:49:06.000 --> 00:49:12.280
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.
00:49:12.280 --> 00:49:16.860
But as a working data scientist, you'll be asked time and time again to explain your results.
00:49:16.860 --> 00:49:19.480
And a picture is worth a thousand lines of code.
00:49:20.240 --> 00:49:25.500
So I think that's incredibly important to become adept at data visualization.
00:49:25.500 --> 00:49:33.760
I think the fifth point, which is a term on everyone's tongue, is machine learning, the related deep learning.
00:49:33.760 --> 00:49:38.220
I think machine learning is incredibly important for working data scientists.
00:49:38.880 --> 00:49:55.920
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.
00:49:56.300 --> 00:50:04.640
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.
00:50:04.640 --> 00:50:06.500
And then really do it, right?
00:50:06.500 --> 00:50:13.040
Yeah, it's definitely one of the most mysterious and sort of new buzzy parts of data science.
00:50:13.040 --> 00:50:13.360
Exactly.
00:50:13.360 --> 00:50:20.320
And the way it's related to this, you know, kind of re-burgeoning concept of artificial intelligence is fascinating.
00:50:20.320 --> 00:50:24.580
But it's, you know, there's also a potential for a bubble.
00:50:24.580 --> 00:50:27.520
I don't want to be too harsh on it because it's incredibly important.
00:50:27.520 --> 00:50:32.080
And the effects on, you know, on society and the way we live will be huge.
00:50:32.080 --> 00:50:33.400
But we need to be careful as well.
00:50:33.400 --> 00:50:39.720
Yeah, well, I think the probably the danger is that it can become the hammer where everything becomes a nail to hit it with.
00:50:39.720 --> 00:50:42.500
There was this funny image I retweeted on Twitter yesterday.
00:50:42.500 --> 00:50:46.160
I don't know where it came from originally, but there's this huge bulldozer thing.
00:50:46.160 --> 00:50:51.640
Instead of having like a big scoop on the end of its arm, it had like a little regular person-sized shovel.
00:50:51.640 --> 00:50:53.680
And it was like digging with it.
00:50:53.680 --> 00:50:59.760
And the quote was something like, you know, machine learning solution when all you really needed was a few if statements.
00:50:59.760 --> 00:51:00.760
It's something like that.
00:51:00.760 --> 00:51:02.360
That's fantastic.
00:51:02.360 --> 00:51:05.040
Yeah, and I do see that possibly being a danger, right?
00:51:05.040 --> 00:51:06.440
It's not the only way to solve problems.
00:51:06.440 --> 00:51:10.780
But the problems that they can solve are like they were unsolvable before.
00:51:10.780 --> 00:51:14.100
So it really does have the possibility to open new doors.
00:51:14.100 --> 00:51:14.640
All right.
00:51:14.640 --> 00:51:16.660
But it's not the only only tool for it.
00:51:16.660 --> 00:51:17.820
Yeah.
00:51:17.820 --> 00:51:20.000
I mean, you know, the pendulum swings both ways.
00:51:20.000 --> 00:51:24.960
And part of the reason it's really buzzy now is because it has been incredibly effective, as we've seen.
00:51:24.960 --> 00:51:25.320
Yeah.
00:51:25.320 --> 00:51:28.520
And these companies are saying, hey, we have tons of data and we don't fully understand it.
00:51:28.520 --> 00:51:33.040
Could this maybe be our magic silver bullet to unlock something we didn't know about?
00:51:33.040 --> 00:51:33.860
Yeah.
00:51:33.860 --> 00:51:35.200
And also you said story.
00:51:35.200 --> 00:51:35.500
Yeah.
00:51:35.500 --> 00:51:36.260
Storytelling, right?
00:51:37.160 --> 00:51:38.420
Storytelling is incredibly important.
00:51:38.420 --> 00:51:48.780
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.
00:51:48.880 --> 00:51:53.500
But when developing a data science project, you're introducing them to a data set.
00:51:53.500 --> 00:51:55.780
You're showing them exploratory data analysis.
00:51:55.780 --> 00:51:59.300
You're potentially showing them some statistical inference, machine learning pipelines.
00:51:59.980 --> 00:52:08.020
So being able to explain in a variety of terms what your data science story is, is incredibly important.
00:52:08.020 --> 00:52:11.700
And to give takeaways at the end, to give an introduction, this type of stuff.
00:52:11.700 --> 00:52:15.620
So considering it a story and also thinking who your target audience is.
00:52:15.620 --> 00:52:22.340
If you want to, you know, write a blog post which a hiring manager can understand, that's one thing.
00:52:22.360 --> 00:52:29.600
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.
00:52:29.600 --> 00:52:31.540
So just kind of think about that.
00:52:31.540 --> 00:52:32.440
Practice that.
00:52:32.440 --> 00:52:35.380
And read what other people do as well.
00:52:35.380 --> 00:52:36.680
There's a website.
00:52:36.680 --> 00:52:37.840
I can't remember what it is.
00:52:37.840 --> 00:52:43.540
But it's called something like, you know, 100 Interesting Jupyter Notebooks in Data Science.
00:52:43.540 --> 00:52:44.580
Yeah, I think I've seen that.
00:52:44.580 --> 00:52:45.220
That's really cool.
00:52:45.220 --> 00:52:45.900
Yeah.
00:52:45.900 --> 00:52:48.000
Yeah, that definitely is a great place.
00:52:48.060 --> 00:52:55.240
I think Jupyter Notebooks really are powerful and they've brought storytelling to code in a way that just wasn't there before.
00:52:55.240 --> 00:52:56.600
Absolutely.
00:52:56.600 --> 00:53:04.300
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.
00:53:04.300 --> 00:53:09.140
And this was actually one of Jake Vanderpluss's points, right, in his PyCon keynote where, you know, someone said to him,
00:53:09.140 --> 00:53:11.120
Oh, I can't believe you use Jupyter.
00:53:11.120 --> 00:53:14.180
It's so slow and beefy.
00:53:14.180 --> 00:53:16.540
And he was like, Oh, I never thought about that.
00:53:16.680 --> 00:53:19.420
But that doesn't affect my workflow.
00:53:19.420 --> 00:53:26.000
It's really about, you know, speed of development for me, not speed of execution, I think, was his term.
00:53:26.000 --> 00:53:27.500
And that he can go in there.
00:53:27.500 --> 00:53:37.620
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.
00:53:37.620 --> 00:53:44.980
Now, one of the greatest things, of course, now is that has been for some time that GitHub renders Jupyter Notebooks as well.
00:53:44.980 --> 00:53:53.100
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.
00:53:53.140 --> 00:53:53.760
Oh, I didn't know that.
00:53:53.760 --> 00:53:54.300
That's awesome.
00:53:54.300 --> 00:53:54.880
Yeah.
00:53:54.880 --> 00:53:55.220
Yeah.
00:53:55.220 --> 00:53:55.720
Very cool.
00:53:55.720 --> 00:53:58.840
So I guess we're kind of getting near the end.
00:53:58.840 --> 00:54:00.740
Probably we've got to wrap it up a bit.
00:54:00.740 --> 00:54:10.420
But one of the final things we should focus on is, you know, it's a time of unparalleled information and learning resources.
00:54:10.740 --> 00:54:13.840
I mean, 20 years ago, it was get a book or get a degree.
00:54:13.840 --> 00:54:16.160
There's a whole lot more than that now, right?
00:54:16.160 --> 00:54:16.880
Absolutely.
00:54:16.880 --> 00:54:21.820
So you guys at DataCamp already have, you have a ton of courses for data scientists.
00:54:21.820 --> 00:54:22.860
Yeah.
00:54:22.860 --> 00:54:27.580
So I definitely think one way to keep up to date with what's happening in the field is online education.
00:54:27.580 --> 00:54:30.860
And there are lots of platforms for this which offer different things.
00:54:30.860 --> 00:54:37.620
So I think Coursera and edX, you know, open the world of online education, not only in data science and programming,
00:54:37.880 --> 00:54:45.580
but everything from, you know, the humanities to space exploration to politics, you know, and it's an incredible platform.
00:54:45.580 --> 00:54:46.940
Oh, sorry.
00:54:46.940 --> 00:54:48.020
Both of them are.
00:54:48.020 --> 00:54:48.220
Yeah.
00:54:48.220 --> 00:54:55.240
What we do at DataCamp is we're building a vertical platform for people to learn data science.
00:54:55.240 --> 00:55:07.100
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.
00:55:07.700 --> 00:55:10.880
And you get automated personalized feedback.
00:55:10.880 --> 00:55:19.940
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.
00:55:19.940 --> 00:55:22.840
DataCamp will say, hey, you passed in this argument.
00:55:22.840 --> 00:55:28.880
Why don't you try doing this instead in order to import it, read the CSV correctly?
00:55:29.540 --> 00:55:32.800
So we have a mixture of videos and interactive coding sessions.
00:55:32.800 --> 00:55:34.900
There are lots of other great places.
00:55:34.900 --> 00:55:39.300
Kevin Markham has his data school, which is great for Pythonic data science.
00:55:39.300 --> 00:55:40.140
Yeah, Kevin Markham.
00:55:40.140 --> 00:55:41.940
Yeah, Kevin Markham is doing really awesome stuff.
00:55:41.940 --> 00:55:42.560
Shout out to Kevin.
00:55:42.560 --> 00:55:44.360
I was just talking to him yesterday, actually.
00:55:44.360 --> 00:55:46.760
And he and I have done a little bit together.
00:55:46.760 --> 00:55:51.280
He's got some really cool stuff for data science and Python for sure.
00:55:51.720 --> 00:55:52.040
Absolutely.
00:55:52.040 --> 00:55:56.020
And of course, your courses, your talk Python courses for pure Python.
00:55:56.020 --> 00:55:56.880
Everyone should do this.
00:55:56.880 --> 00:55:57.540
Well, thank you very much.
00:55:57.540 --> 00:55:58.640
I appreciate the shout out.
00:55:58.640 --> 00:55:59.000
That's awesome.
00:55:59.000 --> 00:55:59.400
Of course.
00:56:00.120 --> 00:56:00.360
All right.
00:56:00.360 --> 00:56:05.420
Well, hopefully people who are getting started in data science or the programs, they want
00:56:05.420 --> 00:56:06.360
to move into data science.
00:56:06.360 --> 00:56:07.940
Hopefully this has been really helpful.
00:56:07.940 --> 00:56:13.620
I think there's a pretty concrete roadmap of steps that you can take to get there.
00:56:13.620 --> 00:56:14.960
So thanks for laying that out for us.
00:56:14.960 --> 00:56:16.060
Absolutely.
00:56:16.060 --> 00:56:19.640
And thanks for coming up with this idea for us to have this chat as well.
00:56:19.640 --> 00:56:20.460
Yeah, it's been really cool.
00:56:20.460 --> 00:56:21.060
Yeah, it's super fun.
00:56:21.060 --> 00:56:22.860
I think everyone's going to enjoy it, I think.
00:56:22.860 --> 00:56:23.500
All right.
00:56:23.500 --> 00:56:26.240
So before I let you get out of here, though, you've got two questions to answer.
00:56:27.120 --> 00:56:30.820
First of all, if you're going to write some code, namely Python code, really, what editor
00:56:30.820 --> 00:56:31.460
do you open up?
00:56:31.460 --> 00:56:34.260
When I use an editor, which I do for scripting, I'll use Atom.
00:56:34.260 --> 00:56:38.400
But as we've said, for most data science, I do it in Jupyter Notebooks.
00:56:38.400 --> 00:56:39.740
I love Jupyter Notebooks.
00:56:39.740 --> 00:56:45.680
Also, I'd recommend very soon, or even now, people checking out JupyterLab.
00:56:45.680 --> 00:56:46.740
I don't know JupyterLab.
00:56:46.740 --> 00:56:47.400
Tell us about it.
00:56:47.400 --> 00:56:49.600
JupyterLab's amazing.
00:56:49.600 --> 00:56:56.240
It's really a modular infrastructure for data science and scientific computing.
00:56:56.500 --> 00:57:03.260
So you open up your JupyterLab kernel, and you can have a Jupyter Notebook in there.
00:57:03.260 --> 00:57:04.720
You can have a terminal in there.
00:57:04.720 --> 00:57:08.420
You can have a markdown file, which you see rendered immediately.
00:57:08.420 --> 00:57:10.080
You can even have notebooks.
00:57:10.080 --> 00:57:15.700
You and I can open Jupyter Notebooks in our respective JupyterLab environments and collaborate
00:57:15.700 --> 00:57:17.980
on them in real time.
00:57:17.980 --> 00:57:21.720
And you can paste code into the chat that then I can paste into my notebook.
00:57:22.040 --> 00:57:24.460
So it's really kind of a new modular infrastructure.
00:57:24.460 --> 00:57:25.240
That's awesome.
00:57:25.240 --> 00:57:27.680
It's like social Jupyter.
00:57:27.680 --> 00:57:29.120
Yeah, absolutely.
00:57:29.120 --> 00:57:29.860
That sounds great.
00:57:29.860 --> 00:57:31.260
So that's super exciting.
00:57:31.260 --> 00:57:35.380
And the development around that is really strong.
00:57:35.380 --> 00:57:36.000
Nice.
00:57:36.000 --> 00:57:36.640
Okay.
00:57:36.640 --> 00:57:39.080
So notable PyPI package.
00:57:39.080 --> 00:57:39.580
Okay.
00:57:39.580 --> 00:57:40.600
So there are so many.
00:57:40.600 --> 00:57:42.120
It's so hard.
00:57:42.240 --> 00:57:44.780
It's like 120,000 almost now.
00:57:44.780 --> 00:57:45.260
It's insane.
00:57:45.260 --> 00:57:49.040
I actually, I'll mention one that I recently discovered, and I've only played around with,
00:57:49.040 --> 00:57:49.940
but it seems super cool.
00:57:49.940 --> 00:57:51.100
It's called Newspaper.
00:57:51.100 --> 00:57:52.440
And I've been thinking about it a bit recently.
00:57:52.440 --> 00:57:58.460
I spent a lot of my time trying to scrape HTML and prettify it.
00:57:58.460 --> 00:58:03.900
So, and for that, I use, generally, I use requests and BeautifulSoup, which those are huge.
00:58:03.900 --> 00:58:05.660
But that isn't, those aren't the ones I'm talking about at the moment.
00:58:05.660 --> 00:58:06.460
This is called Newspaper.
00:58:06.460 --> 00:58:10.980
And it's a really simple API for scraping articles and curating them and doing natural
00:58:10.980 --> 00:58:11.700
language processing.
00:58:11.700 --> 00:58:17.160
So you can, you know, get in touch with the New York Times or whatever it may be.
00:58:17.160 --> 00:58:18.880
Scrape the article really easily.
00:58:18.880 --> 00:58:23.160
There are some natural language processing methods, title methods, text methods, that type of stuff,
00:58:23.160 --> 00:58:27.460
where it'll, you know, I think the method, I probably won't get this right, but it's something
00:58:27.460 --> 00:58:32.460
like NLP method, and it spits out keywords and topics and that type of stuff.
00:58:32.460 --> 00:58:33.520
So I've only played around with it.
00:58:33.520 --> 00:58:35.620
Yeah, it's an incredible library.
00:58:35.620 --> 00:58:37.720
Yeah, I just discovered it recently as well.
00:58:37.720 --> 00:58:43.020
And basically, the idea is, instead of combining requests, plus BeautifulSoup, and then you
00:58:43.020 --> 00:58:46.780
have to, you get the text and the semantic markup, and you got to do whatever you're going to
00:58:46.780 --> 00:58:46.980
do.
00:58:46.980 --> 00:58:50.760
It's like, you can just point it at an article and say, who was the author?
00:58:50.760 --> 00:58:51.960
When was this published?
00:58:51.960 --> 00:58:52.420
Exactly.
00:58:52.420 --> 00:58:53.020
What are the keywords?
00:58:53.020 --> 00:58:57.280
And you can point it at the homepage, like the homepage of the New York Times to say,
00:58:57.280 --> 00:58:58.500
what are the articles on this page?
00:58:58.500 --> 00:58:59.060
It's crazy.
00:58:59.060 --> 00:58:59.500
It's awesome.
00:58:59.500 --> 00:59:06.100
And it deals with date times in a really intuitive, nice way, which date times are the bane of
00:59:06.100 --> 00:59:07.500
my existence a lot of the time.
00:59:07.500 --> 00:59:09.260
Why are date times so hard?
00:59:09.260 --> 00:59:10.280
They are, though.
00:59:10.280 --> 00:59:11.260
It really is tricky.
00:59:11.260 --> 00:59:16.740
So I think James Gleick has this thing where it's an article about how there should just be
00:59:16.740 --> 00:59:17.380
one time zone.
00:59:17.380 --> 00:59:19.780
I'm not going to go into that, but I'm just putting that out there.
00:59:20.280 --> 00:59:23.920
It's not obvious who would be the center of that time zone, but...
00:59:23.920 --> 00:59:25.580
Yeah, that's a big debate there, right?
00:59:25.580 --> 00:59:29.480
But I wake up at two in the afternoon, and then I get up, right?
00:59:29.480 --> 00:59:31.520
Like, that would totally simplify things.
00:59:31.520 --> 00:59:35.040
His argument is that time zone is a historical artifact that we need to get rid of.
00:59:35.040 --> 00:59:38.140
But that's my notable PyPI package.
00:59:38.140 --> 00:59:43.300
I just wanted to give a few shout outs to a bunch of others from the data science Python
00:59:43.300 --> 00:59:43.740
stack.
00:59:43.740 --> 00:59:49.940
And this list is by no means exhaustive, but I use Pandas, scikit-learn, NumPy is huge.
00:59:50.420 --> 00:59:54.780
Matplotlib, Seaborn, Altair, and Bokeh are all great for data viz.
00:59:54.780 --> 00:59:56.560
DAS for distributed computing.
00:59:56.560 --> 00:59:58.600
PyMC3, stats models.
00:59:58.600 --> 01:00:06.120
These are all really interesting and core elements of the data science Python stack that I use and
01:00:06.120 --> 01:00:06.320
love.
01:00:06.320 --> 01:00:08.600
Yeah, those are all very, very good ones.
01:00:08.600 --> 01:00:09.340
So awesome.
01:00:09.340 --> 01:00:10.800
Yeah, newspaper.
01:00:10.800 --> 01:00:12.020
Lots of fun with that one.
01:00:12.020 --> 01:00:12.960
All right.
01:00:12.960 --> 01:00:14.140
So here you go.
01:00:14.140 --> 01:00:14.980
Final call to action.
01:00:14.980 --> 01:00:16.900
People, they want to get into data science.
01:00:16.900 --> 01:00:17.640
What do you say?
01:00:17.640 --> 01:00:19.380
Get out there and do things.
01:00:19.700 --> 01:00:20.600
Play to your own strengths.
01:00:20.600 --> 01:00:21.500
Be brave.
01:00:21.500 --> 01:00:27.160
And something we haven't really chatted about, realize that imposter syndrome is a real thing
01:00:27.160 --> 01:00:27.940
for everybody.
01:00:27.940 --> 01:00:35.340
So at the inaugural JupyterCon this year, Fernando Perez, the creator of iPython, for real, the
01:00:35.340 --> 01:00:40.840
creator of iPython and co-leader of Project Jupyter, encouraged everyone to realize that
01:00:40.840 --> 01:00:44.380
everyone has imposter syndrome and that he himself has imposter syndrome.
01:00:44.380 --> 01:00:49.400
So anytime you think you're an imposter, remember that Fernando Perez feels the same way.
01:00:49.400 --> 01:00:51.940
He's out there changing the world and so can you, right?
01:00:51.940 --> 01:00:52.520
Exactly.
01:00:52.520 --> 01:00:53.040
Awesome.
01:00:53.040 --> 01:00:53.500
That's it.
01:00:53.500 --> 01:00:53.840
All right.
01:00:53.840 --> 01:00:54.680
Well, great to talk with you.
01:00:54.680 --> 01:00:56.380
And thanks for coming on the show.
01:00:56.380 --> 01:00:57.260
Such a pleasure.
01:00:57.260 --> 01:00:57.820
Thank you.
01:00:59.120 --> 01:01:01.860
This has been another episode of Talk Python To Me.
01:01:02.660 --> 01:01:04.920
Today's guest has been Hugo Brown Anderson.
01:01:04.920 --> 01:01:08.560
And this episode has been brought to you by Rollbar and GoCD.
01:01:08.560 --> 01:01:11.200
Rollbar takes the pain out of errors.
01:01:11.200 --> 01:01:16.260
They give you the context and insight you need to quickly locate and fix errors that might have
01:01:16.260 --> 01:01:18.900
gone unnoticed until your users complain, of course.
01:01:19.540 --> 01:01:23.720
As Talk Python To Me listeners, track a ridiculous number of errors for free at
01:01:23.720 --> 01:01:26.060
rollbar.com slash Talk Python To Me.
01:01:26.060 --> 01:01:30.720
GoCD is the on-premise, open-source, continuous delivery server.
01:01:30.720 --> 01:01:34.860
Want to improve your deployment workflow but keep your code and builds in-house?
01:01:34.860 --> 01:01:41.200
Check out GoCD at talkpython.fm/gocd and take control over your process.
01:01:41.200 --> 01:01:43.460
Are you or a colleague trying to learn Python?
01:01:43.460 --> 01:01:48.120
Have you tried books and videos that just left you bored by covering topics point by point?
01:01:48.220 --> 01:01:52.160
Well, check out my online course, Python Jumpstart, by building 10 apps at
01:01:52.160 --> 01:01:56.760
talkpython.fm/course to experience a more engaging way to learn Python.
01:01:56.760 --> 01:01:59.720
And if you're looking for something a little more advanced,
01:01:59.720 --> 01:02:04.080
try my Write Pythonic Code course at talkpython.fm/pythonic.
01:02:04.080 --> 01:02:06.800
Be sure to subscribe to the show.
01:02:06.800 --> 01:02:09.000
Open your favorite podcatcher and search for Python.
01:02:09.000 --> 01:02:10.240
We should be right at the top.
01:02:10.240 --> 01:02:13.580
You can also find the iTunes feed at /itunes,
01:02:13.580 --> 01:02:18.100
Google Play feed at /play, and direct RSS feed at /rss.
01:02:18.100 --> 01:02:19.540
on talkpython.fm.
01:02:19.540 --> 01:02:21.440
This is your host, Michael Kennedy.
01:02:21.440 --> 01:02:22.800
Thanks so much for listening.
01:02:22.800 --> 01:02:23.880
I really appreciate it.
01:02:23.880 --> 01:02:25.820
Now get out there and write some Python code.
01:02:25.820 --> 01:02:26.320
I'll see you next time.
01:02:26.320 --> 01:02:26.440
Bye.
01:02:26.440 --> 01:02:26.440
Bye.
01:02:26.440 --> 01:02:26.640
Bye.
01:02:26.640 --> 01:02:46.440
Thank you.
01:02:46.440 --> 01:03:16.420
Thank you.
00:00:00.001 --> 00:00:03.280
Data science is one of the fastest growing segments of software development,
00:00:03.280 --> 00:00:07.980
but it takes a slightly different set of skills than your average full-stack development job.
00:00:07.980 --> 00:00:13.280
This means there's a big opportunity to get into data science, but how do you do it? How do you get
00:00:13.280 --> 00:00:18.100
into the industry? Well, that's what Hugo Brown Anderson is here to tell us all about.
00:00:18.100 --> 00:00:23.900
This is Talk Python To Me, episode 139, recorded November 7th, 2017.
00:00:23.900 --> 00:00:43.240
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
00:00:43.240 --> 00:00:48.000
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm at
00:00:48.000 --> 00:00:53.540
mkennedy. Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on
00:00:53.540 --> 00:00:58.360
Twitter via at Talk Python. Talk Python To Me is partially supported by our training courses.
00:00:58.360 --> 00:01:04.080
Have you tried to learn Python but got stuck or lost focus? We know how it feels to try and jam
00:01:04.080 --> 00:01:10.560
fact after fact, loop construct after turn hair expression, into your head. At best, it's boring.
00:01:10.560 --> 00:01:15.220
At worst, it can turn you off programming altogether. That's why we built our course,
00:01:15.220 --> 00:01:20.520
Python Jumpstart by Building 10 Apps. This course guides you through carefully planned applications.
00:01:20.520 --> 00:01:26.600
It starts simple but progresses to quite real apps. Best of all, you won't be learning dry
00:01:26.600 --> 00:01:31.060
facts. You'll be learning like the pros do by building real applications and learning in
00:01:31.060 --> 00:01:37.080
context. If you want to start building with Python, just visit talkpython.fm/course to get
00:01:37.080 --> 00:01:40.080
started. Hugo, welcome to Talk Python.
00:01:40.080 --> 00:01:42.640
Thanks, Michael. Great to be on the show.
00:01:42.840 --> 00:01:49.320
It's fabulous to have you here. I think it's time that we do a dive into how people become
00:01:49.320 --> 00:01:55.080
data scientists and how they get into data science. And really, I've done a couple of shows on becoming
00:01:55.080 --> 00:01:59.720
programmers, but that's not exactly the same thing as becoming a data scientist in the sense. So,
00:01:59.720 --> 00:02:04.180
I'm super excited to talk to you about all these different paths into data science and how people
00:02:04.180 --> 00:02:06.380
can kind of level up in that space.
00:02:06.980 --> 00:02:11.100
I'm really excited also because I've been thinking about this a lot lately, of course.
00:02:11.100 --> 00:02:16.420
Yeah, of course. It's a really important topic. I mean, data science, I really attribute Python's
00:02:16.420 --> 00:02:21.220
meteoric growth over the last three years to data science. I know it's growing in other areas and
00:02:21.220 --> 00:02:27.180
it's playing important parts all over. But data science, the rise of Python in data science and the
00:02:27.180 --> 00:02:30.600
rise of Python becoming more popular, those two graphs seem like the same.
00:02:31.320 --> 00:02:36.560
Absolutely. And you can see the Python community embracing this as well. I mean, I was at PyCon in
00:02:36.560 --> 00:02:41.520
Portland where you are this year and we had two keynotes, although many keynotes, but Jake
00:02:41.520 --> 00:02:47.940
Vanderplass and Catherine Huff seeing, you know, such data science luminaries and thought leaders being
00:02:47.940 --> 00:02:52.960
invited to something like PyCon to give keynotes more and more is really exciting.
00:02:53.660 --> 00:02:59.500
Yeah. And Jake VanderPlas's keynote especially struck a nerve with me because it really opened
00:02:59.500 --> 00:03:06.620
my eyes to, you know, basically his message was this Python ecosystem is a mosaic and there's many
00:03:06.620 --> 00:03:12.440
different ways in which people are using Python and basically many different things that Python means
00:03:12.440 --> 00:03:18.320
to different people. And the way that maybe a web developer working on a large scale web app works
00:03:18.320 --> 00:03:23.200
is really different than the way a data scientist exploring astronomical data would work.
00:03:23.280 --> 00:03:28.480
But these are both super valid and reinforcing ways to work. And I really liked his message.
00:03:28.480 --> 00:03:28.760
For sure.
00:03:28.760 --> 00:03:35.300
Yeah. Awesome. Okay. So before we get into pass into data science, let's get your story. How did you get
00:03:35.300 --> 00:03:36.120
into programming in Python?
00:03:36.120 --> 00:03:42.680
Okay. So at grad school, I'm from Australia. I went to the University of New South Wales for grad school.
00:03:42.680 --> 00:03:48.740
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
00:03:48.740 --> 00:03:58.640
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.
00:03:58.640 --> 00:04:06.080
I was working in cell biology, in fact, in Germany, and I was working in biophysics. So thinking about kind of the physical,
00:04:06.080 --> 00:04:10.640
mechanical principles of how cells grow, reproduce, that type of stuff.
00:04:11.280 --> 00:04:12.040
It sounds really interesting.
00:04:12.040 --> 00:04:23.140
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.
00:04:24.180 --> 00:04:39.420
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.
00:04:39.560 --> 00:04:49.320
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.
00:04:49.740 --> 00:05:00.720
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.
00:05:00.720 --> 00:05:10.340
So I started learning Python and and R to to do this. I learned online by online courses, a lot of web web resources.
00:05:10.340 --> 00:05:19.200
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 the fly.
00:05:19.200 --> 00:05:27.760
Yeah, that's really cool. And I definitely see this working with scientists or in these types of areas. Very important.
00:05:27.760 --> 00:05:35.240
How how much programming did the biologists do? Like, did they program in MATLAB? Were they just Excel people?
00:05:35.240 --> 00:05:40.840
Like, how much were they kind of taking care of themselves? And how much were you solving their like science problems?
00:05:41.500 --> 00:05:46.580
So the answer then, which this was now, well, seven years ago, I didn't quite realize that.
00:05:46.580 --> 00:05:58.180
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.
00:05:58.180 --> 00:06:05.740
Or how do we estimate these statistical parameters? How do I get the mean out of this data set using using MATLAB?
00:06:05.740 --> 00:06:07.780
Something I saw.
00:06:07.780 --> 00:06:17.020
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.
00:06:17.020 --> 00:06:24.220
biology is R a lot of the time, but more and more Python in physics and at R in biology.
00:06:24.220 --> 00:06:27.900
And I think people just started seeing seeing the value.
00:06:27.900 --> 00:06:34.300
Also, I think there's there's a challenge that MATLAB is incredible for a number of things.
00:06:34.300 --> 00:06:39.500
But part of their their business means they're embedded in institutions.
00:06:39.500 --> 00:06:42.300
And it's it's really tough for institutions to break away.
00:06:42.300 --> 00:06:50.460
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.
00:06:50.460 --> 00:06:56.320
But seeing kind of the resurgence of this, this these open source libraries for academic research is really exciting.
00:06:56.320 --> 00:07:05.620
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.
00:07:05.620 --> 00:07:07.520
Like open source was not so much of a thing.
00:07:07.700 --> 00:07:11.420
It was, you know, your alternative was probably like C++ or something. Right.
00:07:11.420 --> 00:07:13.980
Absolutely. I mean, maybe Fortran. Right.
00:07:13.980 --> 00:07:16.920
But it was not they were not great tools.
00:07:16.920 --> 00:07:19.060
So it was a super clear choice to choose MATLAB.
00:07:19.060 --> 00:07:24.800
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.
00:07:24.800 --> 00:07:27.660
You know, there's probably a tendency to just kind of stick with that.
00:07:27.660 --> 00:07:31.700
Your your students come on to help you like, hey, you got to learn MATLAB because that's where I work.
00:07:31.700 --> 00:07:33.940
Right. Something like this. That's correct.
00:07:35.440 --> 00:07:37.840
But I do think there's some really interesting.
00:07:37.840 --> 00:07:43.420
You know, growth in around sort of trying to displace MATLAB.
00:07:43.420 --> 00:07:51.560
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.
00:07:52.220 --> 00:07:57.160
But yeah, I think it's it's really powerful to see people coming in learning Python.
00:07:57.160 --> 00:08:04.000
I think one of the major advantages that people get is you can take that into general industry when you're done.
00:08:04.000 --> 00:08:07.740
Like if you go and study applied math, but then you actually don't become a professor.
00:08:07.740 --> 00:08:09.700
What are you going to do? Right.
00:08:09.700 --> 00:08:15.780
Well, the knowing Python has a lot more doors that get open for you than knowing MATLAB.
00:08:16.340 --> 00:08:19.020
Yeah. And you can collaborate with anyone around the world as well.
00:08:19.020 --> 00:08:24.300
Somebody to to read and execute your code doesn't require them to have a proprietary license.
00:08:24.300 --> 00:08:26.140
Yeah, that's a really good point.
00:08:26.140 --> 00:08:32.120
I think, you know, the cost of these proprietary systems like MATLAB or Maple, like you mentioned, are really problematic.
00:08:32.120 --> 00:08:36.060
Right. Like I did some work with Wavelet decomposition.
00:08:37.060 --> 00:08:40.400
And that was like a two thousand dollar add on to MATLAB.
00:08:40.400 --> 00:08:43.500
I mean, that's a crazy amount of money for one license.
00:08:43.500 --> 00:08:44.780
Absolutely. Right.
00:08:44.780 --> 00:08:46.600
That's probably like pip install something now.
00:08:46.600 --> 00:08:47.700
That's right.
00:08:47.700 --> 00:08:51.540
And so I mentioned Katie Huff's keynote at PyCon.
00:08:51.880 --> 00:09:11.900
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.
00:09:11.900 --> 00:09:24.380
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.
00:09:24.380 --> 00:09:27.040
It's incredibly important that all of our tools and techniques are open.
00:09:27.040 --> 00:09:36.760
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.
00:09:36.760 --> 00:09:37.340
Right. Yeah.
00:09:37.340 --> 00:09:38.100
Yeah, that's awesome.
00:09:38.100 --> 00:09:41.460
So that was how you got into Python and programming.
00:09:41.620 --> 00:09:42.140
How about now?
00:09:42.140 --> 00:09:42.800
What do you do today?
00:09:42.800 --> 00:09:49.660
So I work for a startup called DataCamp and we do online education for data science.
00:09:49.660 --> 00:09:57.460
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.
00:09:57.460 --> 00:10:02.220
Until recently, so I've recently changed positions in the company.
00:10:02.220 --> 00:10:04.400
Until recently, I was working on curriculum building.
00:10:04.400 --> 00:10:07.320
So when I joined the company, we had two Python courses.
00:10:07.820 --> 00:10:13.980
And over the past year and a half, I built it out with colleagues and external instructors to around 30 courses.
00:10:13.980 --> 00:10:27.520
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.
00:10:28.380 --> 00:10:44.700
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.
00:10:44.900 --> 00:10:51.500
I think this is, you know, I actually did basically the same job, but for a different focus curriculum.
00:10:51.500 --> 00:10:59.060
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.
00:10:59.060 --> 00:11:06.740
But it was really fun to sort of look broadly at a technology, think about how do people get started?
00:11:07.000 --> 00:11:08.580
How do they become experts?
00:11:08.580 --> 00:11:09.760
What are the important parts?
00:11:09.760 --> 00:11:12.120
And really try to piece that together as like a jigsaw puzzle.
00:11:12.120 --> 00:11:13.120
It's a fun job.
00:11:13.120 --> 00:11:13.900
It's super fun.
00:11:13.900 --> 00:11:18.100
And particularly, just trying to match up all those different parts of curriculum building.
00:11:18.100 --> 00:11:26.300
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.
00:11:26.300 --> 00:11:29.720
So mixing up high level curriculum building with being in the weeds.
00:11:29.720 --> 00:11:31.220
Yeah, that's awesome.
00:11:31.220 --> 00:11:33.980
It's definitely a social side of programming.
00:11:33.980 --> 00:11:34.500
For sure.
00:11:34.980 --> 00:11:42.520
And now I've transitioned to a job working as a data scientist, a data science advocate and evangelist for DataCamp.
00:11:42.520 --> 00:11:52.140
So I'm doing data science on a daily basis, writing articles about data science for our community, pedagogical articles, technical blog posts, topical.
00:11:52.140 --> 00:11:59.760
So currently I'm writing and developing an analysis of the Me Too movement on Twitter.
00:11:59.760 --> 00:12:04.500
So seeing how that is developed using the Twitter API and Python and a package called Tweepy.
00:12:04.500 --> 00:12:06.880
Yeah, so doing data science.
00:12:06.880 --> 00:12:10.580
For example, the Twitter analysis I just spoke about.
00:12:10.580 --> 00:12:20.680
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.
00:12:20.680 --> 00:12:25.060
So I think that's a lot of things.
00:12:25.060 --> 00:12:25.900
I think that's a lot of things that I'm doing.
00:12:25.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:26.900
I think that's a lot of things that I'm doing.
00:12:26.900 --> 00:12:27.520
I think that's a lot of things that I'm doing.
00:12:27.520 --> 00:12:28.900
I think that's a lot of things that I'm doing.
00:12:28.900 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:37.120
I think that's a lot of things that I'm doing.
00:12:37.120 --> 00:12:39.120
I think that's a lot of things that I'm doing.
00:12:39.120 --> 00:12:41.120
I think that's a lot of things that I'm doing.
00:12:41.120 --> 00:12:43.120
I think that's a lot of things that I'm doing.
00:12:43.120 --> 00:12:44.120
I think that's a lot of things that I'm doing.
00:12:44.120 --> 00:12:45.120
I think that's a lot of things that I'm doing.
00:12:45.120 --> 00:12:48.760
a student imports pandas as PD.
00:12:48.760 --> 00:12:52.620
What are the top three mistakes they make straight away?
00:12:52.620 --> 00:12:56.740
And these types of things will be of interest to us, to our students, and also to the open
00:12:56.740 --> 00:12:58.740
source community at large.
00:12:58.740 --> 00:13:00.240
Yeah, I think that's really interesting.
00:13:00.240 --> 00:13:04.240
These ideas of helping people with that first step.
00:13:04.240 --> 00:13:09.760
Because a lot of times getting into a new technology or a new library, it's those first steps that
00:13:09.760 --> 00:13:11.240
are the hardest to take.
00:13:11.240 --> 00:13:12.240
Absolutely.
00:13:12.240 --> 00:13:12.240
Nice.
00:13:12.240 --> 00:13:14.240
And are you also doing a podcast?
00:13:14.240 --> 00:13:15.080
Exactly.
00:13:15.080 --> 00:13:20.680
I'm currently developing a podcast called Data Framed, which is about data science,
00:13:20.680 --> 00:13:25.800
about what data scientists do on a daily basis, and about the societal impact of data science,
00:13:25.800 --> 00:13:27.160
which is really exciting.
00:13:27.160 --> 00:13:32.200
Because I think it can be of great value to our students, and it can be of great value to
00:13:32.200 --> 00:13:33.480
a lot of working data scientists.
00:13:33.480 --> 00:13:38.600
So for example, data scientists working at Uber really may have no idea what data scientists
00:13:38.600 --> 00:13:43.160
working at Netflix or data scientists working in astronomy do on a daily basis.
00:13:43.160 --> 00:13:48.760
Because it's a term that encompasses so much of what working professionals do.
00:13:48.760 --> 00:13:52.760
I think it's really exciting for me and will be for the community as well.
00:13:52.760 --> 00:13:55.720
Yeah, I think that's awesome to shine a light on these different areas.
00:13:55.720 --> 00:14:00.440
I mean, the stuff that you're doing at Uber, like you said, is really, really different than maybe
00:14:00.440 --> 00:14:10.040
trying, if you're working at, say, a police department, trying to understand how police violence or violence
00:14:10.040 --> 00:14:11.320
against police happens.
00:14:11.320 --> 00:14:12.840
And these are really, really different.
00:14:12.840 --> 00:14:16.120
But maybe there's lessons to be learned from one to be applied to the other.
00:14:16.120 --> 00:14:16.680
Absolutely.
00:14:16.680 --> 00:14:22.680
And all the way from that to city transit data, how I live in New York, and New York
00:14:22.680 --> 00:14:31.160
transit has a huge API, the MTA, where you can go and access data with respect to how the subway
00:14:31.160 --> 00:14:33.720
works and how decisions are implemented around that.
00:14:33.720 --> 00:14:35.720
Yeah, that's really interesting.
00:14:35.720 --> 00:14:41.000
I bet there's some awesome data science stories to be told out of the public transit of these major cities.
00:14:41.000 --> 00:14:41.640
Absolutely.
00:14:41.640 --> 00:14:51.880
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.
00:14:51.880 --> 00:14:53.240
So that's a great blog to check out.
00:14:53.240 --> 00:14:58.200
Yeah, there's probably a lot of data science going on there in New York around the stock market as well.
00:14:58.200 --> 00:15:00.040
Yeah, absolutely.
00:15:00.040 --> 00:15:00.520
Oh, man.
00:15:00.520 --> 00:15:03.000
Of course, they don't share that so much.
00:15:03.000 --> 00:15:03.960
Yeah.
00:15:03.960 --> 00:15:06.920
Once you find something that works, they keep that quiet, right?
00:15:06.920 --> 00:15:07.960
Yeah, that's it.
00:15:07.960 --> 00:15:13.000
The other thing I've been doing recently is these Facebook Live Code Along sessions.
00:15:13.000 --> 00:15:17.000
So I'm a huge fan of live coding.
00:15:17.000 --> 00:15:21.160
I know it's probably slightly masochistic, but I don't have a huge problem.
00:15:21.160 --> 00:15:25.560
One of my favorite things about live coding, one of the most valuable moments for me and people
00:15:25.560 --> 00:15:32.200
coding along is when I make a mistake that I can't figure out and I need to go and use a search engine
00:15:32.200 --> 00:15:33.160
and go and stack overflow.
00:15:33.160 --> 00:15:36.440
And people see me kind of figure it out in real time.
00:15:36.440 --> 00:15:40.680
And actually, I think Jake VanderPlus one up that one.
00:15:40.680 --> 00:15:47.240
So where he was doing a live coding session and found a bug in scikit-learn and went in
00:15:47.240 --> 00:15:52.600
and issued a PR in the coding session that fixed the bug.
00:15:52.600 --> 00:15:54.360
And that's online somewhere.
00:15:54.360 --> 00:15:55.480
That is awesome.
00:15:55.480 --> 00:15:56.040
Yeah.
00:15:56.040 --> 00:16:01.720
But the Facebook stuff's great because Facebook's really pushing their live sessions at the moment.
00:16:01.720 --> 00:16:09.560
So everyone who follows us, we've got now, I think, 330,000-odd followers on Facebook.
00:16:09.560 --> 00:16:14.600
When I start a live code along session, they all get notified and a whole bunch of them jump on and
00:16:14.600 --> 00:16:16.440
interact and it's super fun.
00:16:16.440 --> 00:16:18.120
And they can comment just below the video.
00:16:18.120 --> 00:16:22.280
I've got a colleague there who filters the questions and I answer some of them.
00:16:22.280 --> 00:16:23.880
And that's also a lot of fun.
00:16:23.880 --> 00:16:25.720
That's a really interesting trend.
00:16:25.720 --> 00:16:32.200
I haven't seen a whole lot of that previously, but I did just talk about on Python bytes last week,
00:16:32.200 --> 00:16:43.480
this AI framework that you can basically plug your AI into almost any game and then teach it to play that game.
00:16:43.480 --> 00:16:47.800
And the guy who runs that, he actually has a Twitch channel.
00:16:47.800 --> 00:16:54.360
And some of his Twitch code along building up these AIs and teaching them to play various games sessions are like six hours long.
00:16:55.080 --> 00:16:55.800
That's really cool.
00:16:55.800 --> 00:16:58.280
And it's, it was really, I'd never really watched one of those.
00:16:58.280 --> 00:16:59.640
It's really quite interesting, actually.
00:16:59.640 --> 00:16:59.880
Yeah.
00:16:59.880 --> 00:17:02.200
It's a whole different world, isn't it?
00:17:02.200 --> 00:17:03.320
Yeah, it sure is.
00:17:03.320 --> 00:17:07.080
I mean, a lot of the stuff that's online is really polished or somewhat polished,
00:17:07.080 --> 00:17:11.720
but it's at least intended to be polished and like packaged up for like, here's a 20 minute little thing.
00:17:11.720 --> 00:17:15.960
Whereas, you know, those are more like, let's just explore this until we have the answer.
00:17:15.960 --> 00:17:16.440
That's cool.
00:17:16.440 --> 00:17:17.640
Yeah, exactly.
00:17:17.640 --> 00:17:18.520
Nice.
00:17:18.520 --> 00:17:18.760
All right.
00:17:18.760 --> 00:17:22.680
So careers into data science, career paths into data science.
00:17:22.680 --> 00:17:23.960
Let's, let's talk about those.
00:17:23.960 --> 00:17:31.720
I think we'll, in this conversation, move to maybe more technical, more specifically data sciencey material.
00:17:31.720 --> 00:17:42.600
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.
00:17:42.600 --> 00:17:50.760
There are lots of budding data scientists, aspiring data scientists, working data scientists, hiring managers out there.
00:17:50.760 --> 00:17:56.360
And getting in touch with them and putting yourself out there is incredibly important.
00:17:56.360 --> 00:18:03.880
So to that end, I'd really suggest starting on some basic data science projects, if there's your first foray into it.
00:18:03.880 --> 00:18:07.400
And we can talk about what that could look like in a second and create a public profile.
00:18:07.400 --> 00:18:10.360
Get yourself a GitHub account to do that.
00:18:10.520 --> 00:18:14.520
Maybe have a little blog where every now and then you post some analysis you've done.
00:18:14.520 --> 00:18:20.280
Even if it's a basic exploratory data analysis, that's great.
00:18:20.280 --> 00:18:26.520
And put some words in there, put some images and figure out how to communicate around this.
00:18:26.520 --> 00:18:27.880
Go to conferences.
00:18:27.880 --> 00:18:30.540
Go to meetups and talk to people.
00:18:30.540 --> 00:18:31.800
Hackathons are also fantastic.
00:18:31.800 --> 00:18:32.080
Yeah.
00:18:32.080 --> 00:18:39.900
Hackathons, that's definitely a nice way to meet people who are, you know, more than just sitting next to you at a presentation.
00:18:40.040 --> 00:18:42.760
But actually, you know, you're kind of working together a little bit.
00:18:42.760 --> 00:18:43.160
That's cool.
00:18:43.160 --> 00:18:44.080
Yeah.
00:18:44.080 --> 00:18:49.120
I think I definitely encourage people to create some kind of blog or write stuff.
00:18:49.120 --> 00:18:50.420
I think that that's really valuable.
00:18:50.420 --> 00:18:55.300
And it doesn't have to be, you don't have to wait until you're an expert for sure at like something.
00:18:55.300 --> 00:19:01.460
It could be you're solving some problem and you couldn't find a way online how to solve that particular problem.
00:19:01.460 --> 00:19:03.160
So, you know, blog about that, right?
00:19:03.160 --> 00:19:05.460
Talk about what you tried, what didn't work.
00:19:05.460 --> 00:19:11.480
There's a lot of people who would be interested in following along this I'm getting started sort of story.
00:19:11.480 --> 00:19:12.500
Absolutely.
00:19:12.500 --> 00:19:16.320
And also, do a bit of self-promotion or marketing.
00:19:16.320 --> 00:19:19.580
I'm not suggesting like, you know, get your paid ads on Facebook.
00:19:19.580 --> 00:19:30.860
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.
00:19:30.860 --> 00:19:37.800
There are also a number of blogs that have really wide distribution where you can write analyses for them as well.
00:19:37.800 --> 00:19:43.360
I mean, DataCamp, we've got a community section where we solicit external contributions.
00:19:43.360 --> 00:19:47.720
The Open Data Science Conference, ODSC, has a blog where they do the same.
00:19:47.880 --> 00:19:54.620
So, once you feel a bit more comfortable with your material, definitely put it out there.
00:19:54.620 --> 00:19:57.600
And I know that that can be difficult as well.
00:19:57.600 --> 00:20:03.300
So, there's certainly a bit of a loss of ego that needs to occur in this scenario.
00:20:03.300 --> 00:20:07.620
But just remember, there's a lot of interesting stuff going on out there and you can be part of it.
00:20:08.020 --> 00:20:13.140
Absolutely. And, well, I think it's really, really important on how you frame what you've created and presented.
00:20:13.140 --> 00:20:18.440
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.
00:20:18.440 --> 00:20:21.500
But if you're really upfront, like, look, I'm really just getting started, everyone.
00:20:21.500 --> 00:20:23.780
But here is something that I couldn't find any help with.
00:20:23.780 --> 00:20:25.600
And here's what I figured out and I thought it was awesome.
00:20:25.600 --> 00:20:27.760
Like, nobody's going to knock you for that, right?
00:20:28.560 --> 00:20:28.960
Absolutely.
00:20:28.960 --> 00:20:32.980
Well, except for maybe on Reddit, they might send something angry.
00:20:32.980 --> 00:20:35.400
But you've got to have to take it.
00:20:35.400 --> 00:20:36.900
There'll always be at least one troll, right?
00:20:36.900 --> 00:20:38.120
That's right. That's right.
00:20:38.120 --> 00:20:40.160
But, you know, it's totally, totally worth it.
00:20:40.160 --> 00:20:44.500
This portion of Talk Python To Me has been brought to you by Rollbar.
00:20:44.500 --> 00:20:48.180
One of the frustrating things about being a developer is dealing with errors.
00:20:48.180 --> 00:20:53.220
Relying on users to report errors, digging through log files, trying to debug issues,
00:20:53.220 --> 00:20:57.180
or getting millions of alerts just flooding your inbox and ruining your day.
00:20:57.620 --> 00:21:01.360
With Rollbar's full-stack error monitoring, you get the context, insight,
00:21:01.360 --> 00:21:03.940
and control you need to find and fix bugs faster.
00:21:03.940 --> 00:21:07.900
Adding Rollbar to your Python app is as easy as pip install Rollbar.
00:21:07.900 --> 00:21:12.140
You can start tracking production errors and deployments in eight minutes or less.
00:21:12.140 --> 00:21:16.320
Are you considering self-hosting tools for security or compliance reasons?
00:21:16.320 --> 00:21:19.900
Then you should really check out Rollbar's Compliance SaaS option.
00:21:19.900 --> 00:21:24.420
Get advanced security features and meet compliance without the hassle of self-hosting,
00:21:24.420 --> 00:21:29.280
including HIPAA, ISO 27001, Privacy Shield, and more.
00:21:29.280 --> 00:21:30.660
They'd love to give you a demo.
00:21:30.660 --> 00:21:32.360
Give Rollbar a try today.
00:21:32.360 --> 00:21:36.040
Go to talkpython.fm/Rollbar and check them out.
00:21:36.740 --> 00:21:41.100
The other thing you brought up is a GitHub repo or a GitHub profile.
00:21:41.100 --> 00:21:42.560
And I think that that's super important.
00:21:42.560 --> 00:21:49.260
One of the things about GitHub is you can't fake the commit history over time very easily,
00:21:49.260 --> 00:21:49.540
right?
00:21:49.540 --> 00:21:53.820
Like if you say, I've been doing this for three years, but your GitHub repo only has like
00:21:53.820 --> 00:21:56.640
a week of activity, that's not a great sign.
00:21:56.640 --> 00:22:02.780
So if you're planning this, like, you know, do that stuff early so that it can, you know,
00:22:02.780 --> 00:22:06.400
sort of create this history that is proof of what you've been doing.
00:22:06.400 --> 00:22:07.160
Absolutely.
00:22:07.160 --> 00:22:13.160
And something I did when I was starting up my profile on GitHub, I had a sticker, a sticky,
00:22:13.160 --> 00:22:17.460
like a literal sticky on my computer screen, not the app stickies.
00:22:17.460 --> 00:22:20.260
But I had a sticky that said commit to GitHub today.
00:22:20.260 --> 00:22:22.400
Just like I didn't actually do it every day.
00:22:22.780 --> 00:22:29.380
But you can actually see before I joined DataCamp that there was a lot of public activity I was
00:22:29.380 --> 00:22:29.740
doing.
00:22:29.740 --> 00:22:31.880
One, because I really enjoyed it.
00:22:31.880 --> 00:22:35.140
But two, because I made an active decision to put myself out there.
00:22:35.140 --> 00:22:37.420
Yeah, it makes a huge, huge difference.
00:22:37.420 --> 00:22:42.280
So conferences, what are some of the data science conferences that people should go to?
00:22:42.280 --> 00:22:47.920
I really like the Open Data Science Conference, ODSC, which I mentioned earlier.
00:22:48.380 --> 00:22:51.580
And in fact, that's where I met the DataCamp people.
00:22:51.580 --> 00:22:57.880
And I had two, well, three, let's say two and a half job offers from going to the going
00:22:57.880 --> 00:22:58.640
to ODSC.
00:22:58.640 --> 00:23:06.040
I also, I also think not only conferences, but but meetups are incredibly useful.
00:23:06.040 --> 00:23:08.620
I know it depends which city you're in.
00:23:08.620 --> 00:23:11.160
But in New York, there are a lot of interesting meetups.
00:23:11.160 --> 00:23:15.120
A lot of a lot of people go there after work because they love data science.
00:23:15.120 --> 00:23:19.080
And even more so, you have hiring managers and recruiters get up.
00:23:19.080 --> 00:23:23.380
Literally, the organizers at these meetups say at the start or the end, hey, anyone who has
00:23:23.380 --> 00:23:25.000
a job, stand up and tell us what it is.
00:23:25.000 --> 00:23:28.800
Yeah, I see that definitely in the Python programming meetups as well.
00:23:28.800 --> 00:23:29.300
And I agree.
00:23:29.300 --> 00:23:36.380
That's a great way to get connected with your local people, not just people in the industry,
00:23:36.380 --> 00:23:38.180
but people down the street, right?
00:23:38.180 --> 00:23:39.200
Absolutely.
00:23:39.200 --> 00:23:45.700
And the great thing about data science recruiters and data science people in HR and managers
00:23:45.700 --> 00:23:49.800
is that there are a significant number of jobs out there.
00:23:49.800 --> 00:23:52.060
So they're really interested in the conversation.
00:23:52.060 --> 00:23:58.560
As someone approaching data science at the moment, you are in a relative position of power.
00:23:58.560 --> 00:23:59.840
I mean, it is competitive.
00:23:59.840 --> 00:24:04.720
But compared to the recruiters, they'll be definitely up for a conversation in a way that they wouldn't
00:24:04.720 --> 00:24:06.360
in other industries currently.
00:24:06.360 --> 00:24:11.700
And I remember I had a conversation with this great guy from Goldman Sachs where I just asked
00:24:11.700 --> 00:24:16.720
him up front, you know, what are mistakes that you've had people make in interviews that
00:24:16.720 --> 00:24:18.280
I should not make?
00:24:18.280 --> 00:24:19.880
And he gave me lots of great feedback.
00:24:19.880 --> 00:24:24.360
One example, he said, if you don't know something, just admit you don't know it and say that's
00:24:24.360 --> 00:24:26.080
a gap and I'm looking forward to filling that.
00:24:26.080 --> 00:24:30.420
He had guys where it was one guy he asked what the bias variance trade-off meant.
00:24:30.420 --> 00:24:35.000
And it was on a call and he heard the guy start typing and then answered the question.
00:24:35.200 --> 00:24:35.600
Okay.
00:24:35.600 --> 00:24:36.480
Yeah.
00:24:36.480 --> 00:24:37.120
Yeah.
00:24:37.120 --> 00:24:43.540
Pro tip, use a touch pad, some kind of touch device if you're going to Google during your
00:24:43.540 --> 00:24:44.020
interview.
00:24:44.020 --> 00:24:45.160
Exactly.
00:24:45.160 --> 00:24:50.980
The other thing, when you go to conferences and hackathons and this type of stuff, conferences
00:24:50.980 --> 00:24:53.080
are also great because they have sprints.
00:24:53.540 --> 00:24:59.600
A lot of the big, you know, packages, whether it be scikit-learn, pandas, gen-sim, project
00:24:59.600 --> 00:25:02.360
Jupyter, which we'll talk about later on, I think.
00:25:02.360 --> 00:25:06.940
They have sprints when the conference ends where you can go and help contribute to the
00:25:06.940 --> 00:25:07.340
project.
00:25:07.940 --> 00:25:09.560
The communities are super open.
00:25:09.560 --> 00:25:10.900
You can start.
00:25:10.900 --> 00:25:15.080
They actually encourage you to start by just helping out with documentation, which is a
00:25:15.080 --> 00:25:19.960
huge bottleneck at a certain point in open source software development.
00:25:19.960 --> 00:25:24.280
So you can actually be an active member of these development communities immediately without
00:25:24.280 --> 00:25:30.160
being like, oh, I don't know how to, you know, define this class correctly.
00:25:30.560 --> 00:25:30.800
Yeah.
00:25:30.800 --> 00:25:36.300
Well, I think another huge benefit of that is if you do want to have your public profile
00:25:36.300 --> 00:25:43.760
have, you know, PRs against say pandas or scikit-learn or something like that, those are
00:25:43.760 --> 00:25:47.260
mature, polished libraries that are hard to just get into yourself.
00:25:47.260 --> 00:25:50.640
But if you go to a sprint and sit down with somebody who's an expert and you guys do it
00:25:50.640 --> 00:25:55.280
together, well, there's a pretty quick way to get up to speed to where that you can start
00:25:55.280 --> 00:25:56.260
doing those things if you want.
00:25:56.260 --> 00:25:58.040
That's one of your paths you want to follow.
00:25:58.040 --> 00:25:59.120
And you're right.
00:25:59.120 --> 00:26:02.980
You're there at these sprints and you're able, you know, best case scenario to be pair
00:26:02.980 --> 00:26:09.500
programming with core developers on pandas or scikit-learn or numpy, right?
00:26:09.500 --> 00:26:10.500
That's crazy.
00:26:10.500 --> 00:26:11.080
Yeah.
00:26:11.080 --> 00:26:14.740
And so when you go to that job interview and they say, well, how does it really work inside
00:26:14.740 --> 00:26:15.960
pandas when you do this?
00:26:15.960 --> 00:26:17.000
Like, which would be better?
00:26:17.000 --> 00:26:17.640
Should I do this or that?
00:26:17.640 --> 00:26:19.540
You're like, well, internally it does this.
00:26:19.540 --> 00:26:20.580
And so here's why you do that.
00:26:20.580 --> 00:26:21.780
Like, that's an incredible answer.
00:26:21.780 --> 00:26:25.020
And you could totally get those kinds of insights from these sprints.
00:26:25.020 --> 00:26:25.560
I agree.
00:26:25.560 --> 00:26:25.980
Absolutely.
00:26:25.980 --> 00:26:30.980
And what that also demonstrates is that you're entrepreneurial, which I think, you know,
00:26:30.980 --> 00:26:34.840
a lot of people are looking for these days, someone who will, you know, take responsibility
00:26:34.840 --> 00:26:36.460
and run with it.
00:26:36.460 --> 00:26:36.780
Yeah.
00:26:36.780 --> 00:26:40.720
That puts you in a pretty thin group already, which is great.
00:26:40.720 --> 00:26:41.440
Yeah.
00:26:42.360 --> 00:26:47.060
You also said that reading blogs and things like that pretty helpful.
00:26:47.060 --> 00:26:48.620
Absolutely.
00:26:48.620 --> 00:26:50.120
Read as widely as possible.
00:26:50.120 --> 00:26:57.700
I think reading blogs, getting on newsletters, following people on Twitter is one of my greatest,
00:26:57.700 --> 00:26:58.560
greatest resources.
00:26:58.560 --> 00:27:00.760
So we've chatted about Jake VanderPlas.
00:27:01.200 --> 00:27:07.400
On the R side, you have Mara Averick, Hadley Wickham, Hilary Mason's great, Dave Robinson on the R side.
00:27:07.400 --> 00:27:12.700
I follow all these people, so you may as well follow me, Hugo Bowne, because I retweet a lot of this stuff.
00:27:12.700 --> 00:27:14.080
Catches the important retweets, right?
00:27:14.080 --> 00:27:15.300
As well.
00:27:15.300 --> 00:27:21.380
We're really arcing up on the Datacamp community at the moment.
00:27:21.380 --> 00:27:24.760
And as I said, ODSC has a fantastic blog.
00:27:24.760 --> 00:27:26.880
Python Weekly.
00:27:26.880 --> 00:27:28.980
There are so many different places.
00:27:28.980 --> 00:27:35.640
And I'll include a significant number of links in the notes of this podcast on this stuff as well.
00:27:35.640 --> 00:27:36.660
Yeah.
00:27:36.660 --> 00:27:38.980
I find that Twitter is super, super valuable.
00:27:38.980 --> 00:27:43.600
I also find Reddit, actually, if you don't mind, a few angry comments every now and then.
00:27:43.600 --> 00:27:47.380
Certainly, the Reddit community is great and really smart.
00:27:47.380 --> 00:27:53.400
So you can drop in on the data science one or the Python one and pick up a lot there.
00:27:53.400 --> 00:27:54.160
Yeah.
00:27:54.160 --> 00:27:55.860
Cool.
00:27:55.860 --> 00:28:02.460
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.
00:28:02.460 --> 00:28:10.400
But eventually, probably most people's goals are to go get some kind of working data science job, right?
00:28:10.400 --> 00:28:10.820
Yes.
00:28:10.820 --> 00:28:13.480
So you already brought up recruiters.
00:28:13.480 --> 00:28:16.480
And I think that's certainly one of the possibilities.
00:28:16.860 --> 00:28:26.660
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.
00:28:26.660 --> 00:28:30.020
You know, like a recruiter can help you get inside.
00:28:30.020 --> 00:28:35.060
If you have a friend that you know works at that place, ask for an introduction, right?
00:28:35.200 --> 00:28:47.120
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?
00:28:47.120 --> 00:28:47.400
Anyone?
00:28:47.400 --> 00:28:50.200
And then it becomes this open search, right?
00:28:50.280 --> 00:28:56.240
So how do you get inside this first round before it becomes just posted on the career page?
00:28:56.240 --> 00:29:06.900
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.
00:29:07.700 --> 00:29:14.260
When there are jobs going around, there are a lot of working data scientists from all levels at these hackathons.
00:29:14.260 --> 00:29:24.940
I also think more specific online platforms, AngelList, if you want to work with startups, there's a lot of stuff happening there.
00:29:25.400 --> 00:29:34.660
And LinkedIn, in North America anyway, making your LinkedIn profile as attractive as possible will definitely help.
00:29:34.660 --> 00:29:39.440
And you'll get inbound mail coming as opposed to needing to go to the apply page.
00:29:39.440 --> 00:29:43.920
Yeah, and you're in a much better place when people are reaching out to you rather than the other way around, for sure.
00:29:43.920 --> 00:29:45.860
I think that's totally right.
00:29:45.860 --> 00:29:46.380
Yeah.
00:29:46.380 --> 00:29:53.760
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.
00:29:53.760 --> 00:30:00.560
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.
00:30:00.560 --> 00:30:01.760
How interesting.
00:30:01.760 --> 00:30:03.440
Yeah, that's pretty easy to do, right?
00:30:03.440 --> 00:30:04.460
Yeah, exactly.
00:30:04.460 --> 00:30:06.520
And generally, they love it.
00:30:06.520 --> 00:30:07.700
We got one recently at Datacamp.
00:30:07.700 --> 00:30:09.340
We were like, wow, this looks really nice.
00:30:09.340 --> 00:30:10.420
And then we're like, wait a second.
00:30:10.420 --> 00:30:11.860
Oh, they've done that.
00:30:11.860 --> 00:30:14.680
And when we realized that they'd done that, it was even stronger.
00:30:14.680 --> 00:30:15.660
Yeah.
00:30:15.660 --> 00:30:21.800
Well, I think, you know, I did, I was on the receiving end of people applying for jobs for quite a while.
00:30:21.800 --> 00:30:22.680
Yeah.
00:30:22.680 --> 00:30:30.440
To me, when I saw something come in and it was just a standard resume or like, here, I'm applying for this job.
00:30:30.440 --> 00:30:31.560
Here's my info.
00:30:31.900 --> 00:30:39.160
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.
00:30:39.160 --> 00:30:48.760
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.
00:30:48.760 --> 00:30:51.160
It was like, well, here's a copy of my recycle bin.
00:30:51.160 --> 00:30:51.560
Next.
00:30:51.560 --> 00:30:52.160
Exactly.
00:30:52.380 --> 00:30:54.500
And it's the same when recruiters reach out to you.
00:30:54.500 --> 00:30:59.420
I mean, you know, I get recruiter mail on LinkedIn, which is like, your skill set matches our company.
00:30:59.420 --> 00:31:00.360
And I'm like, come on.
00:31:00.360 --> 00:31:00.800
Right?
00:31:00.800 --> 00:31:01.740
Yeah, exactly.
00:31:01.740 --> 00:31:05.480
It's not even, hey, you've done this cool stuff in Python and whatever it may be.
00:31:05.600 --> 00:31:12.860
But this actually speaks to something else, which is making it particular to the company and also making it particular to yourself.
00:31:12.860 --> 00:31:18.780
So being yourself when doing data science or trying to build your portfolio is incredibly important.
00:31:18.780 --> 00:31:38.720
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.
00:31:38.720 --> 00:31:39.040
Right?
00:31:39.040 --> 00:31:44.640
And when you're trying to teach people data science and they feel that that's, that's totally overwhelming.
00:31:44.640 --> 00:31:47.680
I'm actually overwhelmed by that, that sentence I just, just stated.
00:31:47.900 --> 00:31:50.560
Sounds like a PhD in math plus programming, right?
00:31:50.560 --> 00:31:51.360
Exactly right.
00:31:51.360 --> 00:31:54.740
And you don't need to be an expert at machine learning algorithms.
00:31:54.740 --> 00:31:59.480
For example, to be an effective data scientist, that will make you some sort of effective data scientist.
00:31:59.480 --> 00:32:03.560
But playing to your own strengths and realizing that data scientists work in teams.
00:32:03.560 --> 00:32:15.840
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.
00:32:16.020 --> 00:32:19.740
And on his, I was chatting with him about his team.
00:32:19.740 --> 00:32:25.680
And he said, if everyone he hired, like knew the ins and outs of support vector machines, that would be a horrible team.
00:32:25.680 --> 00:32:31.020
He's got one person who is great at statistical data visualization.
00:32:31.020 --> 00:32:34.460
He has one person who's a data engineer and fantastic at that.
00:32:34.460 --> 00:32:40.640
He has one person who does the machine learning stuff and also has a background in math and physics.
00:32:40.640 --> 00:32:44.900
So he can actually explain the ins and outs of these algorithms to, to the rest of the team.
00:32:44.900 --> 00:32:48.520
I actually forget what the fourth, fourth person does.
00:32:48.600 --> 00:32:55.760
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.
00:32:55.760 --> 00:33:02.480
And for that reason, I'd suggest to anyone entering data science to do things that interest you, have a play around.
00:33:02.480 --> 00:33:11.740
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.
00:33:11.920 --> 00:33:13.460
Yeah, I totally agree with you.
00:33:13.460 --> 00:33:17.420
And I think one of the underlying things you're touching on here is authenticity.
00:33:17.420 --> 00:33:27.680
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.
00:33:27.680 --> 00:33:30.400
Like I would love, like I'm not against, you know, not against it.
00:33:30.400 --> 00:33:33.460
I just don't know every single little detail about this.
00:33:33.760 --> 00:33:43.340
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.
00:33:43.340 --> 00:33:43.900
Yeah.
00:33:43.900 --> 00:33:47.860
And being able to adapt, pivot and learn as well.
00:33:47.860 --> 00:33:51.000
So being able to say, hey, this is what I've learned in the past year.
00:33:51.000 --> 00:33:59.280
I have no idea what that means, Mrs. Hiring Manager, but I'm willing to learn that is incredibly important in this space.
00:33:59.280 --> 00:34:04.840
Because in all honesty, in five years, it might not be Python with the, you know, Julia may come up.
00:34:04.840 --> 00:34:07.240
R may really, really blast in again.
00:34:07.240 --> 00:34:14.300
So the ability to learn and relearn, I think, is incredibly important and demonstrating that.
00:34:14.300 --> 00:34:15.400
Yeah, absolutely.
00:34:15.400 --> 00:34:22.520
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.
00:34:22.520 --> 00:34:26.900
So another thing you touched on was do what interests you.
00:34:27.180 --> 00:34:31.360
Because then you have the enthusiasm and that really is super powerful as well.
00:34:31.360 --> 00:34:40.860
And I'm a big fan of combining what you're interested in or what you have expertise in plus programming, plus data science.
00:34:40.860 --> 00:34:43.880
And I think it really gives you like this superpower.
00:34:43.880 --> 00:34:47.800
Like you talked about this cell biology project that you had.
00:34:47.860 --> 00:34:50.060
Like they were probably like, you know, go to Hugo.
00:34:50.060 --> 00:34:56.620
He can solve the problem because he both owns, he controls the magic of programming and he can do this biology stuff.
00:34:56.620 --> 00:35:01.740
And so there's this, this really unique set of skills.
00:35:01.740 --> 00:35:06.460
Like you don't, you don't go from like a million data scientists and how do you differentiate yourself from them?
00:35:06.460 --> 00:35:12.160
You're like, I'm, I'm the data scientist that also understands wind power like nobody else.
00:35:12.160 --> 00:35:16.920
So if I'm trying to apply to like a renewable energy company, like, well, that's a clear win, right?
00:35:16.920 --> 00:35:18.020
For sure.
00:35:18.020 --> 00:35:22.700
And I definitely think you've got to be doing something you're interested in.
00:35:22.700 --> 00:35:27.520
I think a lot of people may say, I'm going to do a Kaggle competition because that's what people do.
00:35:27.520 --> 00:35:31.080
I think Kaggle competitions are great, but choose one that you're super interested in.
00:35:31.160 --> 00:35:39.360
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.
00:35:39.360 --> 00:35:48.440
If you're a movie buff, jump into the movie lens data set and try to develop a basic recommender systems, recommendation systems engine.
00:35:48.440 --> 00:36:00.900
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.
00:36:00.900 --> 00:36:05.420
understanding by segmenting or filtering or clustering these, these Yelp reviews.
00:36:05.420 --> 00:36:10.580
So doing things that interest you is incredibly powerful when developing your data science portfolio.
00:36:10.580 --> 00:36:12.760
But also it makes sense, right?
00:36:12.760 --> 00:36:18.580
In the sense that if someone's talking to you about something that they don't really care about, you're not that affected.
00:36:18.580 --> 00:36:22.600
Whereas we've all, we all love listening to people who are passionate about something, right?
00:36:22.600 --> 00:36:24.320
So that's, that's very powerful.
00:36:24.320 --> 00:36:30.420
Another approach, I actually had this conversation with a data scientist and statistician.
00:36:30.640 --> 00:36:36.780
in the R ecosystem, Mina Chetungkaya Rundle.
00:36:36.780 --> 00:36:44.000
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.
00:36:44.000 --> 00:36:45.040
And I said, what do you mean?
00:36:45.040 --> 00:36:51.820
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.
00:36:52.380 --> 00:36:53.600
Try to do that in R.
00:36:53.600 --> 00:36:57.940
Try to develop a minimal dashboard or in Python and see how that goes.
00:36:58.520 --> 00:37:08.320
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.
00:37:08.320 --> 00:37:12.300
And write something on your blog or on GitHub about that.
00:37:13.080 --> 00:37:13.400
Right.
00:37:13.400 --> 00:37:18.540
I think even, you know, companies get created out of those types of activities, right?
00:37:18.540 --> 00:37:21.160
You're like, you know, I really wish I could do this thing better for myself.
00:37:21.160 --> 00:37:21.780
And I'm like, wait a minute.
00:37:21.780 --> 00:37:23.480
This seems like everybody must have this problem.
00:37:23.480 --> 00:37:24.520
And this is a cool solution.
00:37:24.520 --> 00:37:25.480
What can I do with that?
00:37:25.480 --> 00:37:25.740
Right?
00:37:26.100 --> 00:37:26.400
Exactly.
00:37:26.400 --> 00:37:31.080
This portion of Talk Python To Me was brought to you by GoCD.
00:37:31.080 --> 00:37:39.820
GoCD is an on-premise, open-source, continuous delivery tool to help you get better visibility into and control of your team's deployments.
00:37:39.820 --> 00:37:46.380
With GoCD's comprehensive pipeline modeling, you can model complex workflows for multiple teams with ease.
00:37:46.540 --> 00:37:52.000
And GoCD's value stream map lets you track changes from commit to deploy at a glance.
00:37:52.000 --> 00:37:56.180
Say goodbye to deployment panic and hello to consistent, predictable deliveries.
00:37:56.180 --> 00:38:00.500
We all know that continuous integration is super important to the code quality of your applications.
00:38:00.500 --> 00:38:04.140
Choose the open-source local CI server, GoCD.
00:38:04.140 --> 00:38:08.060
Learn more at talkpython.fm/gocd.
00:38:08.060 --> 00:38:10.840
That's talkpython.fm/gocd.
00:38:11.340 --> 00:38:21.900
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.
00:38:21.900 --> 00:38:24.880
You know, a lot of people are out there trying to get data science jobs.
00:38:24.880 --> 00:38:31.000
But if you're data science plus, you differentiate yourself from everyone else who's speaking about data science.
00:38:31.040 --> 00:38:42.540
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.
00:38:42.540 --> 00:38:43.720
Yeah, absolutely.
00:38:43.720 --> 00:38:51.300
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.
00:38:51.300 --> 00:38:52.420
That's great.
00:38:52.420 --> 00:38:52.760
Exactly.
00:38:52.760 --> 00:38:55.360
So let's talk about programming skills a little bit.
00:38:55.360 --> 00:38:56.060
Love to.
00:38:56.460 --> 00:38:56.700
Yeah.
00:38:56.700 --> 00:39:02.660
So I'm familiar with the programming skills you need to be a web developer, but how about data scientists?
00:39:02.660 --> 00:39:05.640
Like what do you think people should really focus on there?
00:39:05.640 --> 00:39:13.560
Currently, I would learn at least one technology really well by applying it to projects, the types of projects we've just discussed.
00:39:13.560 --> 00:39:18.760
I think the two most applicable technologies right now are Python and R.
00:39:18.760 --> 00:39:30.700
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.
00:39:30.700 --> 00:39:40.820
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.
00:39:40.820 --> 00:39:44.960
I'd also suggest learning a bit about others to be able to speak the language.
00:39:44.960 --> 00:39:57.100
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.
00:39:57.100 --> 00:40:07.180
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.
00:40:07.380 --> 00:40:13.760
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?
00:40:13.760 --> 00:40:17.640
So that can definitely open your mind to like different avenues of solving these problems.
00:40:17.640 --> 00:40:22.320
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?
00:40:22.320 --> 00:40:23.240
For sure.
00:40:23.240 --> 00:40:29.360
And I think one great example of this is, so I use Python substantially more than I use R these days.
00:40:30.040 --> 00:40:38.220
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.
00:40:38.220 --> 00:40:55.220
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.
00:40:55.600 --> 00:40:57.020
Sure. Yeah, that's a good example.
00:40:57.020 --> 00:41:09.760
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.
00:41:09.760 --> 00:41:15.580
Like how important is that kind of stuff versus a good exploratory, just we're just going to find the answer.
00:41:15.580 --> 00:41:18.140
We're just going to like rummage through this data type of programming.
00:41:18.880 --> 00:41:23.600
That's an incredibly important question that I don't have a concrete answer to yet.
00:41:23.600 --> 00:41:31.620
But I think what people need to do is, I mean, you don't want to go down the hole of becoming a developer.
00:41:31.620 --> 00:41:33.040
You're trying to do a data sign.
00:41:33.040 --> 00:41:36.080
I didn't actually mean it's a hole that you enter when you're becoming a developer.
00:41:36.080 --> 00:41:42.660
But you don't want to go down the hole of, you know, developing software engineering best practices and only focusing on that.
00:41:42.760 --> 00:41:45.240
But you do need basic programming best practices.
00:41:45.240 --> 00:41:55.120
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.
00:41:55.120 --> 00:42:03.140
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.
00:42:03.140 --> 00:42:08.760
But when you start tripping over it, when it starts to become more inefficient, then perhaps start to refactor your code.
00:42:08.760 --> 00:42:15.700
Have some, you know, put your functions in modules, in .py files, for example.
00:42:15.700 --> 00:42:19.640
Have an editor that you use or notebooks.
00:42:20.000 --> 00:42:20.360
Yeah.
00:42:20.360 --> 00:42:32.800
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.
00:42:32.800 --> 00:42:40.000
Is they're really good at writing scripts that will answer their problem, but they're not super reusable.
00:42:40.000 --> 00:42:40.600
Right.
00:42:40.600 --> 00:42:45.820
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.
00:42:45.820 --> 00:42:53.500
And imagine if pandas was just crammed inside of some other application in a way that wasn't able to become this amazing thing.
00:42:53.500 --> 00:42:53.800
Right.
00:42:53.800 --> 00:42:54.480
Exactly.
00:42:54.480 --> 00:42:58.320
And that's a huge bottleneck for working scientists.
00:42:58.320 --> 00:43:13.600
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.
00:43:14.160 --> 00:43:18.320
And of course, remember that you're writing code for other people to read.
00:43:18.320 --> 00:43:21.660
But more importantly, you're writing code for future you to read.
00:43:21.660 --> 00:43:21.960
Yes.
00:43:21.960 --> 00:43:24.280
So be good on future you.
00:43:24.280 --> 00:43:25.300
Yeah.
00:43:25.300 --> 00:43:32.640
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.
00:43:32.640 --> 00:43:33.040
Right.
00:43:33.040 --> 00:43:34.340
Get ready to press the button.
00:43:34.340 --> 00:43:35.080
That's it.
00:43:35.480 --> 00:43:40.000
And I also think there are a few other technologies which we've spoken to in some sense.
00:43:40.000 --> 00:43:41.920
Git is incredibly useful.
00:43:41.920 --> 00:43:46.920
There can be a slightly steep learning curve before you see the value there.
00:43:47.440 --> 00:43:55.140
But I do think version control is incredibly necessary for data science moving forward.
00:43:55.140 --> 00:43:58.760
Learning Bash, a bit of shell, is really useful.
00:43:58.760 --> 00:44:04.760
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.
00:44:05.600 --> 00:44:09.960
I don't necessarily, you know, say, spend weeks or months using it.
00:44:09.960 --> 00:44:13.640
And I know all of this can be quite overwhelming, all these different tools.
00:44:13.640 --> 00:44:19.080
But if you know a bit of each, you'll be in good stead for getting into data science.
00:44:19.320 --> 00:44:23.280
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.
00:44:23.280 --> 00:44:25.480
So I'm just going to like study them to death.
00:44:25.480 --> 00:44:28.340
It's like, I have this problem I need to solve with Linux.
00:44:28.340 --> 00:44:31.820
Let me learn enough to make that problem, to solve that problem.
00:44:31.820 --> 00:44:33.240
And then you just keep doing this.
00:44:33.240 --> 00:44:37.880
Like you build up enough to like kind of hit most of the important areas anyway.
00:44:37.880 --> 00:44:38.680
Exactly.
00:44:38.680 --> 00:44:41.780
And once again, you're speaking to doing projects, right?
00:44:41.780 --> 00:44:45.780
Like having some particular project which you can do and learn tools around it.
00:44:46.120 --> 00:44:54.420
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.
00:44:54.420 --> 00:44:58.920
And if someone asks you about it, you can say, yeah, I know this and that about it.
00:44:58.920 --> 00:45:01.160
And you can check out more content on my blog.
00:45:01.160 --> 00:45:02.660
I think that's incredibly useful.
00:45:02.660 --> 00:45:03.980
Or on my GitHub, right?
00:45:03.980 --> 00:45:04.860
Yeah, yeah, absolutely.
00:45:04.860 --> 00:45:05.960
It's super important.
00:45:05.960 --> 00:45:10.240
So we talked about the programming stuff, kind of low level.
00:45:10.240 --> 00:45:11.600
What are the core skills?
00:45:11.600 --> 00:45:15.500
I mean, do I need to go and do I need a math degree to be a data scientist?
00:45:15.660 --> 00:45:17.220
Do I need to be a scientist, a programmer?
00:45:17.220 --> 00:45:18.420
Like what are the core skills?
00:45:18.420 --> 00:45:23.980
So you definitely don't need a math degree to be an effective data scientist.
00:45:23.980 --> 00:45:32.720
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.
00:45:32.720 --> 00:45:33.960
That's cool.
00:45:34.480 --> 00:45:41.020
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.
00:45:41.020 --> 00:45:43.920
So I'd suggest you to try and ease yourself into that stuff.
00:45:44.640 --> 00:45:56.600
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.
00:45:57.240 --> 00:45:58.480
Look at some figures.
00:45:58.480 --> 00:46:01.020
Look at some summary statistics.
00:46:01.020 --> 00:46:02.140
That type of stuff.
00:46:02.140 --> 00:46:05.700
Very related to this is data cleaning and data manipulation.
00:46:05.700 --> 00:46:11.980
Anyone who's, you know, there's the saying that 80% of my job is cleaning data and manipulating it.
00:46:12.380 --> 00:46:15.720
And it's a joke because it's more like 95% of most people's jobs.
00:46:15.720 --> 00:46:19.300
And I think this is incredibly important.
00:46:19.300 --> 00:46:25.640
Statistics, I think, is really essential in data science.
00:46:25.640 --> 00:46:31.540
But I need to be careful there because when I say statistics, I don't mean the central limit theorem.
00:46:31.540 --> 00:46:34.160
I'm talking about applied statistics or practical statistics.
00:46:34.160 --> 00:46:50.060
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.
00:46:50.060 --> 00:47:02.360
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.
00:47:02.360 --> 00:47:07.680
Right. And answering, is this a trend, you know, are these correlated or not?
00:47:07.680 --> 00:47:08.380
Things like that, right?
00:47:08.380 --> 00:47:14.600
Exactly. And thinking about how then that translates in to my initial question as well.
00:47:14.600 --> 00:47:17.740
It's not only, you know, does this look linear?
00:47:17.740 --> 00:47:19.400
It's what are the implications of this?
00:47:19.400 --> 00:47:23.200
What can I tell to someone who doesn't know something about the Pearson correlation coefficient?
00:47:23.200 --> 00:47:27.800
How can I explain this in human terms to a manager, for example?
00:47:28.540 --> 00:47:33.380
Bootstrapping is an incredibly useful technique in statistics that I think everyone should know.
00:47:33.380 --> 00:47:37.280
I might try to explain very briefly what bootstrapping is.
00:47:37.280 --> 00:47:40.160
Yeah, yeah. Go for it, because I'm not entirely sure what it is myself.
00:47:40.160 --> 00:47:43.240
So, and it means something different in the world you're from as well, I think.
00:47:43.240 --> 00:47:46.840
Yes. There's two meanings of bootstrap that I know of already.
00:47:46.840 --> 00:47:48.180
Neither of them are what I'm thinking of.
00:47:48.180 --> 00:47:49.920
So I don't think what you're thinking of.
00:47:50.160 --> 00:47:54.700
Think about this. You've got some data set, people's heights in a certain population.
00:47:54.700 --> 00:47:59.200
And you have the average. So this is the average height of this data set.
00:47:59.200 --> 00:48:02.560
But you know that, let's say you only have 10 data points or 20 data points.
00:48:02.560 --> 00:48:07.600
You know that this won't actually be the average height of the entire population, right?
00:48:08.380 --> 00:48:14.180
So what you do is, so the average height you've got has some sort of error bars associated with it.
00:48:14.180 --> 00:48:17.560
And what you want to do is estimate those error bars.
00:48:17.560 --> 00:48:22.480
And so what you do is, you resample from the sample you have.
00:48:22.480 --> 00:48:27.980
So if you have 20 data points, you can resample 20 with replacement to get a slightly different average.
00:48:27.980 --> 00:48:30.500
You can do that 100, 1000 times.
00:48:30.500 --> 00:48:34.940
And then you get some sort of distribution of potential means or potential averages.
00:48:35.100 --> 00:48:37.380
So that will tell you, that's the bootstrap of the average.
00:48:37.380 --> 00:48:41.780
That will tell you kind of the spread of possible averages in the total population.
00:48:41.780 --> 00:48:48.180
But the great thing is that this isn't just, this doesn't just apply to averages or means.
00:48:48.180 --> 00:48:50.940
You know, you can do this with any statistic under certain scenarios.
00:48:50.940 --> 00:48:54.720
And it gives you a pretty good idea of what you're looking at statistically.
00:48:54.720 --> 00:48:57.860
That's really cool. It's like meta statistics, like statistics about statistics.
00:48:57.860 --> 00:48:59.300
Exactly.
00:48:59.300 --> 00:49:03.720
And the great thing is, once you have that distribution of means, you can visualize it, right?
00:49:03.720 --> 00:49:06.000
So you get a distribution, you can have a look at it.
00:49:06.000 --> 00:49:12.280
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.
00:49:12.280 --> 00:49:16.860
But as a working data scientist, you'll be asked time and time again to explain your results.
00:49:16.860 --> 00:49:19.480
And a picture is worth a thousand lines of code.
00:49:20.240 --> 00:49:25.500
So I think that's incredibly important to become adept at data visualization.
00:49:25.500 --> 00:49:33.760
I think the fifth point, which is a term on everyone's tongue, is machine learning, the related deep learning.
00:49:33.760 --> 00:49:38.220
I think machine learning is incredibly important for working data scientists.
00:49:38.880 --> 00:49:55.920
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.
00:49:56.300 --> 00:50:04.640
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.
00:50:04.640 --> 00:50:06.500
And then really do it, right?
00:50:06.500 --> 00:50:13.040
Yeah, it's definitely one of the most mysterious and sort of new buzzy parts of data science.
00:50:13.040 --> 00:50:13.360
Exactly.
00:50:13.360 --> 00:50:20.320
And the way it's related to this, you know, kind of re-burgeoning concept of artificial intelligence is fascinating.
00:50:20.320 --> 00:50:24.580
But it's, you know, there's also a potential for a bubble.
00:50:24.580 --> 00:50:27.520
I don't want to be too harsh on it because it's incredibly important.
00:50:27.520 --> 00:50:32.080
And the effects on, you know, on society and the way we live will be huge.
00:50:32.080 --> 00:50:33.400
But we need to be careful as well.
00:50:33.400 --> 00:50:39.720
Yeah, well, I think the probably the danger is that it can become the hammer where everything becomes a nail to hit it with.
00:50:39.720 --> 00:50:42.500
There was this funny image I retweeted on Twitter yesterday.
00:50:42.500 --> 00:50:46.160
I don't know where it came from originally, but there's this huge bulldozer thing.
00:50:46.160 --> 00:50:51.640
Instead of having like a big scoop on the end of its arm, it had like a little regular person-sized shovel.
00:50:51.640 --> 00:50:53.680
And it was like digging with it.
00:50:53.680 --> 00:50:59.760
And the quote was something like, you know, machine learning solution when all you really needed was a few if statements.
00:50:59.760 --> 00:51:00.760
It's something like that.
00:51:00.760 --> 00:51:02.360
That's fantastic.
00:51:02.360 --> 00:51:05.040
Yeah, and I do see that possibly being a danger, right?
00:51:05.040 --> 00:51:06.440
It's not the only way to solve problems.
00:51:06.440 --> 00:51:10.780
But the problems that they can solve are like they were unsolvable before.
00:51:10.780 --> 00:51:14.100
So it really does have the possibility to open new doors.
00:51:14.100 --> 00:51:14.640
All right.
00:51:14.640 --> 00:51:16.660
But it's not the only only tool for it.
00:51:16.660 --> 00:51:17.820
Yeah.
00:51:17.820 --> 00:51:20.000
I mean, you know, the pendulum swings both ways.
00:51:20.000 --> 00:51:24.960
And part of the reason it's really buzzy now is because it has been incredibly effective, as we've seen.
00:51:24.960 --> 00:51:25.320
Yeah.
00:51:25.320 --> 00:51:28.520
And these companies are saying, hey, we have tons of data and we don't fully understand it.
00:51:28.520 --> 00:51:33.040
Could this maybe be our magic silver bullet to unlock something we didn't know about?
00:51:33.040 --> 00:51:33.860
Yeah.
00:51:33.860 --> 00:51:35.200
And also you said story.
00:51:35.200 --> 00:51:35.500
Yeah.
00:51:35.500 --> 00:51:36.260
Storytelling, right?
00:51:37.160 --> 00:51:38.420
Storytelling is incredibly important.
00:51:38.420 --> 00:51:48.780
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.
00:51:48.880 --> 00:51:53.500
But when developing a data science project, you're introducing them to a data set.
00:51:53.500 --> 00:51:55.780
You're showing them exploratory data analysis.
00:51:55.780 --> 00:51:59.300
You're potentially showing them some statistical inference, machine learning pipelines.
00:51:59.980 --> 00:52:08.020
So being able to explain in a variety of terms what your data science story is, is incredibly important.
00:52:08.020 --> 00:52:11.700
And to give takeaways at the end, to give an introduction, this type of stuff.
00:52:11.700 --> 00:52:15.620
So considering it a story and also thinking who your target audience is.
00:52:15.620 --> 00:52:22.340
If you want to, you know, write a blog post which a hiring manager can understand, that's one thing.
00:52:22.360 --> 00:52:29.600
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.
00:52:29.600 --> 00:52:31.540
So just kind of think about that.
00:52:31.540 --> 00:52:32.440
Practice that.
00:52:32.440 --> 00:52:35.380
And read what other people do as well.
00:52:35.380 --> 00:52:36.680
There's a website.
00:52:36.680 --> 00:52:37.840
I can't remember what it is.
00:52:37.840 --> 00:52:43.540
But it's called something like, you know, 100 Interesting Jupyter Notebooks in Data Science.
00:52:43.540 --> 00:52:44.580
Yeah, I think I've seen that.
00:52:44.580 --> 00:52:45.220
That's really cool.
00:52:45.220 --> 00:52:45.900
Yeah.
00:52:45.900 --> 00:52:48.000
Yeah, that definitely is a great place.
00:52:48.060 --> 00:52:55.240
I think Jupyter Notebooks really are powerful and they've brought storytelling to code in a way that just wasn't there before.
00:52:55.240 --> 00:52:56.600
Absolutely.
00:52:56.600 --> 00:53:04.300
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.
00:53:04.300 --> 00:53:09.140
And this was actually one of Jake Vanderpluss's points, right, in his PyCon keynote where, you know, someone said to him,
00:53:09.140 --> 00:53:11.120
Oh, I can't believe you use Jupyter.
00:53:11.120 --> 00:53:14.180
It's so slow and beefy.
00:53:14.180 --> 00:53:16.540
And he was like, Oh, I never thought about that.
00:53:16.680 --> 00:53:19.420
But that doesn't affect my workflow.
00:53:19.420 --> 00:53:26.000
It's really about, you know, speed of development for me, not speed of execution, I think, was his term.
00:53:26.000 --> 00:53:27.500
And that he can go in there.
00:53:27.500 --> 00:53:37.620
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.
00:53:37.620 --> 00:53:44.980
Now, one of the greatest things, of course, now is that has been for some time that GitHub renders Jupyter Notebooks as well.
00:53:44.980 --> 00:53:53.100
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.
00:53:53.140 --> 00:53:53.760
Oh, I didn't know that.
00:53:53.760 --> 00:53:54.300
That's awesome.
00:53:54.300 --> 00:53:54.880
Yeah.
00:53:54.880 --> 00:53:55.220
Yeah.
00:53:55.220 --> 00:53:55.720
Very cool.
00:53:55.720 --> 00:53:58.840
So I guess we're kind of getting near the end.
00:53:58.840 --> 00:54:00.740
Probably we've got to wrap it up a bit.
00:54:00.740 --> 00:54:10.420
But one of the final things we should focus on is, you know, it's a time of unparalleled information and learning resources.
00:54:10.740 --> 00:54:13.840
I mean, 20 years ago, it was get a book or get a degree.
00:54:13.840 --> 00:54:16.160
There's a whole lot more than that now, right?
00:54:16.160 --> 00:54:16.880
Absolutely.
00:54:16.880 --> 00:54:21.820
So you guys at DataCamp already have, you have a ton of courses for data scientists.
00:54:21.820 --> 00:54:22.860
Yeah.
00:54:22.860 --> 00:54:27.580
So I definitely think one way to keep up to date with what's happening in the field is online education.
00:54:27.580 --> 00:54:30.860
And there are lots of platforms for this which offer different things.
00:54:30.860 --> 00:54:37.620
So I think Coursera and edX, you know, open the world of online education, not only in data science and programming,
00:54:37.880 --> 00:54:45.580
but everything from, you know, the humanities to space exploration to politics, you know, and it's an incredible platform.
00:54:45.580 --> 00:54:46.940
Oh, sorry.
00:54:46.940 --> 00:54:48.020
Both of them are.
00:54:48.020 --> 00:54:48.220
Yeah.
00:54:48.220 --> 00:54:55.240
What we do at DataCamp is we're building a vertical platform for people to learn data science.
00:54:55.240 --> 00:55:07.100
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.
00:55:07.700 --> 00:55:10.880
And you get automated personalized feedback.
00:55:10.880 --> 00:55:19.940
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.
00:55:19.940 --> 00:55:22.840
DataCamp will say, hey, you passed in this argument.
00:55:22.840 --> 00:55:28.880
Why don't you try doing this instead in order to import it, read the CSV correctly?
00:55:29.540 --> 00:55:32.800
So we have a mixture of videos and interactive coding sessions.
00:55:32.800 --> 00:55:34.900
There are lots of other great places.
00:55:34.900 --> 00:55:39.300
Kevin Markham has his data school, which is great for Pythonic data science.
00:55:39.300 --> 00:55:40.140
Yeah, Kevin Markham.
00:55:40.140 --> 00:55:41.940
Yeah, Kevin Markham is doing really awesome stuff.
00:55:41.940 --> 00:55:42.560
Shout out to Kevin.
00:55:42.560 --> 00:55:44.360
I was just talking to him yesterday, actually.
00:55:44.360 --> 00:55:46.760
And he and I have done a little bit together.
00:55:46.760 --> 00:55:51.280
He's got some really cool stuff for data science and Python for sure.
00:55:51.720 --> 00:55:52.040
Absolutely.
00:55:52.040 --> 00:55:56.020
And of course, your courses, your talk Python courses for pure Python.
00:55:56.020 --> 00:55:56.880
Everyone should do this.
00:55:56.880 --> 00:55:57.540
Well, thank you very much.
00:55:57.540 --> 00:55:58.640
I appreciate the shout out.
00:55:58.640 --> 00:55:59.000
That's awesome.
00:55:59.000 --> 00:55:59.400
Of course.
00:56:00.120 --> 00:56:00.360
All right.
00:56:00.360 --> 00:56:05.420
Well, hopefully people who are getting started in data science or the programs, they want
00:56:05.420 --> 00:56:06.360
to move into data science.
00:56:06.360 --> 00:56:07.940
Hopefully this has been really helpful.
00:56:07.940 --> 00:56:13.620
I think there's a pretty concrete roadmap of steps that you can take to get there.
00:56:13.620 --> 00:56:14.960
So thanks for laying that out for us.
00:56:14.960 --> 00:56:16.060
Absolutely.
00:56:16.060 --> 00:56:19.640
And thanks for coming up with this idea for us to have this chat as well.
00:56:19.640 --> 00:56:20.460
Yeah, it's been really cool.
00:56:20.460 --> 00:56:21.060
Yeah, it's super fun.
00:56:21.060 --> 00:56:22.860
I think everyone's going to enjoy it, I think.
00:56:22.860 --> 00:56:23.500
All right.
00:56:23.500 --> 00:56:26.240
So before I let you get out of here, though, you've got two questions to answer.
00:56:27.120 --> 00:56:30.820
First of all, if you're going to write some code, namely Python code, really, what editor
00:56:30.820 --> 00:56:31.460
do you open up?
00:56:31.460 --> 00:56:34.260
When I use an editor, which I do for scripting, I'll use Atom.
00:56:34.260 --> 00:56:38.400
But as we've said, for most data science, I do it in Jupyter Notebooks.
00:56:38.400 --> 00:56:39.740
I love Jupyter Notebooks.
00:56:39.740 --> 00:56:45.680
Also, I'd recommend very soon, or even now, people checking out JupyterLab.
00:56:45.680 --> 00:56:46.740
I don't know JupyterLab.
00:56:46.740 --> 00:56:47.400
Tell us about it.
00:56:47.400 --> 00:56:49.600
JupyterLab's amazing.
00:56:49.600 --> 00:56:56.240
It's really a modular infrastructure for data science and scientific computing.
00:56:56.500 --> 00:57:03.260
So you open up your JupyterLab kernel, and you can have a Jupyter Notebook in there.
00:57:03.260 --> 00:57:04.720
You can have a terminal in there.
00:57:04.720 --> 00:57:08.420
You can have a markdown file, which you see rendered immediately.
00:57:08.420 --> 00:57:10.080
You can even have notebooks.
00:57:10.080 --> 00:57:15.700
You and I can open Jupyter Notebooks in our respective JupyterLab environments and collaborate
00:57:15.700 --> 00:57:17.980
on them in real time.
00:57:17.980 --> 00:57:21.720
And you can paste code into the chat that then I can paste into my notebook.
00:57:22.040 --> 00:57:24.460
So it's really kind of a new modular infrastructure.
00:57:24.460 --> 00:57:25.240
That's awesome.
00:57:25.240 --> 00:57:27.680
It's like social Jupyter.
00:57:27.680 --> 00:57:29.120
Yeah, absolutely.
00:57:29.120 --> 00:57:29.860
That sounds great.
00:57:29.860 --> 00:57:31.260
So that's super exciting.
00:57:31.260 --> 00:57:35.380
And the development around that is really strong.
00:57:35.380 --> 00:57:36.000
Nice.
00:57:36.000 --> 00:57:36.640
Okay.
00:57:36.640 --> 00:57:39.080
So notable PyPI package.
00:57:39.080 --> 00:57:39.580
Okay.
00:57:39.580 --> 00:57:40.600
So there are so many.
00:57:40.600 --> 00:57:42.120
It's so hard.
00:57:42.240 --> 00:57:44.780
It's like 120,000 almost now.
00:57:44.780 --> 00:57:45.260
It's insane.
00:57:45.260 --> 00:57:49.040
I actually, I'll mention one that I recently discovered, and I've only played around with,
00:57:49.040 --> 00:57:49.940
but it seems super cool.
00:57:49.940 --> 00:57:51.100
It's called Newspaper.
00:57:51.100 --> 00:57:52.440
And I've been thinking about it a bit recently.
00:57:52.440 --> 00:57:58.460
I spent a lot of my time trying to scrape HTML and prettify it.
00:57:58.460 --> 00:58:03.900
So, and for that, I use, generally, I use requests and BeautifulSoup, which those are huge.
00:58:03.900 --> 00:58:05.660
But that isn't, those aren't the ones I'm talking about at the moment.
00:58:05.660 --> 00:58:06.460
This is called Newspaper.
00:58:06.460 --> 00:58:10.980
And it's a really simple API for scraping articles and curating them and doing natural
00:58:10.980 --> 00:58:11.700
language processing.
00:58:11.700 --> 00:58:17.160
So you can, you know, get in touch with the New York Times or whatever it may be.
00:58:17.160 --> 00:58:18.880
Scrape the article really easily.
00:58:18.880 --> 00:58:23.160
There are some natural language processing methods, title methods, text methods, that type of stuff,
00:58:23.160 --> 00:58:27.460
where it'll, you know, I think the method, I probably won't get this right, but it's something
00:58:27.460 --> 00:58:32.460
like NLP method, and it spits out keywords and topics and that type of stuff.
00:58:32.460 --> 00:58:33.520
So I've only played around with it.
00:58:33.520 --> 00:58:35.620
Yeah, it's an incredible library.
00:58:35.620 --> 00:58:37.720
Yeah, I just discovered it recently as well.
00:58:37.720 --> 00:58:43.020
And basically, the idea is, instead of combining requests, plus BeautifulSoup, and then you
00:58:43.020 --> 00:58:46.780
have to, you get the text and the semantic markup, and you got to do whatever you're going to
00:58:46.780 --> 00:58:46.980
do.
00:58:46.980 --> 00:58:50.760
It's like, you can just point it at an article and say, who was the author?
00:58:50.760 --> 00:58:51.960
When was this published?
00:58:51.960 --> 00:58:52.420
Exactly.
00:58:52.420 --> 00:58:53.020
What are the keywords?
00:58:53.020 --> 00:58:57.280
And you can point it at the homepage, like the homepage of the New York Times to say,
00:58:57.280 --> 00:58:58.500
what are the articles on this page?
00:58:58.500 --> 00:58:59.060
It's crazy.
00:58:59.060 --> 00:58:59.500
It's awesome.
00:58:59.500 --> 00:59:06.100
And it deals with date times in a really intuitive, nice way, which date times are the bane of
00:59:06.100 --> 00:59:07.500
my existence a lot of the time.
00:59:07.500 --> 00:59:09.260
Why are date times so hard?
00:59:09.260 --> 00:59:10.280
They are, though.
00:59:10.280 --> 00:59:11.260
It really is tricky.
00:59:11.260 --> 00:59:16.740
So I think James Gleick has this thing where it's an article about how there should just be
00:59:16.740 --> 00:59:17.380
one time zone.
00:59:17.380 --> 00:59:19.780
I'm not going to go into that, but I'm just putting that out there.
00:59:20.280 --> 00:59:23.920
It's not obvious who would be the center of that time zone, but...
00:59:23.920 --> 00:59:25.580
Yeah, that's a big debate there, right?
00:59:25.580 --> 00:59:29.480
But I wake up at two in the afternoon, and then I get up, right?
00:59:29.480 --> 00:59:31.520
Like, that would totally simplify things.
00:59:31.520 --> 00:59:35.040
His argument is that time zone is a historical artifact that we need to get rid of.
00:59:35.040 --> 00:59:38.140
But that's my notable PyPI package.
00:59:38.140 --> 00:59:43.300
I just wanted to give a few shout outs to a bunch of others from the data science Python
00:59:43.300 --> 00:59:43.740
stack.
00:59:43.740 --> 00:59:49.940
And this list is by no means exhaustive, but I use Pandas, scikit-learn, NumPy is huge.
00:59:50.420 --> 00:59:54.780
Matplotlib, Seaborn, Altair, and Bokeh are all great for data viz.
00:59:54.780 --> 00:59:56.560
DAS for distributed computing.
00:59:56.560 --> 00:59:58.600
PyMC3, stats models.
00:59:58.600 --> 01:00:06.120
These are all really interesting and core elements of the data science Python stack that I use and
01:00:06.120 --> 01:00:06.320
love.
01:00:06.320 --> 01:00:08.600
Yeah, those are all very, very good ones.
01:00:08.600 --> 01:00:09.340
So awesome.
01:00:09.340 --> 01:00:10.800
Yeah, newspaper.
01:00:10.800 --> 01:00:12.020
Lots of fun with that one.
01:00:12.020 --> 01:00:12.960
All right.
01:00:12.960 --> 01:00:14.140
So here you go.
01:00:14.140 --> 01:00:14.980
Final call to action.
01:00:14.980 --> 01:00:16.900
People, they want to get into data science.
01:00:16.900 --> 01:00:17.640
What do you say?
01:00:17.640 --> 01:00:19.380
Get out there and do things.
01:00:19.700 --> 01:00:20.600
Play to your own strengths.
01:00:20.600 --> 01:00:21.500
Be brave.
01:00:21.500 --> 01:00:27.160
And something we haven't really chatted about, realize that imposter syndrome is a real thing
01:00:27.160 --> 01:00:27.940
for everybody.
01:00:27.940 --> 01:00:35.340
So at the inaugural JupyterCon this year, Fernando Perez, the creator of iPython, for real, the
01:00:35.340 --> 01:00:40.840
creator of iPython and co-leader of Project Jupyter, encouraged everyone to realize that
01:00:40.840 --> 01:00:44.380
everyone has imposter syndrome and that he himself has imposter syndrome.
01:00:44.380 --> 01:00:49.400
So anytime you think you're an imposter, remember that Fernando Perez feels the same way.
01:00:49.400 --> 01:00:51.940
He's out there changing the world and so can you, right?
01:00:51.940 --> 01:00:52.520
Exactly.
01:00:52.520 --> 01:00:53.040
Awesome.
01:00:53.040 --> 01:00:53.500
That's it.
01:00:53.500 --> 01:00:53.840
All right.
01:00:53.840 --> 01:00:54.680
Well, great to talk with you.
01:00:54.680 --> 01:00:56.380
And thanks for coming on the show.
01:00:56.380 --> 01:00:57.260
Such a pleasure.
01:00:57.260 --> 01:00:57.820
Thank you.
01:00:59.120 --> 01:01:01.860
This has been another episode of Talk Python To Me.
01:01:02.660 --> 01:01:04.920
Today's guest has been Hugo Brown Anderson.
01:01:04.920 --> 01:01:08.560
And this episode has been brought to you by Rollbar and GoCD.
01:01:08.560 --> 01:01:11.200
Rollbar takes the pain out of errors.
01:01:11.200 --> 01:01:16.260
They give you the context and insight you need to quickly locate and fix errors that might have
01:01:16.260 --> 01:01:18.900
gone unnoticed until your users complain, of course.
01:01:19.540 --> 01:01:23.720
As Talk Python To Me listeners, track a ridiculous number of errors for free at
01:01:23.720 --> 01:01:26.060
rollbar.com slash Talk Python To Me.
01:01:26.060 --> 01:01:30.720
GoCD is the on-premise, open-source, continuous delivery server.
01:01:30.720 --> 01:01:34.860
Want to improve your deployment workflow but keep your code and builds in-house?
01:01:34.860 --> 01:01:41.200
Check out GoCD at talkpython.fm/gocd and take control over your process.
01:01:41.200 --> 01:01:43.460
Are you or a colleague trying to learn Python?
01:01:43.460 --> 01:01:48.120
Have you tried books and videos that just left you bored by covering topics point by point?
01:01:48.220 --> 01:01:52.160
Well, check out my online course, Python Jumpstart, by building 10 apps at
01:01:52.160 --> 01:01:56.760
talkpython.fm/course to experience a more engaging way to learn Python.
01:01:56.760 --> 01:01:59.720
And if you're looking for something a little more advanced,
01:01:59.720 --> 01:02:04.080
try my Write Pythonic Code course at talkpython.fm/pythonic.
01:02:04.080 --> 01:02:06.800
Be sure to subscribe to the show.
01:02:06.800 --> 01:02:09.000
Open your favorite podcatcher and search for Python.
01:02:09.000 --> 01:02:10.240
We should be right at the top.
01:02:10.240 --> 01:02:13.580
You can also find the iTunes feed at /itunes,
01:02:13.580 --> 01:02:18.100
Google Play feed at /play, and direct RSS feed at /rss.
01:02:18.100 --> 01:02:19.540
on talkpython.fm.
01:02:19.540 --> 01:02:21.440
This is your host, Michael Kennedy.
01:02:21.440 --> 01:02:22.800
Thanks so much for listening.
01:02:22.800 --> 01:02:23.880
I really appreciate it.
01:02:23.880 --> 01:02:25.820
Now get out there and write some Python code.
01:02:25.820 --> 01:02:26.320
I'll see you next time.
01:02:26.320 --> 01:02:26.440
Bye.
01:02:26.440 --> 01:02:26.440
Bye.
01:02:26.440 --> 01:02:26.640
Bye.
01:02:26.640 --> 01:02:46.440
Thank you.
01:02:46.440 --> 01:03:16.420
Thank you.