Open-source project
Asabeneh/30-Days-Of-Python avatar
Asabeneh/30-Days-Of-Python

30 Days Of Python: A 30-Part Markdown Curriculum, Not a Toolchain

The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw

73,844 stars13,493 forksPythonLicense varies

At a glance

What is it?
Asabeneh Yetayeh's repository is a linear, prose-and-exercise Python course delivered as 30 numbered folders of Markdown. It teaches the language and a few adjacent libraries, but it ships no runtime, no test harness and no declared licence, which shapes both who should use it and what they must check first.
Who is it for?
Adopt this if you are a self-directed beginner, or someone returning to Python, who wants a free, ordered reading path with exercises and is willing to supply your own environment and your own discipline. Do not adopt it if you need graded feedback, a certificate you can verify, or a maintained dependency set, because the repository provides none of those.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What the 30 numbered folders actually contain

The repository is a table of contents with a body. The README's first block is a 30-row table mapping a day number to a topic and a relative path, and each path resolves to a Markdown file inside its own folder, for example ./05_Day_Lists/05_lists.md or ./21_Day_Classes_and_objects/21_classes_and_objects.md. The material inside those files is prose in conversational English, code samples, and exercises split into Level 1, Level 2 and Level 3, a pattern visible in the Day 1 file reproduced in the README.

The sequence is deliberate. Days 2 through 14 cover the language core: variables and built-in functions, operators, strings, lists, tuples, sets, dictionaries, conditionals, loops, functions, modules, list comprehension, higher order functions. Days 15 through 21 move into practical mechanics: type errors, date and time, exception handling, regular expressions, file handling, the package manager, and classes and objects. Days 22 through 29 are the applied tail: web scraping, virtual environments, statistics, pandas, Python web, MongoDB, APIs, and building an API. Day 30 is a conclusions file.

That ordering is the product. There is no single entry point that branches by skill level, and no index that lets you jump to pandas without first passing the loops and functions material. If you already write Python and want the MongoDB or Flask sections, you are reading past roughly twenty files to reach them.

The exercises are ungraded, and that is the central design constraint

Every day ends with exercises, and the README shows three tiers for Day 1 alone. What the repository does not contain is any runner, assertion file, or expected-output fixture. You write your answers in your own files and compare them by reading. Nothing tells you that you got it wrong.

This is not a defect in the writing, it is a boundary of the format. A Markdown curriculum can pose a problem; it cannot score one. The practical consequence is that the exercises function as prompts rather than checks, and the feedback loop is whatever you build around them. The README points at one external loop: a Telegram group for the 30DaysOfPython challenge, and a YouTube channel where the author states the videos for visual learners live, starting from a Python for Absolute Beginners video. The README claims that people who actively participate in the Telegram group have a high probability of completing the challenge. Treat that as the author's observation about his own community, not as a measured completion rate, because no data is given.

If you need a program to tell you your function returned the wrong value, this repository will not do it. That is the honest reason to pair it with something else, not a reason to dismiss it.

Running it locally: there is nothing to install from this repo

There is no package to install, no CLI, no build step. You clone the repository and read Markdown files, or you read them on GitHub. The commands you need are the ones the curriculum teaches you inside the Day 1, Day 20 and Day 23 files, not commands the repository provides.

Day 1 walks through installing Python, using the Python shell, and installing Visual Studio Code, including a section on how to use it. Day 23 is dedicated to virtual environments, and Day 20 to the Python package manager. So the intended workflow is: install Python and an editor, then create a virtual environment per project, then install libraries as the later days require them. The libraries named in the day titles are pandas (Day 25), and the Day 26 through Day 29 material covers Python web, MongoDB and APIs, which in practice means a web framework and a database driver. The README's topic list names Flask, NumPy, Matplotlib and MongoDB among others.

What the README does not give, in the portion supplied, is a pinned requirements file or a stated Python version. The Day 1 file says the challenge teaches the latest version of Python, Python 3, and the footer notes a Second Edition dated July 2021. Any version numbers you find inside the individual day files are the ones to check against your interpreter before you install.

Where the repository stops short

Four gaps are visible from the README alone.

First, no licence is declared in the supplied metadata. The repository is public and the README solicits sponsorship through GitHub Sponsors and PayPal, but sponsorship is not a licence grant. If you intend to reuse the text or exercises in your own course, in a company onboarding document, or in a paid product, the absence of a licence identifier is the first thing to resolve, and it is a question for the author or for your own counsel, not something this review can settle.

Second, there is no release history. The metadata returns no releases, and the versioning signal in the README is a prose line, Second Edition: July, 2021. The last push timestamp is recent, so the repository is being touched, but there is no changelog telling you what changed between the edition you read and the edition now on master.

Third, the certificate mentioned in the Day 1 welcome text is not backed by anything described in the README. The README says you will get a 30DaysOfPython programming challenge certificate at the end, but no issuing mechanism, verification path or assessment is described. Do not treat it as a credential you can put in front of an employer without checking how it is actually issued.

Fourth, the day count is a label, not a schedule. The README states plainly that the challenge may take 30 to 100 days, and the repository description repeats this. Anyone planning a study calendar around a literal 30-day finish is planning against the project's own stated guidance.

How it differs from interactive Python courses

The obvious alternative for a beginner is an interactive platform in the Codecademy or Exercism mould, where you type code into a browser editor and a test suite grades each submission before you advance. The difference is not quality, it is where the feedback lives. On those platforms the grader is the teacher. Here, the teacher is the prose and the grader is you.

That trade cuts both ways. A browser grader removes setup friction entirely, which matters if you have never opened a terminal. This repository makes setup part of the curriculum: Day 1 has you install Python and VS Code, Day 20 covers the package manager, Day 23 covers virtual environments. You finish with a working local toolchain and the habit of creating an environment before installing anything, which a sandboxed browser editor cannot give you. You also finish with no automated confirmation that any of your code is correct.

A second, closer alternative is the official Python tutorial, which is shorter, reference-shaped and written to be consulted rather than completed. This repository is the opposite: linear, long, and structured around doing. If you want to look up how a dictionary works, the official documentation is the better instrument. If you want a path that tells you what to read next for four weeks, this is.

Maintenance and the cost of following along

The maintenance cost here falls on you, not on the maintainer, and it is concentrated in the second half. The first fourteen days use only the standard library, so they age slowly. The last several days depend on third-party packages, a web framework, a database, and a driver for it. Those are the parts that break when a library changes an API, and the repository carries no release notes to tell you when a day's code was last reconciled with the current version of a dependency.

There is also a translation surface. The README links Portuguese, Chinese, French and Greek versions of the material under separate paths. Translated copies of a curriculum drift from the original when the original is edited, and nothing in the README indicates a sync process. If you are reading a translation, confirm which edition it corresponds to.

The upgrade path, if you want to call it that, is to read the day file, run its examples, and when something fails, check the library's own current documentation rather than assuming the repository is wrong. The repository gives you the sequence; the libraries give you the truth about their own APIs.

Editorial conclusion

Adopt this if you are a self-directed beginner, or someone returning to Python, who wants a free, ordered reading path with exercises and is willing to supply your own environment and your own discipline. Do not adopt it if you need graded feedback, a certificate you can verify, or a maintained dependency set, because the repository provides none of those. Before committing, verify three things: the licence status, which the README does not state; whether the package versions referenced in the Day 20, 25, 26, 27 and 29 folders still install cleanly on your Python version; and whether the 30-day framing matches the pace you can actually sustain, since the README itself says the challenge may take 30 to 100 days.

Official sources

  1. Asabeneh/30-Days-Of-Python on GitHub
  2. Issues
  3. README
Community notes

Community notes