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 overview is designed to help you choose the right entry point quickly. Follow the full track from lesson one, continue from your last checkpoint, or jump straight into a phase that matches what you need right now.
Curriculum Map
Navigate by phase, then choose the lesson that matches your current depth.
Target Performance, Scope, dan 20-Hour Learning Contract
21 minMembangun 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.
Deconstructing Python: Dari Bahasa ke Sistem Berpikir
20 minMembedah Python sebagai bahasa, runtime, standard library, ecosystem, dan cara berpikir engineering agar software engineer tidak hanya menghafal syntax.
Environment, Toolchain, dan Friction Removal
13 minMembangun environment Python modern yang reproducible, minim friksi, dan siap untuk deliberate practice: venv, pip, uv, pyproject.toml, pytest, Ruff, editor, dan command workflow.
Python Syntax Survival: Membaca, Menulis, dan Menjalankan Program
10 minPanduan syntax survival Python untuk software engineer: struktur file, indentation, expression, statement, values, names, conditionals, loops, functions, imports, I/O, dan membaca traceback.
First 20 Hours Practice Loop: Mini Project Pertama
12 minMembangun 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.
Python Data Model: Object, Identity, Equality, dan Mutability
14 minMembahas fondasi data model Python untuk software engineer: object, name binding, identity, equality, mutability, aliasing, copy, mutable defaults, lifecycle, dan konsekuensi desain API.
Core Collections: list, tuple, dict, set, dan Trade-off-nya
13 minMembahas core collections Python untuk software engineer: list, tuple, dict, set, ordering, mutability, hashability, complexity, modelling trade-off, dan praktik pada case-tracker.
Functions as Design Units
14 minMembahas function Python sebagai unit desain: signature, parameter, return, side effect, purity, closure, higher-order function, composition, error boundary, dan refactoring procedural code.
Modules, Packages, Imports, dan Application Boundaries
14 minMembahas module, package, import system, __init__.py, python -m, import-time side effects, circular import, dependency direction, dan application boundary untuk Python project yang maintainable.
Exceptions, Failure Semantics, dan Defensive Python
14 minMembahas exception Python secara engineering-level: hierarchy, raise/catch, custom exception, exception chaining, failure taxonomy, defensive boundaries, logging, dan error semantics.
Iteration, Comprehension, Generator, dan Lazy Thinking
11 minMembahas iteration model Python: iterable, iterator, for-loop protocol, comprehension, generator function, generator expression, lazy evaluation, streaming data, itertools, dan pipeline design.
Object-Oriented Python: Class, Dataclass, Protocol, dan Composition
13 minMembahas OOP Python secara engineering-level: class, instance, attributes, methods, dataclass, value object, entity, inheritance, composition, Protocol, ABC, duck typing, dan domain modelling.
Type Hints: Static Reasoning di Dynamic Language
12 minMembahas type hints Python untuk production engineering: gradual typing, annotations, Optional, Union, Literal, TypedDict, Protocol, Generic, NewType, type alias, mypy/pyright, dan typing strategy.
Testing with pytest: Dari Confidence ke Design Feedback
10 minMembahas testing Python dengan pytest sebagai feedback loop desain: test discovery, assertions, fixtures, parametrization, tmp_path, monkeypatch, exception tests, CLI tests, dan test structure.
Test Architecture: Mocking, Property Testing, Contract Testing
12 minMembahas 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.
Code Quality Tooling: Ruff, Formatting, Linting, Type Checking, CI
12 minMembahas quality tooling Python modern: Ruff formatter/linter, import sorting, pytest, mypy/pyright, pyproject.toml, pre-commit, GitHub Actions CI, quality gates, dan workflow team.
Packaging, Dependency Management, dan Reproducible Builds
15 minMembahas packaging Python modern: pyproject.toml, project metadata, dependencies, dependency groups, optional dependencies, build backend, editable install, lockfile, wheel, sdist, dan reproducible builds.
Standard Library as Engineering Leverage
12 minMembahas Python standard library sebagai leverage engineering: pathlib, datetime, json, csv, argparse, logging, collections, itertools, functools, contextlib, tempfile, subprocess, sqlite3, dan modul penting lainnya.
File I/O, Serialization, dan Data Boundaries
10 minMembahas 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.