So, you want to learn Python? That’s great news!
I get asked on a weekly basis for starting points. Where should you start if you want to learn Python? What’s the best tutorial, video, website, or library to get going?
Before I can give you that advice, I need to know one thing
To help work out which tutorials are going to work for you. It’s important to decide what programming experience you have. A lot of Python tutorials and guides assume that you already know how to code. That means you at least know about loops, variables, scope, and functions.
If you pick a tutorial that is aimed at developers and you’re new to programming, you’re going to get confused and frustrated really quickly.
Which of these statements applies to you and we’ll continue from there:
That’s great that you want to learn to program. Python is a great language for beginners.
You’re also in great company, there are millions of people learning Python right now. That means there are loads of resources available for you to use to learn.
Actually, there’s almost too much choice. Its a little overwhelming, and if you ask people, they might give you conflicting views.
My perspective is that you should pick the approach that meets the way you like to learn. This should be fun. Programming is about writing code, so to really learn, you need to build things and execute them. You can’t learn to ride a bike by reading a book.
There is a bunch of theory you need to learn as part of your programming journey. The really great programming tutorials are the ones that relate concepts in programming to things in real life. It makes it so much easier to understand, it they are low on technical jargon.
Something else about programming that’s different to learning many other skills, is that computers are really particular about what you type in. This isn’t like cookery where you can be a bit creative. If you follow the recipe for baking a cake but mucked up some of the steps, you’re still going to get a cake. It might not taste great, but it’ll still be edible.
Computers aren’t like that. If you miss a step, or get a step even slightly wrong, they’ll throw a big error message at you. This is intimidating for lots of beginners and puts them off continuing with learning after making a few mistakes. One of the skills that you need to learn when you program is how to solve errors. Most of the tutorials skip over this part, and when you follow the instructions and things don’t work like the instructor said, you’re on your own.
For this reason, I suggest asking someone who knows how to code to support you. Websites and forums can be quite unfriendly to beginners, so its good to have someone you can ask to look over your code and tell you what you’ve done wrong. This isn’t something that just beginners do, its something that all programmers do.
If you’re happy watching videos, there are thousands of video tutorials on learning Python. Before you invest a lot of time into a course, you want to know a few things:
I’ve selected three of the best for you to choose from:
These courses are many hours long. Anything that claims to teach you in “20 minutes” is total nonsense. You need weeks to learn it properly, even if you’re some kind of prodigal genius.
Something else about the resources in this article is that some are paid and some are free. As with all things in life, you get what you pay for. There is a lot of bad, inaccurate, content out there for free or for a few dollars. It ends up being a waste of your time to save a few $. If you can’t afford the cost of the paid courses, some of the free options are great to get started.
They are 4-7 hours long, but don’t think this is a Netflix show that you can binge-watch. Take it slow and stop the video to follow along with the steps on your computer. Try playing the video on a tablet and doing the tasks on your computer. Remember that programming is something you do. You can’t learn by watching someone else doing it!
Python for Absolute Beginners is for people who are totally new to programming. I really like this course because:
This course costs $50 USD, but its worth every cent. Remember I said to find someone to help you if you get stuck? As part of the cost of the course, the instructor makes themself available to help you. You can book time online.
This is a free, 4 hour tutorial for beginners that show you how to install Python and write the most basic script all the way up to functioning games. freeCodeCamp.org have a whole bunch of free videos on their Python channel.
Things I like about this course:
Note: The instructor is using a mac, but if you’re on Windows, follow these steps for installing on Windows.
Similar to Recommendation 2, this is a free tutorial course on YouTube for total beginners. Things I like about this course:
If you’re still at college or university, or you’re used to studying from text books, there are lots of great books and online content for learning to program. Two big benefits of books over videos is that you can go at your own pace, you can read a page twice, put a bookmark in, come back. The second benefit is that books are very dense in information. Something that would take an instructor a while to explain on video could be explained in a few pages in a book.
Python Crash Course is the world best-selling book on learning to program with Python. This book is designed for people who don’t have any programming experience. I like this book because:
The book is about $30-40. If you don’t have an eReader, I recommend getting a physical copy. Programming books are reference material. You want something that you can have next to your laptop, open on the right page.
So far you’ve got some recommendations on places to learn how to program, but not what you can do with it. Sure, you could start writing some tax-accounting software, but that might not be that much fun!
One of the great things about Python is that it works well on little devices. You can buy a small device for $30 that runs Python, and use it to program things around you.
There are two popular options for this- raspberry pi and adafruit circuitpython:
Using either of these you can write small, simple Python scripts to control circuits, motors, 3D printers, lights, robots or even LEGO.
Make sure you checkout realpython.com as its brimming with free, detailed tutorials on any Python topic.
There are tutorials on data science, engineering, games, web applications, and more.
If you already know another programming language, it doesn’t matter if its similar to Python or not. The thing that matters is you understand basic principles of programming. With this knowledge, you can fast-track learning a new language by focusing on a few things:
My recommendations are a combination of video tutorial, written tutorials, and interactive samples. As with the beginner recommendations, you get what you pay for, so I do recommend investing in your skills and picking the right option, not the cheapest (if you can afford to).
The course at learnpython.org is free and ideal for those who already know how to code in another language.
I really like this course because:
At codecademy, the tutorials, exercises and editor is all a single interface. This makes it really easy to read the tutorial, write the code and test it. There is a great course on Python that takes you from basic function calls, to variables, loops, classes and more complex language structures.
I like this course because:
Interactive Python examples are free and a pro subscription is $20/month.
I’m not going to recommend a specific course on Pluralsight, since your subscription gives you unlimited access to the whole catalog.
There is instead a learning path on Python comprising of over 21 hours of course content. I strongly recommend this path (and yes, I’ve finished the whole thing!) but stagger it over a few months.
I really like this learning path because:
A Pluralsight subscription costs $29/month, but like I said it covers the whole catalog (about 6000 courses). They also often have a promotion- so keep an eye out.
My final recommendation is the “Python Basics” tutorials at RealPython.com. This is the recommendation for anyone who wants to cherry-pick topics and concepts that they need to learn. If you can figure out the language pretty-quickly and need to get up to speed on web-development in Python, then realpython has you covered.
I like realpython’s articles because: