mrkeyoor.com_
Sat 17 Oct 19:07 UTC
Dev Toolsevaluationupdated 17 Oct 2026

30-Days-Of-Python review

30 Days of Python is a free English course with ordered lessons, code examples, and exercises for learning Python. It starts with the interactive shell and reaches data analysis, Flask web applications, and MongoDB, giving a beginner a reading order instead of a pile of unrelated tutorials.

+386stars / 7d
Verdict

Our 30 Days of Python web-project run installed 41 packages in 8 seconds, but pip-audit reported 32 known vulnerabilities and tests were skipped because no target existed. Use the course with a mentor or study group who can catch misleading examples, and keep the web environment separate from applications you ship. Choose Exercism if checking your own answers is the deciding requirement.

We ran it

Lab card: what happened when we ran 30-Days-Of-PythonScreenshot of 30-Days-Of-Python (github.com/Asabeneh/30-Days-Of-Python)
Install✓ · 8s41 packages · 40 MB
Build✓ · 1s
Testsn/ano test script
Known vulns32(pip-audit)
Repo440 files~4,562 lines of source · 71.7 MB · 0 CI workflows

Answers from our run

Does 30-Days-Of-Python build from source?

Dependencies installed in 8 seconds (41 packages), and the build succeeded in 1 seconds. We cloned commit 50c11a8 into a clean Debian container with 3 CPUs and no project-specific setup.

Does 30-Days-Of-Python have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does 30-Days-Of-Python have known vulnerabilities in its dependencies?

pip-audit flagged 32 known advisories in the dependency tree at the time of our run.

Who should not use 30-Days-Of-Python?

Learners who need dependable worked examples without outside help: the functions lesson names an exponentiation example square_number, and its correction remains an open PR.

What are the alternatives to 30-Days-Of-Python?

Exercism Python track, learn-python. Our 30 Days of Python web-project run installed 41 packages in 8 seconds, but pip-audit reported 32 known vulnerabilities and tests were skipped because no target existed.

Setup4/58-second install and 1-second build, with more setup for hosted lessons
Docs3/5Clear lesson order, but a function example teaches the wrong operation
Community4/5September push and October correction PRs, with work still waiting
Maturity2/532 known vulnerabilities and no runnable test target in our lab

Discussed on

  1. hn30 Days of Python310 points

Who it’s for

Beginners who like written explanations and will type and modify the examples themselves.
Study groups or instructors who can discuss incorrect examples and review exercise answers.
Developers exploring whether Python data work or web development deserves further study.

Who it’s NOT for

Learners who need dependable worked examples without outside help: the functions lesson names an exponentiation example square_number, and its correction remains an open PR.
Teams seeking a deployable Flask starter: our lab reported 32 known vulnerabilities, and the example application enables debugging while binding to all interfaces.
Students who need automatic feedback on exercise answers: our lab found no runnable test target and skipped tests.
Learners who want every later exercise to stay local: the MongoDB chapter asks for an Atlas account, network access settings, and database credentials.

Setup reality

Our sandbox installed commit 50c11a8 in 8 seconds, adding 41 packages and occupying 40 MB. The build passed in 1 second. Pip-audit reported 32 known vulnerabilities. Tests were skipped because there was no script or target. The measured project lives in python_for_web/, within a 440-file, 71.7 MB checkout.

The opening lessons need a Python interpreter and an editor, with no hosted API credential. Later MongoDB exercises introduce an Atlas account, network access settings, and a database connection string. The web deployment chapter uses a Heroku account and CLI. These services were outside our measured setup.

The lab used Python 3.12 on Debian with 3 CPUs and 8 GB of RAM, without privileges or secrets. The README still illustrates an older interpreter. The Flask example enables debugging and listens on all interfaces, so revise its launch configuration before hosting it. No Dockerfile or CI workflow was found.

Start with the exercises before installing the web example

Open the first lesson and you're asked to write arithmetic in Python's interactive shell, then put it in a file. That small step explains the appeal of 30 Days of Python. The English lessons give a beginner somewhere specific to start, with screenshots for opening an editor and exercises after the explanations. You can begin learning without choosing a framework or signing up for a database.

Our checkout contained 440 files and occupied 71.7 MB, so this is a substantial folder of teaching material. The reading order moves through collections and functions before reaching pandas, Flask, and MongoDB. That breadth helps you discover what Python can do. It also makes the title a poor deadline: the README explicitly asks learners to work at their own pace. I'd choose it for a study group with someone available to explain mistakes.

What happened when we ran it

Our run installed the python_for_web/ project in 8 seconds, adding 41 packages and using 40 MB on disk. The build succeeded in 1 second. We cloned commit 50c11a8 on October 8, 2026, into an unprivileged Debian container with 3 CPUs and 8 GB of RAM, using the Python 3.12 uv image without secrets. Those results establish that the measured setup steps completed in that environment.

Pip-audit reported 32 known vulnerabilities. There was no test script or target, so the lab skipped tests. The scan also found no tests directory, no Dockerfile, and 0 CI workflow files. Our measurement method covers repository setup, rather than completed lessons or browser behavior. A successful build cannot tell you whether the Flask form produces a useful result, and the supplied audit summary doesn't identify advisory severity or affected packages.

A function named square_number computes something else

The functions lesson includes a higher-order-function example where square_number(n) returns n ** n. Its displayed result for an input of three is twenty-seven. The code and comment agree, which makes the misleading function name especially awkward for a beginner. An earlier example in the same lesson correctly squares its argument. Someone learning alone has to decide which example to trust while also learning how functions work.

Our scan found 0 CI workflow files, so the repository provides no visible automated check through that route. A contributor's open correction, PR 1007, addresses the square function, but an open proposal hasn't repaired the lesson you're reading. I'd have a learner predict each example's output before running it, then explain any discrepancy. An instructor can turn this into a useful discussion. A learner expecting consistently correct worked examples should choose another resource.

MongoDB adds credentials after the local lessons

The database chapter walks through creating a MongoDB Atlas account, choosing a cluster, setting network access, and adding a database user. Its connection string needs your own credentials. That adds account setup to what began as local arithmetic exercises. Keep database passwords outside committed source files, even though the chapter demonstrates connection strings inline. Joining the Telegram group is optional, and the opening lessons need no hosted API credential.

The 40 MB installed footprint belongs to the measured web project, rather than a complete deployment of every course exercise. The web chapter also introduces virtual environments and a Heroku account for deployment. In the checked-out application, the main block enables Flask debugging and binds to all interfaces. Treat that launch configuration as something to revise before hosting. The lab's successful build doesn't establish that the application is ready for public traffic.

Recent correction requests show activity and unfinished work

The repository's last push was September 30, 2026. GitHub showed 229 open issues and PRs when checked on October 17, and recent contributor activity included the square-function correction and a proposal to fix string-method examples. The latest-release endpoint returned no published release. Contributor activity is current, though proposed fixes remain unmerged. The missing release tag alone tells us little about how quickly lesson corrections will land.

Across roughly 4,562 source lines, the lab found no runnable test target. For this kind of repository, the consequence is educational: learners don't get an automated verdict on whether they've understood an exercise. The README's conversational explanations and editor screenshots reduce the effort of starting, but they don't supply feedback on your own answer. A mentor who reads your solution fills a gap that another explanatory paragraph cannot.

Choose checked exercises when you need feedback

Exercism's Python track groups work into concept and practice exercises and includes checks for the exercises. I'd pick it when you want a defined problem and a way to check your answer. Trekhleb's learn-python organizes examples by language topic and puts assertions beside expected behavior. That suits a developer who wants to change a small example and inspect what the change breaks. Neither comparison is a performance result from our sandbox.

For a reading group, 30 Days of Python still gives you a useful sequence and plenty to discuss. Keep the web example in a separate environment: its 32 known vulnerabilities make copying that environment into a real service a poor starting decision. Before progressing past the functions chapter, explain why n ** n doesn't match the name square_number. If you can't resolve that mismatch, get feedback before carrying the example into your own code.

Alternatives

ProjectWhat it isPick it when
Exercism Python trackConcept and practice exercises with instructions and checks for your solutions.pick this instead when feedback on exercise answers matters more than a daily reading sequence.
learn-pythonTopic-based Python examples with explanations and assertions showing expected behavior.pick this instead when you already program and want small examples to modify while learning Python syntax.

Sources

  1. 30 Days of Python README and course outline
  2. Functions lesson and higher-order example
  3. PR 1007: square_number correction
  4. Flask web lesson and deployment instructions
  5. MongoDB account and connection instructions
  6. Measured-commit Flask application source
  7. Exercism Python track
  8. learn-python examples and assertions

More dev tools reviews

claude-code-pro-course · deck-as-controller · Seep-Reverse-Lab · SkyCraft · yomiyasu · solidcraft · the whole board →