NEW! Curricular Projects • Test Your Skills and Get Expert Feedback
Updated: August 25, 2023
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.
You won’t be eligible for a certificate until you complete the entire path, and you must receive 70% on all projects.
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.
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.
The community on Codecademy is fairly frustrating. Posts seem to go largely ignored. So if you proceed with this course and build a project, we recommend posting to Reddit to get feedback rather than the Codecademy community.
The course teaches app deployment with Heroku, and was built when Heroku offered a free tier. Heroku is no longer offered as a free resource.
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.
Educative has tons of Python courses and paths, and a fair amount of Flask material. We don't think there's a single path solution that will teach everything you need, so we recommend combining the Python for Programmers path with the Become a Flask Developer path to get more web focused experience with Python.
Off-platform projects are crucial to becoming proficient enough to work with Python professionally. Educative's focus is on-platform coding challenges, so be sure to supplement your on-platform learning with a project built end to end on your local system and deployed to the web.
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.
The examples are less real-world than you'll find in some of our other recommendations.
This version of the Python for Everybody materials doesn't include the textbook. You can find that online at py4e.com.
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: