Module 00: Orientation
Understand what software engineering work actually is before touching tools.
The Mental Model
Section titled “The Mental Model”Software engineering is controlled change to a living system.
user pain -> system understanding -> small change -> verification -> release -> observationThe beginner thinks: “I need to write code.”
The engineer thinks: “I need to change behavior safely.”
Analogy
Section titled “Analogy”Imagine a city. Code is not the city. Code is the blueprint plus instructions for parts of the city. The real city also includes traffic, water, electricity, laws, people, repairs, emergencies, budgets, and bad weather.
Software is the same. Source code matters, but so do data, users, configuration, network, secrets, logs, deployment, cost, and failure.
What You Must Learn
Section titled “What You Must Learn”- A product is the thing users experience.
- An application is software that supports the product.
- A service is a running component with a responsibility.
- A system is all components and people involved in the outcome.
- A feature is a user-visible behavior backed by code, data, and operations.
- A bug is a gap between expected and actual behavior.
- Verification is evidence that behavior is correct.
Visual: The Engineering Loop
Section titled “Visual: The Engineering Loop”safe change loop
What A Real Engineer Does In The First Hour
Section titled “What A Real Engineer Does In The First Hour”They do not immediately code. They ask:
- Who is the user?
- What are they trying to do?
- What currently happens?
- What should happen instead?
- Where in the system does this behavior live?
- What data is involved?
- What can fail?
- How will I prove the change works?
Practical Drill
Section titled “Practical Drill”Pick one familiar app: food delivery, banking, WhatsApp, email, ecommerce, or college portal.
Draw:
user -> screen -> server -> database -> notification/payment/external systemThen write:
- One user action.
- One piece of data created.
- One backend rule.
- One failure mode.
- One log line you would want if it failed.
Agentic Angle
Section titled “Agentic Angle”Ask an agent:
Explain the system behind a food delivery app at beginner level. Includefrontend, backend, database, APIs, queues, external services, and failure modes.Then quiz me with 10 questions.Do not accept the answer blindly. Compare it against your own diagram.
Questions
Section titled “Questions”- Why is code alone not the full system?
- What is the difference between a feature and a component?
- Why does a real change need verification?
- What is one example of data that must never be lost?
- What is one example of a failure users can tolerate?
- What is one example of a failure users cannot tolerate?
- Create
portfolio/00-orientation/system-map.md. - Draw a system map for one real app.
- Write one user story.
- Write the expected behavior.
- Write three possible failures.
- Write how you would detect each failure.
- Ask an agent to critique the map.
- Revise the map.
Done When
Section titled “Done When”- You can explain software as a running system, not only as code.
- You can draw a basic user-to-data flow.
- You can name at least three failure modes.
- You can explain what evidence would prove a fix.