100 Days of Code in Python: A Free Day-by-Day Plan
A free 100 Days of Code plan for Python: what to learn in each block of days, free YouTube courses to use, project milestones and how to keep going.
The 100 Days of Code challenge is simple: code for at least an hour a day for 100 days and share your progress. The best-known Python version of the format is a paid Udemy course, but you can do the whole thing for free using YouTube and open resources. This plan breaks the 100 days into blocks with clear goals and projects, so you end with a portfolio rather than a streak count.
Rules that make it work
- **One hour minimum, every day.** Watching counts only if you also type code. - **Log each day.** One line: what you did, what confused you. Sharing on social media with #100DaysOfCode is optional; a private log works just as well. - **Missed a day? Do not restart.** Continue from where you were. The goal is 100 days of coding, not 100 consecutive days. - **Projects over tutorials.** By day 30, at least half your time should be spent building, not watching.
Free resources for the plan
- **Main course options:** CodeWithHarry's 100 Days of Code Python playlist (Hindi, daily format that maps directly onto the challenge), CS50P from Harvard (English, with problem sets), or Corey Schafer's Python tutorials (English, topic by topic). - **Practice:** CS50P problem sets, HackerRank Python, Exercism's Python track. - **Reference:** the official Python tutorial at docs.python.org and *Automate the Boring Stuff with Python* by Al Sweigart, which the author makes free to read online.
Days 1 to 25: the language
- **Days 1 to 5:** Setup (Python, VS Code), variables, types, input/output, string formatting. - **Days 6 to 10:** Conditionals, loops, `range`. Build: number guessing game. - **Days 11 to 15:** Functions, scope, default and keyword arguments. Build: unit converter with a menu. - **Days 16 to 20:** Lists, tuples, dictionaries, sets, comprehensions. Build: contact book. - **Days 21 to 25:** Strings in depth, files, exceptions. Build: save and load the contact book from a file.
Days 26 to 50: real programs
- **Days 26 to 30:** Modules, `pip`, virtual environments. Use `random`, `datetime`, `os`, `pathlib`. - **Days 31 to 37:** Object-oriented programming: classes, methods, inheritance. Build: a bank account or library system. - **Days 38 to 42:** Working with CSV and JSON. Build: an expense tracker that saves to CSV and prints monthly summaries. - **Days 43 to 50:** APIs with `requests`. Build: a weather or currency CLI using a free public API. **Milestone at day 50:** three small projects on GitHub, each with a README.
Days 51 to 100: pick a direction
Choose one track for the second half rather than sampling all of them: **Automation:** web scraping with BeautifulSoup, automating files and spreadsheets (openpyxl), sending emails, scheduling scripts. Final project: automate a real task you do weekly. **Data:** NumPy, pandas, matplotlib, Jupyter. Work through a few public datasets. Final project: a cleaned dataset with an analysis notebook that answers three questions. **Web:** Flask or FastAPI, templates, a SQLite database, simple authentication. Final project: a small web app such as a notes or habit tracker, deployed on a free tier. Spend days 51 to 85 learning and building small pieces, and days 86 to 100 on one larger final project.
Getting past day 30
Most people who drop the challenge do so around days 20 to 40, when the novelty is gone. A few things help: - **Keep a visible tracker.** Tick off days and videos. Seeing 34 of 100 is motivating. - **Have a fallback for bad days:** 20 minutes of fixing a bug or doing one practice problem still counts. - **Quiz yourself on earlier days** instead of rewatching. If a quiz shows you forgot dictionaries, revisit just that. If your main course is a playlist, paste it into Filow to get progress tracking per video, timestamped notes and AI quizzes, which gives you the tracker and the self-testing in one place.
Questions people ask
Is there a free 100 Days of Code Python course?
Yes. CodeWithHarry's 100 Days of Code Python playlist on YouTube follows the daily format for free, and you can build your own 100-day plan around CS50P or Corey Schafer's tutorials.
Can I learn Python in 100 days?
You can learn the language well and build several projects in 100 days of an hour a day. Becoming job-ready usually takes longer, depending on the field.
What if I miss a day in 100 Days of Code?
Just continue. The original rules allow you to keep going; the point is consistent practice, not a perfect streak.
What projects should I build in 100 Days of Code?
Start with small games and utilities, then move to file automation, API clients, and a final project in your chosen direction: automation, data or web.
Learn Days from YouTube, in order.
Doing 100 days of Python from a playlist? Track every day and video on Filow with notes and quizzes.