THE COMPLETE LESSON GUIDE
Python concepts.
With a reason to use them.
Keep the twelve-week core and select the optional branches your next project needs. Every lesson has an original explanation, a task, sources and an exit check.
00 / Week 1
Make Python yours
A light setup. A clear starting point.
- Interpreter & virtual environmentsKeep each project isolated and make the interpreter explicit.
- A diagnostic, not a restartUse existing Python exposure as an advantage and verify it with a small task.
01 / Weeks 1–3
Think in Python
Course chapters 1–6 · small functions, clear reasoning.
- Run a programA program is an ordered set of instructions with observable output.
- Variables, types & missing valuesA name refers to an object; type determines the operations that object supports.
- Functions & explicit contractsA function turns named inputs into a useful result with a clear contract.
- Scope & side effectsLocal names help a function behave predictably across calls.
- Testing & debuggingA failing example is evidence you can narrow to a specific cause.
- Operators & computationOperators encode arithmetic, precedence and discrete decisions.
02 / Weeks 3–5
Work with real shapes of data
Course chapters 7–12 · logic, collections, failure.
- Comparisons & branchingBranch on explicit conditions and keep unknown values distinct.
- Loops & accumulationIteration applies a rule repeatedly while preserving an invariant.
- Lists, slices & comprehensionsSequences preserve order, including repeated values.
- Dictionaries & groupingMappings connect unique keys to values and support lookup and grouping.
- Sets & reconciliationSets answer membership and difference questions without keeping duplicates.
- Exceptions & honest failuresExpected input problems need useful error messages and a visible policy.
03 / Weeks 6–7
From scripts to reliable tools
Files, modules, tests, and command lines.
- Modules, typing & data classesTurn a growing script into small importable parts.
- Files, CSV, JSON & pathsRead and write data with explicit formats and encodings.
- Tests that catch a broken contractUse examples and failure cases to protect meaningful behavior.
- Command lines, config & loggingMake a script runnable by you, CI, or an orchestrator.
- Build 01 · EGP expense ledgerApply the twelve foundations in one small useful program.
04 / Weeks 8–9
Build on your SQL & BI skills
Tabular data, quality, joins, and precise metrics.
- DataFrames through a SQL lensUse labeled tabular operations with explicit data types.
- Joins, nulls & grainA join is a cardinality decision, not just a merge call.
- Build 02 · PixelFed quality CLIProfile landing data and publish a quality report without rewriting source files.
- NumPy & time-aware analysisUnderstand array shape, masks and units before optimizing.
- Optional · a clean ML bridgeCarry reliable Python into model preparation and evaluation.
05 / Weeks 10–12
Connect it. Test it. Ship it.
APIs, databases, orchestration, and portfolio evidence.
- APIs, JSON & failure policiesTreat external data as an input that can be late, incomplete or unavailable.
- SQL loading & idempotencyLoading twice should have a documented, stable outcome.
- Build 03 · a rerunnable data pipelineConnect extraction, validation, quarantine and loading into one traceable run.
- n8n, CI & operational handoverWrap a tested tool with the smallest useful scheduler.
- Useful problem-solving patternsChoose structures by the operation you need to perform.
- Publish evidence & choose your next stepFinish with a reproducible artifact and a clear account of what you learned.
06 / After the core · optional branches
Choose your next depth
Twelve focused extensions for reliable data tools and applications.
- OOP, composition & data classesUse objects to express a useful boundary, with functions for transformation logic.
- Iterators, generators & streamingProcess a sequence without requiring every record to be resident in memory.
- Context managers & decoratorsMake cleanup and cross-cutting behavior explicit without obscuring a function contract.
- Type hints, protocols & validationUse static contracts to improve maintainability while validating external data at runtime.
- Regex, Unicode & Arabic textTreat encoding, normalization and business identifiers as separate decisions.
- Packages & reproducible dependenciesMake the tool runnable from a clean environment with declared requirements.
- Time zones, money & measurement unitsMake temporal and numeric meaning explicit before aggregation.
- Async I/O & bounded concurrencyOverlap waiting work while preserving deadlines and explicit failure policy.
- Profiling, memory & measured optimizationMeasure a bottleneck before changing a correct implementation.
- CSV, Parquet & schema evolutionChoose a storage format using types, access pattern and downstream compatibility.
- Database transactions & connection lifetimesControl the unit of work and distinguish a transaction from a connection.
- Data apps with Streamlit, Plotly & DashTurn a tested dataset into an interface that communicates the right question.