Versatile language for everything.
2 topics
Python basics: variables, data types (int, float, str, bool, None), strings (f-strings, methods), lists, tuples, dictionaries, sets. Control flow: if/elif/else, for/while loops, comprehensions. Functions: args, kwargs, default params, decorators, generators (yield). OOP: classes, inheritance, dunder methods, dataclasses. Exception handling: try/except/finally, custom exceptions. Type hints for clarity.
2 resources
Key stdlib modules: pathlib (files), json, csv, datetime, collections (Counter, defaultdict, deque), itertools, functools, re (regex), typing, unittest, logging, asyncio. Package management: pip, Poetry, uv. Virtual environments: venv, pyenv. Code quality: black (formatter), ruff (linter), mypy (type checker). Testing: pytest (fixtures, parametrize, mocking).
FastAPI: modern, async, auto-generated OpenAPI docs, Pydantic for validation, dependency injection. Django: batteries-included (ORM, admin, auth, forms, migrations), MVT pattern, Django REST Framework for APIs. Flask: minimal, flexible, many extensions. Choose FastAPI for APIs, Django for full-stack web apps.
Data science: NumPy (arrays), Pandas (DataFrames), Matplotlib/Seaborn (visualization), scikit-learn (ML). Automation: requests (HTTP), BeautifulSoup/Scrapy (web scraping), selenium (browser automation), schedule (job scheduling). Jupyter notebooks for interactive exploration. Python excels at gluing systems together.