ALL_SERIES
SERIES_OVERVIEW // CURRICULUM_MAP

Learn Python

// Membangun kontrak belajar Python berbasis The First 20 Hours: target performa, batas scope, sub-skill, feedback loop, dan rencana praktik 20 jam pertama untuk software engineer.

This track is ordered for sequential learning. Start from the first part if you want the full mental model, or jump directly into a chapter if you already know the foundations.

Total Parts
35
Reading Load
483
MIN TOTAL
Estimated Commitment
8.1 HOUR LEARNING TRACK
35 PARTS483 MIN TOTALapiapi-designapplication-boundariesarchitectureargparseasync-await

Curriculum Map

Ordered progression from foundations to advanced topics

PART 0121 MIN

Target Performance, Scope, dan 20-Hour Learning Contract

Membangun kontrak belajar Python berbasis The First 20 Hours: target performa, batas scope, sub-skill, feedback loop, dan rencana praktik 20 jam pertama untuk software engineer.

PART 0220 MIN

Deconstructing Python: Dari Bahasa ke Sistem Berpikir

Membedah Python sebagai bahasa, runtime, standard library, ecosystem, dan cara berpikir engineering agar software engineer tidak hanya menghafal syntax.

PART 0313 MIN

Environment, Toolchain, dan Friction Removal

Membangun environment Python modern yang reproducible, minim friksi, dan siap untuk deliberate practice: venv, pip, uv, pyproject.toml, pytest, Ruff, editor, dan command workflow.

PART 0410 MIN

Python Syntax Survival: Membaca, Menulis, dan Menjalankan Program

Panduan syntax survival Python untuk software engineer: struktur file, indentation, expression, statement, values, names, conditionals, loops, functions, imports, I/O, dan membaca traceback.

PART 0512 MIN

First 20 Hours Practice Loop: Mini Project Pertama

Membangun mini project Python pertama berbasis The First 20 Hours: CLI case tracker dengan domain model, state transition, JSON persistence, error handling, testing, dan practice loop.

PART 0614 MIN

Python Data Model: Object, Identity, Equality, dan Mutability

Membahas fondasi data model Python untuk software engineer: object, name binding, identity, equality, mutability, aliasing, copy, mutable defaults, lifecycle, dan konsekuensi desain API.

PART 0713 MIN

Core Collections: list, tuple, dict, set, dan Trade-off-nya

Membahas core collections Python untuk software engineer: list, tuple, dict, set, ordering, mutability, hashability, complexity, modelling trade-off, dan praktik pada case-tracker.

PART 0814 MIN

Functions as Design Units

Membahas function Python sebagai unit desain: signature, parameter, return, side effect, purity, closure, higher-order function, composition, error boundary, dan refactoring procedural code.

PART 0914 MIN

Modules, Packages, Imports, dan Application Boundaries

Membahas module, package, import system, __init__.py, python -m, import-time side effects, circular import, dependency direction, dan application boundary untuk Python project yang maintainable.

PART 1014 MIN

Exceptions, Failure Semantics, dan Defensive Python

Membahas exception Python secara engineering-level: hierarchy, raise/catch, custom exception, exception chaining, failure taxonomy, defensive boundaries, logging, dan error semantics.

PART 1111 MIN

Iteration, Comprehension, Generator, dan Lazy Thinking

Membahas iteration model Python: iterable, iterator, for-loop protocol, comprehension, generator function, generator expression, lazy evaluation, streaming data, itertools, dan pipeline design.

PART 1213 MIN

Object-Oriented Python: Class, Dataclass, Protocol, dan Composition

Membahas OOP Python secara engineering-level: class, instance, attributes, methods, dataclass, value object, entity, inheritance, composition, Protocol, ABC, duck typing, dan domain modelling.

PART 1312 MIN

Type Hints: Static Reasoning di Dynamic Language

Membahas type hints Python untuk production engineering: gradual typing, annotations, Optional, Union, Literal, TypedDict, Protocol, Generic, NewType, type alias, mypy/pyright, dan typing strategy.

PART 1410 MIN

Testing with pytest: Dari Confidence ke Design Feedback

Membahas testing Python dengan pytest sebagai feedback loop desain: test discovery, assertions, fixtures, parametrization, tmp_path, monkeypatch, exception tests, CLI tests, dan test structure.

PART 1512 MIN

Test Architecture: Mocking, Property Testing, Contract Testing

Membahas arsitektur testing Python tingkat lanjut: fakes vs mocks, unittest.mock, monkeypatch, property-based testing dengan Hypothesis, contract tests, golden files, deterministic tests, dan strategi menghindari flaky tests.

PART 1612 MIN

Code Quality Tooling: Ruff, Formatting, Linting, Type Checking, CI

Membahas quality tooling Python modern: Ruff formatter/linter, import sorting, pytest, mypy/pyright, pyproject.toml, pre-commit, GitHub Actions CI, quality gates, dan workflow team.

PART 1715 MIN

Packaging, Dependency Management, dan Reproducible Builds

Membahas packaging Python modern: pyproject.toml, project metadata, dependencies, dependency groups, optional dependencies, build backend, editable install, lockfile, wheel, sdist, dan reproducible builds.

PART 1812 MIN

Standard Library as Engineering Leverage

Membahas Python standard library sebagai leverage engineering: pathlib, datetime, json, csv, argparse, logging, collections, itertools, functools, contextlib, tempfile, subprocess, sqlite3, dan modul penting lainnya.

PART 1910 MIN

File I/O, Serialization, dan Data Boundaries

Membahas file I/O dan serialization Python secara engineering-level: text/binary, encoding, JSON, CSV, schema boundary, validation, atomic writes, corruption handling, data migration, dan repository design.

PART 2013 MIN

Logging, Diagnostics, dan Runtime Visibility

Membahas logging dan diagnostics Python: logging levels, logger hierarchy, structured context, exception logging, correlation id, metrics mindset, debugging, runtime visibility, dan operational design.

PART 2114 MIN

Concurrency Model: Threads, Processes, GIL, dan Workload Classification

Membahas model concurrency Python: concurrency vs parallelism, GIL, thread, process, concurrent.futures, queue, locks, workload classification, race condition, deadlock, dan decision framework.

PART 2212 MIN

Async Python: Event Loop, Coroutine, Task, dan Backpressure

Membahas async Python secara praktis: event loop, coroutine, await, Task, TaskGroup, cancellation, timeout, semaphore, queue, backpressure, async context manager, dan design pitfalls.

PART 2313 MIN

Performance Engineering: Measurement Before Optimization

Membahas performance engineering Python secara profesional: measurement before optimization, latency vs throughput, profiling, benchmarking, timeit, cProfile, pstats, flame graph mindset, algorithmic complexity, dan optimization strategy.

PART 2415 MIN

Memory Model, Object Overhead, dan Data-Oriented Python

Membahas memory engineering Python: object model, references, object overhead, container overhead, sys.getsizeof, tracemalloc, allocation churn, __slots__, dataclass slots, streaming, and data-oriented representation.

PART 2517 MIN

CPython Internals for Practical Engineers

Membahas CPython internals yang praktis untuk software engineer: interpreter, bytecode, frame, code object, object model, reference counting, garbage collector, GIL, free-threading, dan implikasi desain.

PART 2613 MIN

API Development with Python: FastAPI, Pydantic, dan Service Boundaries

Membahas pengembangan API Python dengan FastAPI dan Pydantic: HTTP semantics, schemas, validation boundary, dependency injection, service layer, error mapping, OpenAPI, testing, dan production-ready API design.

PART 2714 MIN

Data Access: SQLAlchemy, Transactions, Repository, dan Unit of Work

Membahas data access Python secara production-grade: SQLAlchemy 2.x style, Engine, Session, ORM mapping, transactions, repository pattern, unit of work, migration, testing, dan boundary design.

PART 2814 MIN

Architecture in Python: Layering, Ports, Adapters, dan Domain Modelling

Membahas arsitektur aplikasi Python: layering, dependency rule, ports and adapters, domain model, application service, repositories, unit of work, DTOs, domain events, dan modular boundaries.

PART 2911 MIN

State Machines, Workflow Modelling, dan Complex Case Lifecycle

Membahas state machine dan workflow modelling di Python: finite states, transition table, guards, commands, side effects, audit trail, idempotency, concurrency, testing, dan complex case lifecycle.

PART 3016 MIN

Security Engineering in Python Applications

Membahas security engineering untuk aplikasi Python: threat modelling, OWASP, input validation, authn/authz, secrets, password hashing, injection, deserialization, SSRF, CORS, dependency security, logging, dan secure design.

PART 3114 MIN

Observability, Operations, dan Production Readiness

Membahas production readiness Python: observability, logs, metrics, traces, health checks, readiness/liveness, configuration, graceful shutdown, deployment, runbook, alerts, SLO, dan operational excellence.

PART 3213 MIN

Library and Framework Design: Membuat Python Code yang Enak Dipakai

Membahas desain library/framework Python: public API, ergonomics, extension points, versioning, backward compatibility, deprecation, documentation, typing, errors, packaging, dan design principles.

PART 3316 MIN

Migration, Modernization, dan Maintaining Python Systems

Membahas cara memodernisasi dan merawat sistem Python jangka panjang: legacy assessment, Python version upgrade, dependency upgrade, pyproject migration, typing adoption, tests, refactoring, deprecation, dan migration playbook.

PART 3413 MIN

Capstone Project: Production-Grade Regulatory Case Management Service

Capstone project Python: membangun regulatory case management service production-grade dengan domain model, state machine, FastAPI, Pydantic, SQLAlchemy, Unit of Work, security, observability, testing, dan deployment readiness.

PART 3523 MIN

Final Review: Dari 20 Jam Pertama ke Top-Tier Python Engineering Judgment

Final review seri belajar Python berbasis The First 20 Hours: menyatukan mental model, skill tree, deliberate practice, engineering judgment, rubric top-tier, capstone review, dan rencana lanjutan setelah 20 jam pertama.