What Is Software Engineering?#
Software engineering is the disciplined application of engineering principles to the design, development, testing, and maintenance of software systems. This learning track covers the foundational knowledge and practical techniques used to build production-quality web APIs with Python.
If you are new to the field, start with Introduction to Software Engineering for a narrative overview before diving into the tiered tracks below.
What You Will Learn#
Foundations — Web fundamentals, concurrency models (threading, asyncio, greenlets), OS-level I/O, and CPython internals
API Development — Building web APIs with FastAPI, ASGI, Pydantic data modeling, request handling, and dependency injection
Data Persistence — PostgreSQL with SQLAlchemy, async database sessions, Alembic migrations, and CRUD patterns
Security & Testing — Securing APIs with JWT and OAuth2, implementing authentication patterns, and unit testing with pytest
Cheatsheets — Quick-reference pages for git, databases, API security, testing, containers, CI/CD, and architecture
Exams — Summative project assessments
Prerequisites#
Basic Python programming knowledge.