If you want to learn how to code, learning Python is one of the best ways to start.
Python is a great choice for beginners because it’s one of the easiest programming languages to learn. A lot of universities and colleges use Python in their introductory programming courses so there’s a wealth of learning resources available.
But Python is not just a beginner’s language. It’s also extremely powerful and is used in a number of highly advanced applications like artificial intelligence and machine learning.
Python has a massive and very supportive community across a range of areas (though it’s particularly popular in scientific fields) so you should be able to easily find answers to questions that you might have.
Always check which version of Python a course uses. You want to make sure that it is using Python 3 as some courses still use the previous version (Python 2) which is now being phased out.
Here are a selection of brilliant courses and resources to start you on your Python journey.
If you use one Python resource, make it this one. Eric Matthes is a high school science, maths, and programming teacher so he knows how to teach beginners well (which is sadly rare amongst programming books and resources).
The book clearly explains the foundational concepts of Python programming and consolidates learning with regular exercises so the learning sticks. Answers are available for all exercises.
Also included at the end are three optional projects – one in game development, another in data science and a third in web development – to give you a taste of the different major applications of Python.
This free online text-based course is by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. It’s open source so there are a few versions and related versions available (just remember to check that your version uses Python 3 and not Python 2).
This is a solid introduction to Python and while the formatting is pretty basic (it’s mostly text), the writing is clear and enthusiastic. It does some fun stuff with turtles too! 🐢
One of the challenges of learning to code is installing the language on your computer in the first place and running your code. Codecademy sides steps this by having an interactive shell that runs in your web browser. This is great because you can start learning and practising straight away, but the downside is that it means you haven’t learnt how to set Python up on your own computer, which can create a barrier later down the line.
The exercises are fun and can be quite addictive. Unfortunately Codecademy’s Python 3 path is only available on their paid plan (Python 2 is available for free but we don’t recommend learning it).
Al Sweigart is a bit of a Python legend. He’s created a lot of fun books on Python and made them available for free on the web.
Automate the Boring Stuff teaches you introductory Python by showing you how you can automate repetitive everyday computer tasks because programmers are lazy, basically.
If automating office admin doesn’t excite you, then Al Sweigart also has a free introduction to Python using games! I told you he was a legend…
This course assumes you only know a little bit of programming (but it’s not for complete beginners so work through one of the above resources first) and extends it by getting you to build 10 working apps.
It’s video based (with transcripts) and also comes with free office hours in case you get stuck.
This is a free text-based course to learn the basics of Python and the NumPy library. It’s focus is for people who want to use Python for STEM applications (data analysis, machine learning, numerical work, etc.).
If you want to extend your Python understanding and get a taste of what computer science looks like, this is an extremely popular online course based on the introductory course to programming taken by students at Massachusetts Institute of Technology.
The follow up course Introduction to Computational Thinking and Data Science used to be part of this course but was broken up to make things more accessible for students new to programming.