

11 September 2026

This isn't a random folder of "learned NumPy today" notes. It's a structured curriculum I built for myself first, working through NumPy, Pandas, and Matplotlib properly rather than piecing together fragments from scattered tutorials — and it's grown into the same material I now teach from on YouTube.
Most scattered-tutorial learning has a specific failure mode: you can follow along with any individual video, but you can't yet explain why a particular NumPy operation is vectorized instead of looped, or when Pandas' .apply() is the wrong tool for a job a vectorized operation would handle faster. That gap — knowing the syntax without the underlying reasoning — is what a structured, sequenced curriculum is supposed to close, and following disconnected tutorials usually doesn't.
.plot() and accepting the default outputThe reason this repository has real structure — rather than being a notes dump — is that it doubles as course material. Each section is written assuming someone else will read it next, with the reasoning spelled out, not just the code. That constraint (write it so a student can follow it, not just so future-me remembers it) is what actually forces clarity, more than writing private notes ever does.
A lot of "I learned X" repositories are really just exercise archives — technically evidence you did the exercises, but not evidence you could explain the exercises to someone else. Treating your own learning material as something worth structuring properly, from day one, is what turns a practice repo into something that's actually useful later — to you, and to anyone else working through the same material.
FAQ
NumPy fundamentals (arrays, indexing, broadcasting, vectorization), Pandas (DataFrames, groupby, merges), and Matplotlib (building charts that communicate, not just default plots).