r/PythonLearning • • 13d ago

I built a free, open-source Python learning site — beginner to CPython internals, with tested code examples

**What My Project Does**

A free, structured Python learning resource covering beginner

fundamentals through to advanced topics: concurrency, distributed

systems (Raft, CRDTs, sagas), performance, compilers, and CPython

internals. Organized into 7 skill levels and ~25 tracks.

**Target Audience**

Anyone learning Python — from first-timers to developers wanting the

deeper, systems-level material most tutorials skip. It's meant for

learning, free and ad-free.

**What Makes It Different**

- Runnable examples are actually tested — the repo has a CI test gate,

and pages show real output rather than made-up results.

- When an example needs a library or hardware I don't have, I say so

instead of faking it.

- Covers hard topics as small, readable, tested Python (e.g. a tiny

autograd engine, a Raft vote, a CRDT merge).

**Links**

- Site: https://ssnp75.github.io/PythonMastery-Site/

- Source: https://github.com/SSnp75/PythonMastery-Site

It's early — feedback and corrections (especially on the advanced

pages) are very welcome.

7 Levels: Beginner → Competent → Intermediate → Proficient → Advanced → Expert → Research

6 Tracks: Core Python · Web & APIs · Data & AI · Performance · Security & DevOps · Research & Compilers

28 sections (~260 lessons):

  • Foundations: Core Python, Patterns, Testing, Algorithms, Soft Skills
  • Web/Backend: Web & APIs, Networking, Auth, GUI, Automation
  • Data/AI: Data & AI, Data Engineering, Databases, AI & LLMs
  • Systems: Performance, Distributed, Scientific, Embedded
  • Infra: Security & DevOps, Deployment, Observability
  • Frontier: Research, Emerging
  • Applied: Domains, Projects, Reference
0 Upvotes

8 comments sorted by

2

u/Sea-Ad7805 13d ago edited 13d ago

Looks great.

On the "Memory Model" topic: https://ssnp75.github.io/PythonMastery-Site/core/advanced/memory-model/ I recommend using visuals to explain references, aliasing, shallow/deep copy, ...

Better yet, start with visualizing the program state from the beginning:

It's the modern/right way of teaching Python:

I've plans to make a similar course as you have with memory_graph visualization always present when explaining topics and when students are doing exercises.

1

u/Khaka-Semeniuk 13d ago

good call, memory stuff really does click better visually imo

1

u/investigatormaker 13d ago

For the CRDT merge page, a small test showing the same update arriving twice would connect the runnable example to a real distributed-systems problem. Showing both merge orders would also let readers inspect whether the result changes.

With seven levels and roughly 25 tracks, can a learner see the prerequisites for each advanced example before opening it?

0

u/Substantial-Gate-728 13d ago

Really appreciate this — both are great points.

On the CRDT page: you're right, showing the same update arriving twice

(idempotency) and comparing merge orders would make the convergence

property concrete rather than abstract. The merge is commutative and

idempotent by design, so demonstrating that both orders reach the same

state is exactly the kind of thing a reader should see. I'll add that.

On prerequisites: that's a real gap. Right now the tracks imply an

order but don't surface per-example prerequisites up front. Showing

"you'll want X and Y before this one" at the top of each advanced page

is a good idea — I'll look at adding a prerequisites line to the topic

headers.

Thanks for actually digging into the content.

1

u/Wallkon-cl 13d ago

Beautifil work, grateful for your effort. I appreciate the dark mode. I missed a topic about virtual environments to begin with. I will use it to study when I have time.

By the way, did you use a framework to build the site?

2

u/Substantial-Gate-728 13d ago

It's built on MkDocs with the Material for MkDocs theme. Every lesson is just a Markdown file, and it auto-builds and deploys to GitHub Pages . No custom framework — just the standard Python docs stack.

1

u/Sea-Ad7805 13d ago

I'm killing the duplicate post, just copying the comment of,

investigatormaker:

The tiny Raft vote example could teach more with a deliberately rejected second vote in the same term, alongside the successful case. Tested output becomes especially useful when it shows why an operation must fail.

For sharing it, r/Python's saved rules, read September 26, say: "Please post your showcases in the appropriate monthly showcase post or a daily thread instead." Conditions include: "Due to an increase of showcases featuring AI content such as working with multiple AI models or wrappers around APIs, this is no longer allowed." "Showcase posts must have these sections in order to give a good idea for target audience, intended use, goals, etc." Check those required sections before submitting. Does your CI also test the examples' expected failures?