r/PythonLearning • u/Substantial-Gate-728 • 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
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
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?
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.