How to Start Learning Python: Books & Courses

It goes without saying that Python is one of the leading programming languages. Not only is it often recommended for beginners, but it's also a popular choice among professional developers. This is thanks to how widely accepted Python has become in fields like Machine Learning and Artificial Intelligence. In this article, we'll explore various courses, books, and references to help you learn Python for free.

Free Resources for Learning Python

Quick Jump: #Courses • #Books • #References

Python is a high-level programming language that works in various application domains. Released by Guido van Rossum in 1991, it is to this day one of the most popular programming languages to be ever used.

Python is most notably used to write scripts that can be used to streamline tedious tasks, such as scraping information from websites. Python is also popular in Web Development, Mobile Development, and in recent years, Machine Learning. There is little that Python cannot do, which makes it a superb choice for entry-level programmers.

It’s worth noting that the popularity of Python directly correlates with learning the language itself. Thanks to its popularity, access to in-depth resources and online support is easy to find. As a beginner, you will find that a lot of the problems you encounter have already been encountered by someone else. This lets you accelerate the pace at which you learn.

Last but not least, Python is easy to learn. It reads much like the English language itself, making it easy for novice developers to grasp certain language concepts faster. In fact, let’s illustrate that through a “Hello World” program.

Hello World in Python

# this is a comment
print("Hello, I am learning Python.")

Hello World in C++

// this is a comment in C++

#include <iostream>

int main() {
    std::cout << "Hi, World!";
    return 0;
}

As you can see from this example, despite Python being a high-level language – it is a lot less systematic in its syntax. This will become increasingly evident as you learn new things.

High-quality resources for learning Python

To ensure high quality, I'm going to follow 3 simple principles:

  • Open Source to ensure everything on this page is free of charge.
  • Community to ensure that resources listed here are endorsed by actual Python developers.
  • Strictness to ensure that the narrative is strictly about learning.

This ensures that you have a direct path for learning. Over time, I'll try and update this resource to cover more areas and learning materials.

Before we get started, here are answers to some of the more common questions.

What are the requirements to learn Python?

If you want to learn Python, you will need to have at least a few prerequisites prepared. An open-mind. A computer with Python installed on it. A code editor. And the willingness to endure adversity when things get tough. The last one is very important!

What is the best way to learn Python?

Rendering something best is subjective. Some people like to learn by reading books and understanding topics in-depth. Others prefer to learn through Courses because they tend to be a lot more interactive. Ideally, a bridge between books and courses is the best way to learn quickly. In fact, you will want to have at least one book as a reference.

How long will it take me to become proficient?

I would say around 6-8 months to start feeling a strong sense of comfort with the language. There is a lot to learn. And there is a lot to build. If you spend all your time reading, you’re not learning. You’re just reading. Your number one priority for learning faster should be to build things.

I want to have a career as a developer.

You’re in the perfect place then. All of the resources found on this page will take you through the ins and outs of the Python language. What’s more, because we emphasize quality – all of our listed resources have been previously studied by people who went on to become Python developers or engineers. In due time you’ll find that there is no shortage of positions available for Junior developers.

Why did you build this resource?

Google Search’s top results are riddled with websites that have thin content. And it’s not uncommon for that content to be out of the context of the actual search query. I got frustrated with this, and simply decided to put my blogging chops to use.

By creating a strict narrative around this page, I am able to focus on providing only relevant sources of information.

Why is my resource not on this page?

Few reasons: I haven’t heard of it before. It’s not free. You only released it recently. If you feel that your free learning resource should be on this page: contact me.

» Courses

An online course is the closest equivalent to sitting in an actual class. My selection of Python courses covers a wide range of approaches. Above all, to take full advantage of any course – you must be willing to do the work. Programming is a lot about repetition, so following along with the course material is crucial. Even if it feels like you’re taking baby steps.


Python Basics with Sam

Python Basics with Sam

The problem with many YouTube courses is that the entire “course” is crammed into a 4-hour video. This is not one of them. Python Basics with Sam – endorsed by freeCodeCamp – has 20 hours of course material divided into 14 videos. Enrolling in this free course means you will have to pace yourself. The intro video alone is 2 hours long. But it does a great job at introducing Python to beginners while laying out the roadmap for the entire course.

futurecoder – Learn Python from scratch

futurecoder – Learn Python from scratch

Codecademy revolutionized the process of learning to code inside the browser. Since then, many more have followed in their footsteps. Futurecoder – a project by Alex Hall – is an open-source interactive Python course that you can work with entirely in the browser. It starts with some basic concepts but provides in-depth explanations so you’re not lost in the water. It is as beginner-friendly as it is comprehensive.

Python for Absolute Beginners

Python for Absolute Beginners

This free Udemy course from Joseph Delgadillo and Nick Germaine has been enrolled by more than 90,000 students. It’s one of the go-to free online courses to get started with Python. You will learn about installing Python, running basic scripts, and working on a specific project based on the contents of the course. The only requirement is that you have to sign up for an Udemy account. I think that’s a small price to pay.

Learn Python Programming

Learn Python Programming

This free online course from the folks at Programiz is an absolute treat. It is divided into 36 individual chapters, each covering a specific topic in the Python programming language. The course includes almost 100 unique examples while providing easy access to Python references. You can study each individual lesson on their website, which is complemented with a specific YouTube video for each lesson.

Introduction to Python Programming

Introduction to Python Programming

This Udacity course, which lasts about 5 weeks, will take you through the fundamentals of Python. You’ll learn how to write good Python code, alongside gaining a deep understanding of how to manipulate data for your needs. Notably, this course covers the topic of using libraries and how they can be used to build functional applications quickly. In other words, why reinvent the wheel if you can just choose a pre-built starting point?

» Books

A book is like documentation, though greatly extended. Books are also great to keep nearby because they contain timeless references. If you want to grasp technical concepts truly and their application in real-world scenarios, having at least one book is a must.


Learn Python the Right Way

Learn Python the Right Way

Learn Python the Right Way is one of the best books on grasping the fundamentals of Python. It doesn’t just teach you the syntax but also explains why that syntax matters. The book quickly progresses to introduce illustrated examples and lets you build interactive programs. Last but not least, you will have a lot of homework to do as the book covers various exercises. The emphasis is on critical thinking and practice over linear learning.

Think Python: How to Think Like a Computer Scientist

Think Python 2e

In this book, you will learn about the Python language through the lens of a computer scientist. The book follows a simple guideline of introducing a concept and then applying that concept by coding a real program. More complex topics are slowly introduced over several chapters. Which then culminate into larger parts where you must put your newly acquired knowledge to the test.

Python 101

Welcome to Python 101

Mike Driscoll, the author, has a strong foothold in the Python community. He has authored several books, has a YouTube channel where he posts Python videos, and has written numerous tutorials on the topic. This book lays out more than 40 chapters of a deep dive into the language. But most importantly, it is packed to the brim with examples and code challenges. Which is, of course, the best way of cementing all the new things you have learned.

Learn Python Programming – Second Edition

Free eBook - Learn Python Programming - Second Edition

Fabrizio Romano, the author of this book, has worked in software development since the late 90s. And his free book goes into extensive and practical explanations of the Python language. The book starts out with an introduction to the fundamentals of Python. This way, when the book starts to present more challenging topics – you already have some knowledge of how the language works. If you want to build websites with Python, by the end of this book – you will know exactly how to do it.

The Coder’s Apprentice

The Coders Apprentice

This book, authored by Pieter Spronck, assumes that you’ve never written a program before. As such, it is the perfect book to start understanding the concept of writing code. In the book, you will find plenty of exercises and in-depth explanations of complex topics. Mind you; the book has 400 pages of detailed writeups on how to write functional Python code. It is an absolute must-have.

» References

A reference is a page where you can go to get instant answers to the most common questions. It can be documentation, but it can also be a unique reference specializing in a specific topic. E.g. The reference to the most popular components used in developing web applications with Python. Some of these should be on your bookmarks list.


Python Documentation

Python Documentation

This is arguably the most important reference point for learning Python. The official documentation is not influenced by personal opinions or otherwise. It simply outlines the very core of how Python works as a language. The documentation covers the entire Python syntax and provides quick access to tips and explanations.

Stack Overflow

Stack Overflow Python

If you have a question about a specific Python problem, there is a high chance that it has already been answered on Stack Overflow. It is the most popular platform in the world for finding answers to programming-related queries. What makes Stack Overflow great is that is a reputation-based platform. As such, you are more likely to find correct answers because the community can peer review each one.

Learn Python @ Reddit

Python Reddit

The Reddit community for Learn Python has 600,000+ active members. It’s one of the most visited communities for anyone dipping their toes into the Python universe. Not only will you find plenty of resources here, but also have the ability to ask specific questions. If you’re looking for like-minded people to learn together with, this is the place to be.