{"@context":"https://ihatereading.in/roadmap/schema/v1","type":"roadmap-chapter","roadmap":{"slug":"python-development","title":"Python Developer Roadmap","url":"https://ihatereading.in/roadmap/python-development","machineUrl":"https://ihatereading.in/roadmap/python-development.json"},"slug":"functions-and-modules","title":"Functions, Modules & Packages","url":"https://ihatereading.in/roadmap/python-development/functions-and-modules","machineUrl":"https://ihatereading.in/roadmap/python-development/functions-and-modules.json","summary":{"purpose":"Compose Python with functions, decorators, packages, and import boundaries.","prerequisites":["Syntax and types"],"afterThisChapter":["Async IO & Concurrency","Ecosystem & frameworks"]},"agentLens":null,"topics":[{"id":"functions-decorators","slug":"functions-decorators","title":"Functions & decorators","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["`*args` / `**kwargs`","Decorators","Closures in Python"],"why":["Frameworks (FastAPI, Flask, agents) lean on decorators and injection."],"prerequisites":[],"nextTopics":["modules-and-packages"],"relatedTopics":[],"usedIn":[],"understand":null,"questions":{"learning":["What does a decorator actually do at runtime?"],"practice":["Write a timing decorator that logs function duration."],"interview":["Explain decorators with a simple example."],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"CLI with subcommands using `argparse` and a `utils` module.","intermediate":"Package published layout with `pyproject.toml` and importable library code.","advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":[],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":[]},"agentLens":null,"skipIf":null,"build":null,"next":["modules-and-packages"],"prerequisite":[]},{"id":"modules-and-packages","slug":"modules-and-packages","title":"Modules & packages","level":"beginner","category":null,"importance":null,"difficulty":"beginner","learn":["`import` paths","`__init__.py` / namespace packages","Virtual environments"],"why":["Real Python code spans multiple files and dependencies."],"prerequisites":[],"nextTopics":["async-and-concurrency"],"relatedTopics":[],"usedIn":[],"understand":null,"questions":{"learning":[],"practice":[],"interview":[],"advanced":[],"debugging":[],"comparison":["Relative vs absolute imports — when to use which?"]},"projects":null,"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":[],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":[]},"agentLens":null,"skipIf":null,"build":null,"next":["async-and-concurrency"],"prerequisite":[]}],"updatedAt":"2026-10-23T05:57:51.450Z"}