Practice Python aims to provide basic exercises for Python learners to discover Python, but it is certainly not a full and comprehensive resource. There are plenty of other resources out there online (both free and not free) that Practice Python recommends.
This page contains a collection of resources for learners of Python - some are courses, some are books, some are other Python resources. If you have suggestions for what to put on this page, please contact me.
There are many free resources out there to help you learn Python. Often the downside of free resources is that the usability is not great, or it requires some digging to find some useful content. If you are patient, it can pay off nicely. Some of my favorites:
Codeacademy. One of my favorite online courses about Python is completely free on Codeacademy. They create great courses (with some sandboxed environments included, so no installation needed!) on a variety of programming languages, and their Python course is great. They will try to upsell you into buying their “premium” course, but I found the free one to be good.
OCW (OpenCourseWare) from MIT - this initiative was started in 2001 to make public materials from courses taught at MIT. It is a collection of materials, so you are responsible for pacing yourself, finding the right materials, checking your work, etc. If you are patient enough, you can find the goldmine of materials in the entire site. My biggest beef with this website is the usability - it is really hard to find what kinds of courses you are looking for unless you know the course numbers at MIT. Fortunately, I do. Here are some free reference materials that can provide lecture notes, exercises, and the occasional video:
edX - the natural step up from OCW, edX provides courses to teach you all the subjects of your choice. Universities are incentivized to run an online version of courses offered on college campuses. I’ve linked specifically to the Python course offerings, since they change on a regular basis. If you want more direction (like emails, reminders, exercises mixed in with videos, and a changing set of offerings) together with a college-level and -length course, then edX is a good place to look. They also offer verified certificates for a fee, but I have not personally done a course with verified certificates.
Another way to learn Python and programming is to pay for guided courses. Disclaimer: If you use the links from this page to sign up, this blog will receive a small kickback at no cost to you. Read our full advertising disclosure here.
The books here are rated from more beginner-skewed to more advanced as the list goes on. I’ve even added my own chili rating to each book!
|Automate the Boring Stuff with Python by Al Sweigart definitely has the best title in the business. The style of the book is about what Python can do for you - emphasis on Python tools that can analyze websites, make API calls, and generally automate boring stuff. The emphasis is on Python 3 and on tools like regular expressions and web requests. The explanations are thorough and step-by-step, getting harder through the book. For those looking to get motivated by the ways Python can help you on a daily basis without investing years of study, this is a book to take a look at. I also recommend the Automate the Boring Stuff Udemy course if you are more of a visual and auditory learner - it contains the same content in a video course format.|
|Learn Python The Hard Way by Zed Shaw is one of the most popular books about learning Python out there. The book goes through concepts important to Python one by one and in great detail. The book covers syntax from Python 2.7, but the concepts are not specific to just Python. Yes, it is called Learn Python the Hard Way, so the exercises and concepts are grouped together in an unconventional order. The emphasis is on diving in and exploring Python with some basic guidance. There is even a free version of the book online, if that suits you better!|
|Effective Python by Brett Slatkin is a more advanced book framed in the style of best practices. When you learn to code, you should learn the right way through a series of best practices that are widely used and generally applicable. The style is easy to read, and covers all the major areas of Python development and programming lifecycles. The code examples are helpful and informative as well.|
|Python Crash Course by Eric Matthes approaches learning and teaching Python with the same philosophy as I do - that learning by doing is strictly better than reading. He goes from basics to larger-scale projects like webapps with Python and Python frameworks. The material is well-explained, and gets harder as you get farther along in the book. But all the while, everything is explained in a way that is easy to digest.|
Read our full advertising disclosure.
If you have any course or book recommendations, let me know in the comments!