NEW! Curricular Projects β’ Test Your Skills and Get Expert Feedback
We independently test and review every course that we recommend.
Please support us by joining our mailing list, and recommending this guide to others.
Updated: January 5, 2024
Udacity
By Various
The best self-paced Python course money can buy. It's expensive, but well worth the cost for the quality of instruction and the quality of feedback on your work. The emphasis on practice exercises and real-world hands-on projects are standout features.
Completing this path will teach you full stack development using Python, Flask, and PostgreSQL for the backend, and HTML, CSS, and vanilla JavaScript for the frontend.
The content consists of videos, readings, quizzes, hands-on exercises, and projects. You'll spend a lot of time practicing and developing skills, both by coding in the browser and on your own system.
Udacity's projects are the standout feature. They're based on real world situations, and are designed to test your mastery of each course's major skills. You'll build four portfolio-ready projects in the course, each one increasing in complexity, moving from building a front end to deploying an app to the cloud. Each project is graded by humans, who provide personalized feedback.
Another cool feature is Udacityβs classroom app has integrated ChatGPT, so you can get instant help on each course. Additionally, you can get 24/7 technical support from a network of mentors.
edX
By Brian Yu
The gold standard for online courses provides the best way for programmers to learn basic Python and how to build web apps with Django and PostgreSQL.
This course is quite rigorous, just what you'd expect from Harvard. Each module of the course contains one video lecture supplemented by detailed lecture notes and a project. You'll need the lecture notes as reference when completing the projects. But youβll have to use supplemental resources from around the web as well, particularly the Python and Django documentation. The course is largely about teaching you how to learn to code with Python, and a major component of that is hunting for information around the web.
We absolutely love the rigor of the projects. The projects are mostly building full-featured clones of well-known websites.
The Python project is Design a front-end for Google Search, Google Image Search, and Google Advanced Search. The Django project is to Design a Wikipedia-like online encyclopedia, containing an entry page, index, search functionality, CRUD authoring, a random page, and a markdown converter. The SQL, Models, and Migrations project is Design an eBay-like e-commerce auction site that will allow users to post auction listings, place bids on listings, comment on those listings, and add listings to a βwatchlist.β
Each project assignment includes specs that your deliverable needs to meet in order to receive credit. If submitting your project for credit, youβll also need to record a 5-minute screencast demonstrating the functionality of your project.
CS50 also includes one of the most robust and active communities around an online course. There are tens of thousands of active members on the Discord, and if you have a question, you typically don't have to wait long to get a solid answer.
Our initial research involved spending hours reading hundreds of reviews of various course options, and perusing forums for recommendations and user preferences. From this research, we narrowed down to a list of 12 highly-rated candidate courses.
We graded the candidate courses against the following criteria:
From this thorough research and testing, we're confident this is the single best guide to Python courses available.
App Academy Open
By Various Authors
Solid free option for learning professional-grade Python web development.
With App Academy Open, you have free access to the curriculum used in App Academyβs Full Stack Software Engineering program. In the program, the curriculum is supplemented by live instruction, with practice projects designed for pair programming. Here, youβre on your own to work through the material, but the organization of material and the frequent practice are similar.
The material is a collection of text-based explanations of core concepts, with frequent quizzes to check for understanding. Each section is supplemented by short projects where you apply your knowledge in a real world setting. And ultimately, the material culminates in a robust capstone project.
Unfortunately, with this free curriculum, you donβt get feedback on your capstone project, and if you get stuck at any point, youβll need to go hunting for help. App Academy Open does have a Discord community, but your mileage may vary, especially since the Python curriculum comes late in the program, as one of the more advanced sections.
Codecademy
By Various Authors
A solid option for learning to build web applications with Python and Flask, with engaging hands-on practice and a few challenging projects.
In this path, you will learn how to code in Python, design and access databases, create interactive web applications with Flask, and deploy your apps to the cloud.
The course begins by covering some Python essentials before spending the majority of the time covering particular features of working with Flask.
Much of whatβs covered in the Learn Python 3 course is included in the Introduction to Python and Introduction to Python Data Structures and Loops courses.
The path also includes a capstone project where you build a fully-featured Flask app. This is a completely open-ended project, where you get to decide the scenario and topic of the site. The instructor merely provides some basic requirements, like collecting user data with forms, storing data in a database, authenticating users, and deploying the app to the web.
Educative
By Harsh Jain
Great option if you want to learn without videos, and curate your own Python and Flask learning path from a disparate set of materials.
Educative's courses combine a variety of learning formats, including readings, quizzes, in-browser coding challenges, and in-browser playgrounds where you can run and test code.
We found the challenges to be decent practice, though limited in scope. They're typically enough to check for understanding of a concept, and tend to increase in difficulty as you get further in the course.
We also like that unlike Codecademy, you're in charge of navigating the course and marking sections complete. You can skip around, preview sections, and if you feel confident you already know the material, you can mark lessons or even entire modules complete.
FreeCodeCamp
By Dr. Charles Severance & Others
Dr. Chuck's excellent "Python for Everybody" course with autograded coding problems.
This course takes the core materials from Dr. Chuck's Python for Everybody course and adds some solo coding projects to the end.
Dr. Chuck is a fantastic teacher. You can find his materials on a variety of platforms, but Python for Everybody is perhaps his greatest work: a free curriculum to learn Python from foundations to advanced topics. Here, FreeCodeCamp supplements the videos and quizzes with some robust coding challenges. While not necessarily real-world, the coding challenges will test the depth of your Python knowledge.
The course covers the essentials of working with Python, including some advanced topics like OOP, working with data from external APIs, and data visualization.
After taking this course, youβll have a solid foundation of working with Python, and be ready to continue learning advanced web development topics in Python, including working with Flask, Django, and SQLAlchemy.
Python is a versatile, high-level programming language known for its simplicity and readability. It's widely used in web development for building backend systems, thanks to its extensive libraries and frameworks. Python's clean syntax and diverse ecosystem make it a powerful choice for fullstack developers to create efficient and scalable web applications.
To prepare for using Python professionally as a fullstack developer, focus on mastering these key topics:
By mastering these topics, you'll be well-prepared to use Python professionally for backend web development. Practical application of these skills through projects and hands-on exercises will help solidify your knowledge and proficiency in Python.
Python is generally regarded as an entry-level programming language. However, there are a few prerequisites that can greatly enhance your learning experience when starting to learn Python for web development:
While not all of these prerequisites are strictly required, and can be learned alongside Python, having a foundational understanding of these concepts will significantly accelerate your learning process and enable you to grasp Python concepts more effectively.
Continue with more advanced topics with Python and Fullstack Development:
Help us out by joining our email list to get notified when we release new guides, and recommending this guide to others.
Thanks for reading!