You Don't Need to Buy a Python Book — 6 Free Resources That Cover the Paid Shelf
Search "best Python book for beginners" and you will find a shelf of good books, most of them $30 to $50 each. The awkward fact is that almost everything in them is also available free, legally, from the people and universities who teach Python best.
A beginner does not need to buy anything to learn Python well. What a beginner needs is the right free resources, used in the right order, with most of the time spent writing code. Here are the six that, together, cover the paid shelf. Every screenshot below is the actual starting page of that resource, as a learner would see it — no mockups.
1. The official Python tutorial and docs (docs.python.org)
What it is: The tutorial and reference documentation written and maintained by the Python project itself.

The official Python tutorial — the reference every other resource on this list quietly assumes you will end up reading.
Format: Web documentation: a guided tutorial, then a full reference for the language and standard library.
Time cost: The tutorial takes roughly 10 to 15 hours if you type the examples as you go. The docs themselves are not something you finish; you keep them open in a tab for years.
Best at: Being right. If a blog post, a video, and the docs disagree, the docs win. Nothing covers the standard library as completely.
Honest limit: It assumes you already think a little like a programmer, so true first-timers can find it dense and dry, with almost no exercises or coaching. Use it as your reference and fact-checker, not as your only teacher.
2. Harvard CS50P (edX audit / cs50.harvard.edu)
What it is: Harvard's Introduction to Programming with Python, taught by David Malan's CS50 team. Free to audit on edX, and the lectures and problem sets are also free on Harvard's own site. Only the optional verified certificate costs money.

The CS50P course page — ten weeks of lectures and problem sets, free to audit; only the optional certificate costs anything.
Format: Video lectures (10 weekly units), problem sets with automatic checking, and a final project.
Time cost: Harvard suggests 3 to 9 hours a week for 10 weeks — 40 to 90 hours in total for most self-learners.
Best at: Teaching quality and problem sets. The lectures explain ideas clearly, and the problems make you write real programs from week one: functions, file input and output, regular expressions, unit tests, and a first taste of classes near the end.
Honest limit: It stays in the terminal from start to finish. No web frameworks, no pandas, no apps with windows and buttons. If web development is your goal, CS50P is a strong first step, not the whole road.
3. Python for Everybody — PY4E (py4e.com)
What it is: Dr. Charles Severance's course from the University of Michigan: a free textbook, video lectures, and auto-graded assignments, all openly licensed and free on py4e.com (also on Coursera, edX, and freeCodeCamp).

Python for Everybody at py4e.com — the book, the lectures, and the graded assignments, free on one page.
Format: Book chapters matched with short videos and auto-graded assignments in the browser.
Time cost: Around 40 to 60 hours at your own pace, if you do the assignments properly instead of skimming.
Best at: Absolute beginners, especially people without a maths or engineering background. The pace is gentle, the examples use real data early (files, web pages, databases), and the tone never makes you feel stupid.
Honest limit: The gentle pace cuts both ways: if you already know another language, the first half feels slow. It also stops before advanced topics such as decorators, generators in depth, or type hints.
4. Automate the Boring Stuff with Python (automatetheboringstuff.com)
What it is: Al Sweigart's best-selling beginner book, published free to read online in full under a Creative Commons licence. The print copy is the same book people pay for.

Automate the Boring Stuff online — the complete book, chapter by chapter, free to read.
Format: A complete book online, 24 chapters in the current edition, with practice questions and a small project at the end of most chapters.
Time cost: Roughly 40 to 60 hours if you do the projects — most readers finish in four to six weeks of part-time study.
Best at: Making Python useful fast. After the basics, it goes straight at real tasks: renaming and organising files, working with Excel sheets and PDFs, pulling data from web pages. This is the resource that turns "I am learning Python" into "Python saved me an afternoon."
Honest limit: It teaches practical scripting, not computer science. Testing, program design, and object-oriented thinking get light coverage, and a few examples depend on websites that change over time.
5. freeCodeCamp — Scientific Computing with Python
What it is: freeCodeCamp's Python certification path: a browser-based curriculum where you learn by building projects step by step, plus free full-length Python courses on YouTube. freeCodeCamp is a nonprofit; the courses carry no ads and no paywall.

freeCodeCamp's curriculum page — Python Certification sits in the same list as the web tracks, and signing in to save progress is free.
Format: Interactive lessons in the browser, nothing to install, ending in a set of required projects for the certificate.
Time cost: Plan on a few months part-time. freeCodeCamp estimates its certifications at around 300 hours, though many learners finish the core material faster.
Best at: People who stall on video courses. You type code from the first lesson, feedback is immediate, and there is nothing to install — handy if your computer is old or shared.
Honest limit: The explanations are thinner than CS50P or PY4E. Follow the steps passively and you can finish lessons without fully understanding them — pause, experiment, and break things on purpose to get the full value.
6. Exercism — the Python track
What it is: A practice platform with a large set of Python exercises, automatic test feedback, and optional code review from human volunteer mentors. All of it, mentoring included, is free; Exercism is funded by donations.

The Exercism Python track — small exercises with tests to pass, and an optional human mentor at the end of them.
Format: Small exercises, each with tests your code must pass, in the browser or in your own editor.
Time cost: This one never really ends, which is the point. Budget two or three exercises a week, 20 to 60 minutes each, alongside your main course.
Best at: Turning "I understood the lesson" into "I can write this myself." Solving small problems, reading other people's solutions afterwards, and getting a mentor's comments is the closest free equivalent of a classroom.
Honest limit: It is practice, not teaching. Exercism assumes you can look concepts up yourself, and mentor replies can take a while because the mentors are volunteers.
Use them in this order
- Pick one main course and finish it. PY4E if you want the gentlest start, CS50P if you want harder problem sets, freeCodeCamp if you only learn by typing. One. Not all three at once.
- Keep the official docs open from day one. Every time a course mentions a function or a module, spend two minutes reading its docs page. This habit pays off for years.
- From week three, add Exercism. Three exercises a week, every week, while the main course continues.
- After the main course, work through Automate the Boring Stuff's project chapters, skipping the basics you already know.
- Finish with a test you did not take. If you started with PY4E, do a few CS50P problem sets cold; if you started with CS50P, do freeCodeCamp's final projects. Unfamiliar formats show you what you actually retained.
When does paying for a book make sense?
Honestly? Sometimes. You are never paying for secret knowledge — everything above is the same Python. You are paying for one voice, one sequence, everything edited to fit together, readable on paper or offline, with no tab-hopping between six sites. If that convenience keeps you studying, it is money reasonably spent. If money is tight, it is not a barrier: the free shelf above is not the cheap substitute. Used properly, it is the real thing.
