Back to Index

How to Learn Data Science | ML | Programming


Chapters

0:0 Intro
1:33 Scale of Theory vs. Applied
2:55 Shape of Learning
5:52 Courses vs. Projects
8:37 Open Source
10:44 Writing
12:44 Following Interests
15:42 Final Notes

Transcript

Today I want to talk about learning to learn and some of my own systems and approaches to learning, machine learning and other things in my life as well. Now there are a lot of methods that we might talk about that may seem obvious and there are others that I believe, at least for me, are less so.

And in particular one very powerful thing for me, we'll definitely talk about that and hopefully a lot of these things will be either reinforcing what you're already doing or something new that you can start applying. But of course at the same time we're all different people, we I think all have different approaches to learning that work best for us and for each person that is going to vary.

So I wouldn't go into this video expecting to have this perfect template for learning how to learn that's going to work perfectly for you. It's probably more a case of taking some bits and ignoring other bits and applying it to what you already do. Nonetheless I do believe that this approach, although I don't believe I can cover everything in this one video because there is a lot to cover, I do believe what we will cover is at least a good foundation to tackling learning, machine learning and of course other things as well.

So let's start, specific to machine learning I think it's very important that I share my sort of view of different things in machine learning. I think everything I need to learn seems to be somewhere on a scale of pure theory to pure application. Everything is kind of on that scale somewhere and I think both the theory and both the application are super important and I think when we're learning something it's pretty important to find a balance of both and a lot of the time I really have to remind myself of this so I don't end up falling into one or the other too much.

So I don't end up focusing purely on theory or purely on application. It's very important to have both of those because what you learn on the theory side of things is always going to support and back up the things that you are actually building. So when you're actually applying your knowledge.

We'll talk a little more about that later but I just wanted to cover that very quickly at the start just so we can kind of put everything in the scope of that scale of theory to application. So the first thing I want to cover is my general way of thinking when I am approaching something new to learn and that is to go shallow, deepen and then broaden.

So this applies when you are learning to code, when you are machine learning for the first time or when you are just learning something new in machine learning or learning a new framework or so on. Now what I mean more specifically by that is going back to that scale that we have.

I start with applying something. In most cases, not all cases, but most of the time I will start with trying to apply something. So I will take a library or topic and I will try and create some sort of shallow high level tool with it or pipeline with it.

And using that you should hopefully build a little bit of an understanding of the overall scope or almost like an overall high level map of this topic or library. And with that you can say okay I have this high level map and now I know okay the main components in whatever this is I'm learning seems to be these three or four things so I need to learn more about these things.

And it's important we do this because a lot of people might skip this and if you don't try and understand what you are applying more deeply there's a good chance that you're not going to apply it correctly or it's going to be a very sub-optimal thing that you're building.

So I think it's really important to try and understand things more deeply and this is going towards a theory side. Right so we're deepening our knowledge, understanding the theory behind whatever this application is. And then once we've deepened our knowledge we should be able to better understand the topic.

Okay and this is where we broaden things so we then go back to the application side and we take what we've learned from the theory and reapply it to the application and hopefully at that point we've built something that's a bit more relevant. Now the reason that I start shallow is because for me I find jumping straight into theory is often overwhelming, it's confusing and there's just too much going on.

I find it really helps to have that high level view of everything first and then from there going in and focusing on little bits. So starting shallow, keeping things simple as possible, then diving into the details and then coming back up and sort of broadening or fixing that more high level view that you have created.

The next one is courses and projects. Now most people know and do study on courses and this is 100% the way to go. You have platforms like Coursera and Udemy which are in my opinion amazing. You have a lot of things out there and then you also have a lot of free courses on places like YouTube.

On my channel there are even a few free courses that you can follow along. So there really is a huge amount of content out there and whether you want to pay for it or not you can probably find something. However doing course after course is I don't think usually a good idea because courses are, they exist in their own sort of isolated world.

The data is usually perfect, the approach to doing something it works because someone else has already done it and they're showing you exactly step by step how to do it. So it's not always a good idea to just keep doing courses. Instead what I think really helps is doing projects.

Okay so doing projects as well as courses. Projects are really good because they emulate what you're going to be doing in the real world of applying machine learning. You're actually working on something, you're building something, you don't know if it's going to work at the start but you're trying to figure it out.

And what is very good in terms of your learning with these projects is one I think projects can be really fun and motivating. It's really cool to start a project and work on something and actually build something. Two they are very good at pointing out things that you don't know.

So to build something you can't just skip like a component of whatever it is you're building, you need to be able to use it and apply it correctly. And if you don't understand that component you will realize very quickly that you need that component in order to build whatever it is you're building in your project.

And without these projects a lot of the time you might not have noticed that you didn't really know anything about this particular thing or maybe you didn't even know that it existed. So I think projects are really good for pointing out what you don't know. And another really cool thing about projects is at the end of the project you actually have something, you've built something.

You can share it with people and you can be proud of whatever it is you've built, which I think is a really cool and fun feeling. As almost a continuation of the last point on projects, it's also a very good idea to see if you can try and contribute to open source projects.

Now this is a pretty typical piece of advice where people say okay you should contribute to open source and I'm including that as well because it's very good advice. If you can go ahead and start contributing to things, there are a lot of things that will happen. First you're contributing to the open source community, you're advancing machine learning as a field, which is really cool.

Two, you are going to learn whatever library you are going to contribute to very well. You're going to understand it much better than the vast majority of users, pretty much everyone other than the other people that also contribute to that library. And you're also going to learn a lot of the best practices from what are often some of the best ML practitioners in the world.

So that is incredibly useful, even if whatever you attempt to contribute, even if it isn't accepted or even if it is accepted but heavily modified in some way, that doesn't really matter so much because either way you've learned and you have gained something from the experience. So I wouldn't worry so much about not feeling like you're good enough to contribute to open source because pretty much everyone, even the people that do contribute to open source feel like that, it's normal.

Sure you're probably not going to be as good as some of the main contributors to these libraries but that's fine, the majority of people aren't, everyone starts somewhere so I would recommend just trying. Maybe it doesn't work out, maybe it does, either way you're going to learn and you're going to grow from that process.

So that's great, it's a win-win. Point number four is to write. So I write a lot and the reason that I wrote my first article wasn't to share anything with people or to try and make money from articles or anything like that. The reason that I first started to write was simply because I wanted to learn about these different things that I was writing about and the reason that I thought okay I'm going to start writing articles is because I thought okay, I thought back to university or college and I thought about that learning experience of writing reports on different things and having these sort of coursework assignments and writing this report and when you are writing those reports you realize what you don't know and you solidify the sort of thoughts that you have on all these different topics.

You solidify them as you write them down on paper and that is really good for trying to process something and understand something more deeply. So I really think that writing is one of the best ways to learn something more deeply and I'm not saying you necessarily have to write articles but if you just try and do something that emulates that university, college writing experience then I think it will probably help you a lot whether that's just personal, handwritten notes or online articles.

I promise you that writing will help your learning so so much. And the final point that I want to share is to do what interests you. Now you have to be somewhat realistic with this, you can't just do whatever you want like I don't know play games all day, that's not what I mean.

What I mean is when you are for example choosing what to study at university and you have all these choices try and go for something that you actually find interesting not something that you think is going to make you money or something like that. Of course be sensible and this is you know this is my advice it works for me it doesn't necessarily work for everyone or even most people I just know for me it has seemed to work.

Just try and follow what is most interesting to you. Don't think so much about prestige or money or any of these other things just do what you want to do and I say that because to be good at something it helps so much to actually be interested in that topic and for me it wasn't until studying in my master's that I realized this and during my master's I got to choose a lot of the modules that I studied which was pretty much the first time I got to do that and I chose a lot of the really hard modules.

I was advised not to choose all of these hard modules because it would be too much but I chose them anyway because I thought they were super interesting and that year was you know I just got incredibly obsessed with what I was learning I was super interested and I found it really easy not because I didn't have to work much I worked like crazy I did you know I basically lived in the library I worked seven days a week pretty much every week maybe there was a odd day off probably less than once a month you know I worked like crazy but it was super easy because I was interested and that worked out really well I got really good grades stumbled into AI I did my thesis in NLP and it kind of led me on the path that has brought me to where I am now which is somewhere that I'm super happy with so doing or following what I was interested in was for me probably the best thing I could have done.

Now of course everything varies person to person I don't know if it's the best advice for everyone but I really do think for me at least following those interesting subjects interesting topics it just helps so much it makes everything super super easy. So that's it um you know there are a lot of different things to talk about when it comes to learning and I realized that whilst I was putting together what I was going to talk about in this video I dropped a lot of things so for sure in the future I'm definitely going to do more on this sort of thing if people are interested in it but for now I think those five points are generally pretty much what I go by what I follow now so thank you very much for watching I hope it's been interesting and useful and I will see you again in the next one.

Bye!