 Nowadays, Python is a go-to language of data science. Most cutting-edge machine learning libraries are built for Python and you'll hardly find a job posting without Python as a required skill requirement. However, Python is also used in a multitude of other computer science areas, such as web development, game development and backend engineering. So it's a very useful and versatile language for someone to learn who's looking to break into programming. I have been coding in Python now for about four years and in this video I want to explain how I would go about learning Python again if I was starting from scratch. Let's get into it. The first step I would take would be to choose an introduction to Python course, either one that I like to look of or someone has recommended to me. You might have heard me say in my previous videos that there is no such thing as the right course and while this is definitely true, there are some courses which are generally rated higher and are generally better taught than others. In reality, most of the top courses will teach you the same things, so don't worry too much about it, just pick one that's popular and well-known and that should be sufficient to get you going. The course I personally took to learn Python was a W3 schools tutorial. It gives you real hands on experience and I think it's taught in a very clear manner and I found everything so understandable whilst doing the course. It didn't take me too long to complete this course, about a few weeks, but I was studying a couple of hours each night. There are also other courses that I've heard good things about, such as the Code Academy Python 3 course and the Python for everybody course on Coursera by the University of Michigan. Like I said, most of the introduction to Python courses will teach you the same things, so it doesn't really matter which one you choose. However, the main things you should be able to learn are variables and data types, functions, for while loops, if in conditional statements, classes, packages, native data types, booleans and comparison operators. This list will probably cover most of the things you will need as a Python practitioner, but it's obviously not exhaustive, so there'll be other things you'll pick up during the courses that I haven't listed here. Now the second step is to have continual practice in Python. There's a famous saying that I like from the famous American investor and entrepreneur Naval Ravikant and it goes, it's not 10,000 hours, it's 10,000 iterations. For those of you unfamiliar, a 10,000 hour rule comes from the famous book Outliers by Malcolm Gladwell and the whole premise is that it takes around 10,000 hours for anyone to become successful or master a certain skill. Obviously, the idea of success and mastery of skill can be interpreted differently. It means different things to different people, but you give the general idea. An example given in the book was that of Bill Gates. Bill Gates spent a lot of his formative and teenage years coding, which ultimately stemmed from success later on when he was building Microsoft. However, Ravikant takes this one step further and says it's 10,000 iterations. It's not simply the volume of time he puts in, but the deliberate practice of honing the skill doing 10,000 iterations is what really develops mastery. I completely agree with the statement. In my opinion, if Bill Gates never actually coded a line of code and simply just read coding textbooks, he definitely wouldn't be as good as he is now. The same is true for many other industries. For example, to be good at football, you can't just simply watch football and read tactics. You have to play football to get good at football and the same is true for coding and basically any discipline out there. After learning the basics in step one, I highly recommend that you set up some sort of routine that helps you code and Python regularly. Ideally, you'd want to code every single day. However, I recognise some people that may be unfeasible. If that's the case, then definitely make sure you do it at least twice a week with a couple hour blocks. That will give you enough time to focus on it and learn sufficient amounts without, you know, getting distracted and just cherry picking certain time slots, which may not certify your understanding the way you intended to do. In terms of resources, I personally used Hackerang. It's basically a self-contained, you know, Python environment with basic problems that you can work on. It has solutions and hints, so you can quickly iterate and learn quicker in that way. Hackerang is not the only platform out there like this. The most famous one is obviously League Code. There's also Code Academy. They offer a similar idea where it's basically, like I said, an environment with basic problems that you can work through to really test and improve your Python skills. Like with step one, it doesn't really matter which platform you use. The main point is just to choose one and start doing problems. Now, there is no predefined number on how many problems you should do. It varies between people. Personally, it was after around 50 problems that I've got really comfortable Python syntax and understanding data structures. Again, for you may be different, it may be more or less. But the point is, you'll know pretty much when you feel comfortable in Python, and you can answer most questions or at least attempt and understand what the question is asking about using too many of the hints or looking at the solutions. Now that you understand Python, you understand the syntax, it's now time to build something of your own. Projects are the holy grail when it comes to learning anything and programming. It will allow you to blend and use concepts together, be able to effectively debug errors, and ultimately solidify your understanding of Python. The list of possible projects is literally unlimited. So I think it's best to pick projects that align with the career or the sector you want to break into with Python. For example, if you want to be a data scientist like me, then I highly recommend you do something like a machine learning project or some big data analysis. I have a previous video which details some projects you can try as a data scientist. If you want to be a web developer, then you should build some websites. By far the best way to do this in Python is to use a Django framework. I recommend the real Python tutorial, which walks you through how you can build your online portfolio using Django and Python. Like the previous two steps, don't worry too much about finding the perfect project. The main thing is just find a project in the sector that you want to go into and just start building, particularly the beginner stage. Your main goal is to basically learn Python by doing hands-on experience, not so much to develop something that's really cool or useful. It's more benefit to you than to someone else or to an external consumer. Python is undoubtedly one of the most popular languages and it's very useful as it allows you to break into so many different sectors and areas. In this video, I've explained a step-by-step process of how I would learn Python again. So just to recap, step one would be to choose the right course, step two was to have some continual practice, and step three was to build loads of projects or projects in the area that you want to go into. Now, I'm not saying if you follow these steps, you'll land your dream job immediately, but I think having this framework or this basic guide will help you learn Python effectively. Like with anything, learning Python or any programming language for that matter requires hard work, but I promise in the end it'll be worth it. If you enjoyed this video and I see more content like this on this channel, then make sure you click the like and subscribe button and I'll see you in the next one.