If you want to learn Python, there are a lot of great resources out there.

But if you're specifically looking for the best online course to learn Python, then you've come to the right place.

In this article, I present a list of awesome Python courses ranked according to a proven methodology that you can read about down below 👇.

But if you want to skip the read, here are my top picks:

  1. Programming for Everybody (University of Michigan)
  2. Computing in Python (Georgia Institute of Technology)
  3. An Introduction to Interactive Programming in Python (Rice University)
  4. Scientific Computing with Python (freeCodeCamp)
  5. Crash Course on Python (Google)
  6. Introduction to Computer Science and Programming Using Python (Massachusetts Institute of Technology)
  7. Intro to Python for Data Science (DataCamp)
  8. Object-oriented Programming in Python: Create Your Adventure (Raspberry Pi Foundation)
  9. Using Python for Research (Harvard University)
  10. Automate the Boring Stuff with Python Programming (Udemy)

What is Python?

Python is a general-purpose programming language that puts simplicity above all else. It eases the programming process by hiding the ugly details like memory management and code boilerplate, and instead opts for friendly, human-readable code. It is easy to understand, so it's one of the best languages for beginners to learn.

Its scope of application is wide — from creating games to making web apps. This versatility has made it incredibly popular. In fact, Python currently tops the TIOBE index, which ranks the most-used programming languages. And according to Stack Overflow, Python is the third most popular language after JavaScript and HTML/CSS.

Python is also the language of choice for machine learning and data analysis, with 70% of practitioners preferring Python over other similar languages.

Coincidentally, according to the World Economic Forum’s Future of Jobs Report, the demand for machine learning and data science specialists will be growing faster than for any other field through 2025.

Speaking of which, if you’re interested in machine learning, here's a ranking of the best machine learning courses available online.

Note that the current major version of Python is Python 3, and every course in this list uses Python 3.

Course Ranking Methodology

I followed a three-step process to build this ranking:

First, I’m part of Class Central, the leading search engine for online courses. We have a database of more than 50K online courses. So it seemed like the natural starting point.

Building a ranking alone is fine. But building it collaboratively is better. So I (@elham) built this ranking with my friend and colleague @manoel.

We started by leveraging the database to make a preliminary selection of Python courses, looking at things like ratings, reviews, and course bookmarks. So this was a purely data-driven step, relying on hard metrics to create an initial ranking that we could then iterate upon and expand.

Using this approach, some of the top picks rapidly became apparent, since the best Python courses tend to have rave reviews. But we didn’t stop there. Ratings and reviews rarely tell the whole story. So the next step was to bring our personal knowledge of online education into the mix.

Second, we used our experience as online learners to evaluate each of our preliminary picks.

We both come from computer science backgrounds and are prolific online learners, having completed about 45 MOOCs between us. Additionally, Manoel has an online bachelor’s in computer science while I am currently completing my foundation in computer science – so unsurprisingly, we’ve both used Python extensively during our studies.

Manoel gathered, analyzed, and ranked the courses and I wrote the article you’re reading right now. Throughout this process, we bounced ideas off each other and made iterative improvements until we were both satisfied with the end result.

Third, during our research, we came across courses that felt well-made but weren’t well-known. If we adopted a purely data-centric approach, we would have to leave those courses out of the ranking, if only because they had fewer enrollments.

Instead, we favored a holistic approach. We spiced up this list by including those courses: more personal picks that hopefully surprise those of you who have already seen or taken the more popular Python courses and are looking for something a bit different.

After going through this process — combining Class Central data, our experience as lifelong learners, and a lot of editing — we arrived at our final ranking. So far, we’ve spent more than 16 hours building this ranking, and we intend to continue updating it in the future.

Course Ranking Statistics

Here are some aggregate stats about the ranking:

  • Put together, the courses in this ranking have accrued 9 million enrollments, with 4 courses having over 1 million enrollments.
  • Coursera, with four courses, is the most-represented provider in the ranking.
  • The single most popular course in the ranking has around 4 million enrollments.
  • Eight courses are entirely free or free-to-audit. Two are paid.
  • These courses have accumulated 38k reviews at Class Central.

Now then, let’s move on to our picks!

1. Programming for Everybody — Getting Started with Python (University of Michigan)

Banner-3
Dr. Chuck, course instructor

My number #1 pick for the overall best Python course for beginners has to be Programming for Everybody, offered by the University of Michigan on Coursera. This course is the most popular Python course on Coursera, with close to 2.5 million enrollments — and for good reason.

The course serves as a friendly introduction to the world of programming. It assumes from the get-go that you have no experience whatsoever coding nor know how programs work. It then moves from concept to concept, helping you build a comprehensive understanding of the Python language.

To take this course, all you need is some basic arithmetic. After completing the course, you’ll be ready to tackle more advanced programming courses.

What You’ll Learn

The course doesn’t immediately start with programming, but instead starts with what you’ll be programming on: a computer.

What are the basic components of a computer? What is a program, and how does a computer understand it? Why is it so easy for a computer to not do what you tell it to do? These are the questions that you’ll be able to answer by the end of the first part of the course.

Afterwards, you’ll be shown how to install and run Python on your machine and how to choose a suitable code editor. And then, you’ll get to write code! You’ll be taught the vocabulary of Python, its unique “grammar”, as well as higher-level programming concepts.

You’ll know how to write variables and expressions to store and compute values, which can be of different data types. You’ll know how and why you can use conditional statements to specify branching conditions in your code. You’ll be taught about functions and arguments, and how to leverage them for code reuse. Last but not least, you’ll understand what loops and iterations do.

By the end of the course, you’ll know how to write a program that accepts user input, computes a result, and returns an output to the user. A complete experience indeed!

How You’ll Learn

The course is broken down into 7 weeks, with each week containing about 4 hours of video lectures and programming tasks. The lectures themselves are based on the book that can be found on the accompanying course website, and they’ve been translated into 9 languages, if English isn’t your strong suit.

Coding assessments, which usually have to be completed two or three times a week, are found on the same course website and will either be automatically graded or graded by another learner taking the course.

Institution

University of Michigan

Provider

Coursera

Instructor

Charles Severance (aka Dr. Chuck)

Level

Beginner

Workload

28 hours total

Enrollments

2.5M

Rating

4.8 / 5.0 (205K)

Certificate

Paid

Fun Facts

  • This course is the first of the five in the specialization Python for Everybody. If you’d like to round up your Python skills after finishing this course, here’s the next one in the series: Python Data Structures — which can also be audited for free.
  • If you'd like to take the whole specialization for free, with extra projects, and get a free certification on top, check out the fourth item in this ranking.
  • This course has over 123k bookmarks and 35k reviews on Class Central.
  • Dr. Chuck’s course is a part of both our list of most-popular courses of all time and best courses of all time. So yeah, this was an easy first pick.
  • The course instructor Dr. Chuck is a super popular instructor. If you like his teaching, be sure to check out his other courses on Django and Web Applications.

If you're interested in this course, you can find more information about the course and how to enroll here.

2. Computing in Python I: Fundamentals and Procedural Programming (Georgia Institute of Technology)

Banner-1-1
Dr. David Joyner, course instructor

My second pick for the best Python course would be Computing in Python I: Fundamentals and Procedural Programming, offered by the Georgia Institute of Technology on edX.

Although only basic arithmetic is necessary, Computing in Python is a robust course meant for learners who want to gain a comprehensive understanding of programming and beyond.

The course not only serves as an introduction to Python, but also to the fundamentals of computer science, exposing learners to concepts every programmer can benefit from.

The course is taught by Dr. David Joyner. As it happens, my colleague Manoel has taken four of his courses in the context of his online master’s degree, and he even met the guy. He only has good things to say about David Joyner and his courses, which are always carefully thought out, in particular in terms of instructional design and teaching methods.

The course is part of the Introduction to Python Programming Professional Certificate, which closely matches Georgia Tech’s undergraduate introduction to computer science, providing you with the skills needed to explore more advanced concepts and prepare for the professional world.

What You’ll Learn

The course starts with an introduction to computing and explains how computers work. You’ll learn the jargon of computing and understand how code processing works.

After setting up your programming environment, you’ll be introduced to the basic principles of programming, like the difference between compiling and executing code and the write-run-debug cycle. You’ll know how to analyze the results of running your code and use those results to revise it.

Next, you’ll be introduced to the paradigm of procedural programming in Python. The course makes you realize that a program is just sequences of lines of code that is executed to fulfill a purpose, and that programs can be chained to achieve more complex functionality.

Lastly, you’ll study variables, the different types of variables, and the role they play in programs. You’ll be introduced to mathematical, relational, and Boolean operators and understand how to use them to express complex relationships in code and even make “decisions”, such as running certain lines of code only if a predefined condition is met.

How You’ll Learn

The course consists of 5 weeks of material, and you are expected to spend 9–10 hours a week learning. The course comes with an online book that serves as a basis. Also, each week is dedicated to a specific area of computer science and programming. You are encouraged to skip areas you already know to make the best use of your time.

There are two kinds of assessments you’ll be able to complete if you audit the course for free: exercises and two practice tests. If you’re a verified learner, you’ll have access to chapter-level problem sets and complete a timed assessment at the end of the course.

Institution

George Institute of Technology

Provider

edX

Instructor

David Joyner

Level

Beginner

Workload

50 hours total

Enrollments

207K

Rating

4.8 / 5.0 (213)

Certificate

Paid

Fun Facts

  • The professional certificate this course is part of earned a Bronze Award for Computing & IT at the 2020 Reimagine Education awards.
  • The course has a whopping 4.8 out of 5.0 rating on Class Central, with several hundred reviews.
  • For all practical purposes, you'll be completing the same course that undergrad Georgia Tech students take for credit.

If you're interested in this course, you can find more information about the course and how to enroll here.

3. An Introduction to Interactive Programming in Python (Part 1) (Rice University)

Banner-8
Prof. Joe Warren, course co-instructor

My third pick for the best Python programming course is An Introduction to Interactive Programming in Python (Part 1), offered by Rice University on Coursera.

This course is designed to help students with very little to no computing background learn the basics of creating simple interactive applications in Python, although you’ll need some background in high school mathematics (hopefully you remember the Pythagoras theorem!).

What separates this course from others is that it is project-based, encouraging you to build and research things from scratch, an invaluable skill for developers in the real world.

A word of caution, though – this beginner course isn’t meant to be easy. The instructors say that you'll learn faster from doing hard things (which I’ve found to be true), so you’ll have to dedicate a significant amount of effort to complete the course.

What You’ll Learn

You’ll start the course by learning how to express arithmetic expressions in Python and how to assign values to variables. You’ll see that Python can be used as a calculator!

Next, the course introduces functions through both a programmatic and a visual perspective. This will give you an understanding on how functions work and how errors may arise from them. T

he instructor also gives tips on how to debug your code based on the results it’s producing. You’ll learn logical and comparison operators, along with conditional statements, and use these concepts to build a rock-paper-scissor-lizard-Spock game.

Moving on, you’ll be instructed on the basics of event-driven programming, which are essential to build games and applications. Then, you’ll learn what local and global variables are, which will culminate in you building a simple responsive graphical user interface for a number guessing game.

You’ll learn how to process strings given by the user and draw text and shapes on a canvas. You’ll use this concept to build a digital stopwatch that’ll keep track of time to the tenths of a second.

At the end of the course, you’ll recreate the classic game Pong in Python. Along the way, you’ll learn how to work with lists, how to read keyboard input from the user, how to draw and simulate the movement of the ping pong ball in your application, and how to keep track of who won and who lost. This will serve as testament to your ability to create applications with lots of moving parts.

How You’ll Learn

The course is split into 5 weeks, with each week involving around seven to ten hours of material, including a weekly project. The course comes with a companion website called CodeSkulptor, where you’ll run and submit your Python scripts.

Each week has two auto-graded quizzes and a weekly project that is peer-graded.

Institution

Rice University

Provider

Coursera

Instructors

John Greiner, Stephen Wong, Scott Rixner, Joe Warren

Level

Beginner

Workload

50 hours total

Enrollments

194K

Rating

4.8 / 5.0 (3.1K)

Certificate

Paid

Fun Facts

  • The course has 97.3k bookmarks and 3.3k reviews on Class Central.
  • This course is the first of seven courses that make up the Fundamentals of Computing Specialization. Upon receiving the specialization certificate, you’ll have completed 20+ projects, including a capstone project.
  • Dr. Scott Rixner, one of the course instructors, has worked and developed Python interpreters for both embedded systems and web browsers. He knows his stuff!

If you're interested in this course, you can find more information about the course and how to enroll here.

4. Scientific Computing with Python (freeCodeCamp)

Banner-9
Arithmetic formatter project on freeCodeCamp

Scientific Computing with Python, offered by the folks here at freeCodeCamp, is based on Python for Everybody, the Coursera specialization that includes this ranking’s #1 pick.

However, while the specialization on Coursera is paid, on freeCodeCamp you can earn a free certificate of completion.

In addition, the freeCodeCamp certification includes additional projects, so if you have completed Python for Everybody and you would like to apply your newly acquired knowledge, you’ll find here some hands-on opportunities to hone your skills.

What You’ll Learn

Apart from the material from Python for Everybody, you’ll work on five scientific computing projects. Scientific computing is most commonly needed in specialized and technical industries, like engineering or data science. In each project, you will be given some starter code and will be tasked with completing it.

The first project involves building an arithmetic formatter that aligns arithmetic expressions vertically, just the way you would if you were doing the calculations by hand. You will learn to parse strings, how to deal with edge cases, and also learn how to prettily format text in the command line.

The second project involves creating a time calculator. You will have to parse an initial time and weekday, add a particular duration to it (say 14 hours), and finally return the new time and day.

In the third project, you will make a budgeting app. By the end of the project you’ll understand how to create classes and attributes that serve as budget categories, and then print a graph in the command line representing the percentage spent per category.

For the fourth project, you are tasked with creating rectangle and square classes. These classes should contain the shape attributes as well as methods for calculating the area or getting a string representation of the shape. So you’ll really get to practice OOP, and in particular, inheritance.

Lastly, the fifth and final project requires you to write a function that can determine the probability of drawing balls of certain colors randomly from a hat. With object oriented programming, you will learn how to create a function with varied arguments, work with Python’s random module, and gain some insight into statistics and probabilities.

How You’ll Learn

The full 56 lecture set of Python for Everybody is available on freeCodeCamp. And after each lecture, you will be quizzed on what you’ve learnt from the video.

In total, the certification may take up to 300 hours to complete, but if you already know some of the rudiments of programming, it might take you half as long.

You’ll also create 5 scientific computing projects, each graded automatically.

Provider

freeCodeCamp

Instructor

Charles Severance

Level

Beginner

Workload

150 hours total

Certificate

Free

Fun Facts

  • As you may know, freeCodeCamp is a nonprofit that helps people learn to code by building projects, for free. They offer 10 courses with free certifications.
  • freeCodeCamp’s Youtube Channel has more than 5M subscribers and 1200+ videos on a wide variety of programming and computer science topics. (Yes, we’re fans)
  • If you’d like to support freeCodeCamp’s mission of providing free education, you can make a donation here.
  • More on Dr. Chuck: he is the Clinical Associate Professor of Information at the University of Michigan, and besides freeCodeCamp, his course is offered on Coursera, edX, and FutureLearn — so pretty much on all major platforms.

If you're interested in this course, you can find more information about the course and how to enroll here.

5. Crash Course on Python (Google)

Banner-2-1
Christine Rafla, Google system administrator

Crash Course on Python is offered by Google on Coursera as part of the Grow with Google initiative.

This course is a fairly comprehensive course on Python, teaching you most of the language’s features.

No prior experience with programming is needed for this course. By the end of the course, you’ll have an understanding of Python’s capabilities and be able to write simple programs in Python.

What You’ll Learn

You’ll start by learning about programming in general and why learning to automate things with your computer can be a time-saving skill.

Then, you’ll be introduced to Python and its features. For example, you’ll be able to identify, distinguish, and convert different types of data types in Python, you’ll learn what functions are and the role they play in code reuse, you’ll learn about the logical and comparison operators Python offers, as well as conditional statements. The course also teaches you how comments can help make your code cleaner.

Next, you’ll move on to more advanced topics like loops and iterations, and how to avoid creating infinite loops. A brief section on recursion —  a fundamental (but tricky!) programming concept — is also included.

You’ll dive into common data types like strings, dictionaries, tuples, and lists. You’ll know how to extract certain values from them and how to modify them. There is also an optional section on object-oriented programming, where you’ll learn about classes and their instances, attributes, methods, and inheritance.

You’ll also learn about documenting with docstrings, how to navigate and use Jupyter notebooks, and how to import and use Python modules in your code. So yeah, this course packs a lot of information.

How You’ll Learn

The course runs for 6 weeks, with each week being 4 to 5 hours long. You'll learn through video lectures and supplementary notes, and practice what you've learnt in weekly exercises.

Regarding assignments, at the end of each week you’ll have to complete a graded assignment.

Organization

Google

Provider

Coursera

Level

Beginner

Workload

30 hours total

Enrollments

507K

Rating

4.8 / 5.0 (22K)

Certificate

Paid

Fun Facts

If you're interested in this course, you can find more information about the course and how to enroll here.

6. Introduction to Computer Science and Programming Using Python (Massachusetts Institute of Technology)

Banner-5
Prof. Eric Grimson, course co-instructor

If you read the course description page, you'll see that Introduction to Computer Science and Programming Using Python by the Massachusetts Institute of Technology on edX specifies that it is NOT meant to be an introduction to Python. So you might wonder why I included it in this ranking.

Well, learning Python is rarely the end goal in and of itself. You learn Python to be able to tackle coding projects, or as a stepping stone toward learning something else — for instance, computer science. If you're in that position, this course is an excellent pick for you.

The main aim of the course is to provide students with a brief introduction to a variety of topics in computer science, focusing on breadth rather than depth. This is to give students a sense of what is possible when thinking about using computation to accomplish specific goals, be it in your studies or career.

This course tries to mirror the on-campus experience at MIT, so it’s challenging and comprehensive. In terms of prerequisites, you want to have some knowledge of high school algebra and be willing to stomach some math, because this computer science course doesn’t shy away from that.

What You’ll Learn

The course starts off with a brief introduction to computing. It tells you what computers are, what they do, and some of their limitations.

It shows you the “recipe” of programming languages: how you combine low-level constructs like variables to build higher-order functionally, like full-fledged programs. And it dives into the features of Python, specifically.

Like in many other courses in this list, you’ll be taught about objects and data types in Python, and you’ll learn to construct simple expressions using mathematical, logical, or conditional operators.

You’ll also learn about the fundamental concept behind loops and iterations and how they are essential to building algorithms capable, for instance, of finding the solution to equations without being explicitly “taught” how to do so.

Moving on, you’ll learn about decompositions and abstraction and how functions serve to achieve those purposes and encapsulate functionality. You’ll know how to write a function and understand global and local scopes. You’ll understand recursion and how it relates to mathematical induction (you can even prove some cool theorems with this!).

At the end of course, you’ll get your feet wet in the data structures pool: you’ll learn about lists, tuples, and dictionaries. You’ll understand the intricacies of mutability, aliasing, and cloning these data types, as well as methods to operate on them.

How You’ll Learn

This course is 9 weeks long and you are expected to spend around 14 to 16 hours on lesson materials per week. The course has 6 chapters, each consisting of several lectures and multiple activities to apply your knowledge.

There are 3 problem sets, as well as a midterm exam and a final exam that you’ll have to complete if you want to earn a certificate.

Institution

Massachusetts Institute of Technology

Provider

edX

Instructors

John Guttag, Eric Grimson, Ana Bell

Level

Intermediate

Workload

144 hours total

Enrollments

1.5M

Certificate

Paid

Fun Facts

  • This course is the first of a two-course XSeries Program on edX. The second is Introduction to Computational Thinking and Data Science.
  • This course teaches you how to install Anaconda instead of the default Python installer. Anaconda is a great tool, most notably if you enjoy data science.
  • One of the instructors, Professor John Guttag, leads the Data Driven Inference Group at MIT’s legendary Computer Science and Artificial Intelligence Laboratory (CSAIL).

If you're interested in this course, you can find more information about the course and how to enroll here.

7. Intro to Python for Data Science (DataCamp)

Banner-3-1
Dr. Hugo Bowne-Anderson, course instructor

Intro to Python for Data Science, offered by DataCamp, is exactly what the course name states: it specifically teaches you Python for data science.

So if you’d like to learn Python with the ultimate goal of jumping into data science, or if you want to see what data science is all about, this could be an excellent course for you.

What You’ll Learn

Starting off with the basics of Python, you’ll learn about variables and the different data types. As precision of numbers is important in scientific calculation, you will be taught when Python implicitly converts types and how to explicitly do so.

Moving on, you’ll learn about lists and how to use them to store data. You’ll discover how to create lists and manipulate them by subsetting, extending, replacing or deleting their elements.

You’ll create functions and supply arguments to them. Additionally, you’ll be taught about the different methods that data types like strings and lists may have and how to use them.

At the end of the course, you’ll import your first Python package, NumPy. NumPy is a popular Python package used by data scientists and analysts. You’ll learn the difference between NumPy arrays and regular Python lists, and you’ll see how easy it is to compute and analyze data with NumPy.

How You’ll Learn

The course consists of 4 chapters, each about an hour long. After each lecture, you’ll have the chance to apply what you’ve learned in the exercises.

You’ll code using Datacamp’s in-browser programming environment, making it easy to get started with minimal setup.

Provider

DataCamp

Instructors

Hugo Bowne-Anderson, Vincent Vankrunkelsven, Filip Schouwenaars

Level

Beginner

Workload

4 hours total

Enrollments

4M

Certificate

Free

Fun Facts

  • This is one of the few courses on DataCamp that is completely free.
  • The course is just four hours long: unlike some of the longer courses in this ranking, this one is very much focused on Python basics, and it’s a refresher course too.
  • If after taking this course, you want to further explore data science, check out our list of the 10 Best Machine Learning Courses to Take in 2022.

If you're interested in this course, you can find more information about the course and how to enroll here.

8. Object-oriented Programming in Python: Create Your Own Adventure Game (Raspberry Pi Foundation)

Banner-4
Martin O'Hanlon, course co-instructor

Object-oriented Programming in Python: Create Your Own Adventure Game is for those who have the basic syntax of Python down and want to learn specifically about object-oriented programming, a popular coding paradigm supported by Python.

This course is offered by the Raspberry Pi Foundation on FutureLearn. By the end of the course, you’ll create your own text-based adventure game.

What You’ll Learn

The course begins by introducing you to objects, and explaining that pretty much everything is an object in Python. You’ll learn about the methods associated with each object, and use Python's turtle module to draw multiple shapes of different colors and sizes on a canvas.

Next, you’ll start to code your text adventure game, which will involve coming up with your own classes. You’ll learn about essential methods you can use to operate on instance attributes, like getters and setters — though Python is quite flexible in how it approaches this. Little by little, you’ll add “rooms” and “items” to your text adventure world.

You’ll also extend other people’s classes through concepts known as inheritance and polymorphism. For instance, you’ll add new attributes and methods to a “Character class” to make an “Enemy class” that your player can fight.

You’ll learn how to use diagrams to make sense of inheritance, a skill that could be useful later down the road if you ever find yourself planning larger-scale coding projects.

How You’ll Learn

The course runs for four weeks, with an average time of 2 hours of study per week. The course material consists of videos and accompanying articles.

FutureLearn is very social: you’ll have access to a dedicated forum under each article where you can discuss with other learners taking the course.

Organization

Raspberry Pi Foundation

Provider

FutureLearn

Instructor(s)

Laura Sach, Martin O'Hanlon

Level

Intermediate

Workload

8 hours total

Enrollments

54K

Rating

4.7 / 5.0 (133)

Certificate

Paid

Fun Facts

If you're interested in this course, you can find more information about the course and how to enroll here.

9. Using Python for Research (Harvard University)

Banner-6
Prof. Jukka-Pekka JP Onnela, course instructor

Using Python for Research, offered by Harvard University on edX, fills in the awkward gap between introductory and advanced Python courses for people in research who know some Python but are clueless on what to do with it.

This course introduces people to Python modules and concepts commonly used in scientific computation, such as NumPy and SciPy, as well as statistical learning. It allows learners to climb the ladder from a knower to a doer, and apply their skills in practical settings.

What You’ll Learn

The course starts with a basic review of Python 3, in order to bring everyone up to speed, in preparation for the following weeks. Before that, however, you are recommended to take a self-assessment quiz to see if the course is a good fit for you.

In week 2, you’ll start by studying scopes in Python. You’ll then jump into bona fide scientific computing with NumPy, learning about vectorization (an important optimization technique to process calculations in bulk), and you’ll create plots with matplotlib, a very popular visualization library in Python.

In weeks 3 and 4, you’ll explore specific examples of how Python can be applied in research — study cases, if you will. This exploration will involve topics such as DNA translation, language processing (NLP), classification problems, studying bird migration with GPS data tracking, and social network analysis, among others.

Finally, you’ll explore statistical learning. With SciPy, you’ll learn and apply the basics of linear and logistic regression, and learn how to use random forests to analyze a movie dataset.

How You’ll Learn

The course is 5 weeks long and you are expected to spend 2 to 4 hours each week on it. Video lectures and project materials are provided as resources, and in each week you’ll be given one or more homework assignments to complete.

There'll be final project that you’ll have to complete as a verified learner.

Institution

Harvard University

Provider

edX

Instructor

Jukka-Pekka "JP" Onnela

Level

Intermediate

Workload

20 hours total

Enrollments

308K

Certificate

Paid

Fun Facts

  • The course instructor, Jukka-Pekka "JP" Onnela, was awarded the NIH Director's New Innovator Award in 2013 for his work in digital phenotyping.
  • It may not come as a surprise then that he’s Associate Professor of Biostatistics at Harvard University.

If you're interested in this course, you can find more information about the course and how to enroll here.

10. Automate the Boring Stuff with Python Programming (Udemy)

Banner-7
Excerpt from the book Automate the Boring Stuff with Python

Last but certainly not to be overlooked is Automate the Boring Stuff with Python Programming, taught by Al Sweigart on Udemy. This course is based on the book with the same name, Automate the Boring Stuff with Python, which is freely available to read online.

This course is fairly comprehensive and introduces you to some topics other introductory courses normally don't offer, like regular expressions, web scraping, and GUI automation. Plus, as you might've guessed, this course is very hands-on and project-driven.

What You’ll Learn

You’ll begin by installing Python on your machine and get familiar with the IDLE, the default programming environment that comes bundled with Python.

You’ll learn about control flow through the visual of charts, giving you a good understanding of concepts like conditional statements, loops, and iterations. You’ll create your own functions and learn about variable scoping in Python.

You’ll also learn how to handle errors with the “try-except” blocks before cementing your understanding by building a guess-the-number game.

Of course, you’ll explore data structures like lists, dictionaries, and strings, and how to manipulate them.

Using the command line to run Python programs, you’ll discover how to automate stuff on your computer: yep, the course title is accurate! To do so, you’ll study regular expressions, how to navigate directories, and how to read or write files.

The course explores automating tasks such as web scraping, reading and editing Excel, Word, or PDF documents, sending and checking emails, controlling your mouse and keyboard using Python, and implementing image recognition scripts.

How You’ll Learn

The course is split up into 16 sections with 51 lectures. In total, it has around 9 hour and 30 minutes of lectures.

There are 95 downloadable resources, including lectures and other course material.

Provider

Udemy

Instructor

Al Sweigart

Level

Beginner

Workload

10 hours total

Enrollments

1M

Rating

4.6 / 5.0 (98K)

Certificate

Paid

Fun Facts

  • The creator of the course occasionally gives out Udemy coupons to his course for free on Reddit.
  • If you have completed the course or book and want to move on to more advanced Python stuff, you can check out the author’s new book, Beyond the Basic Stuff with Python, which is also free online.

If you're interested in this course, you can find more information about the course and how to enroll here.