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

78,744 stars14,155 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 45 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 November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • Asabeneh/30-Days-Of-Python78,744 ★ · +5,248
Star history
Repository2026-09-112026-11-14
Asabeneh/30-Days-Of-Python73.5k78.7k

5,248 Stars in the last 64 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial 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. If you already write Python and want the pandas or MongoDB sections, the README table links straight to those day files.

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 pandas and MongoDB among others.

The Day 1 file says the challenge teaches the latest version of Python, Python 3, and the author block near the top 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 repository 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 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,. 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 GitHub metadata lists as unknown; whether the third-party packages used in the later days 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.

Frequently asked questions

what is 30 days of python

It is a step-by-step Python 3 curriculum split into 30 days, each day a numbered directory holding a Markdown lesson with exercises at levels 1, 2 and 3. The topics run from variables, built-in functions and operators through strings, the collection types, type errors, exceptions and regular expressions, to web scraping, Pandas, MongoDB, APIs and building an API.

how to use 30 days of python

Clone the repository and open readme.md, which links day 1 through day 30 in order. Each entry points into its own directory, 02_Day_Variables_builtin_functions and 13_Day_List_comprehension for example, so you work down the list at your own pace, doing the three levels of exercises at the end of each file.

is 30 days of python good

The project describes the challenge as easy to read, written in conversational English and at the same time very demanding, and says you need to allocate much time to finish it. It is aimed at beginners and professionals together, and the introduction says people who take part in the Telegram group have a high probability of completing the challenge.

Can Python be learned in 30 days?

The project gives a range rather than a number. The introduction says the challenge may take 30 to 100 days to complete, and the project description says it may take more than 100 days and tells you to follow your own pace. It also notes that the README says you will get a challenge certificate at the end of the challenge.

Official sources

  1. Asabeneh/30-Days-Of-Python on GitHub
  2. Issues
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/asabeneh-30-days-of-python.svg)](https://hysenlabs.com/projects/asabeneh-30-days-of-python)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/asabeneh-30-days-of-python.svg)](https://hysenlabs.com/projects/asabeneh-30-days-of-python)

Was this useful?