Unit 01 · lesson

The Developer Workflow

Core path: 30 minutes

What does a programmer actually do between an idea and a working program?

There is a version of programming that exists mostly in movies: type extremely fast, stare intensely at several windows, hit Enter, done.

Hackers is a great movie. It is not a reliable software-development methodology.

Real development is usually less dramatic and much more repeatable.

You make a small change. You run it. You inspect what happened. You decide what the evidence means. Then you change one thing and try again.

Concept flow

Professional code is built through a loop, not one perfect attempt

Make one controlled change, run it, observe evidence, debug mismatches, improve the result, and repeat.

  1. WRITEmake one controlled change
    run
  2. RUNexecute the current version
    observe
  3. OBSERVEcompare actual vs expected
    investigate
  4. DEBUGuse evidence to find the cause
    change one thing
  5. IMPROVEkeep the verified change
    repeat
  6. NEXT PASSreturn to one small change

The loop matters more than speed.

A working program is built through comparisons

Suppose you want this output:

SYSTEM START
SYSTEM READY

You write:

print("SYSTEM START")
print("SYSTEM REAdY")

The program runs. There is no crash.

It is still wrong.

Expected:

SYSTEM READY

Actual:

SYSTEM REAdY

Run the exact mismatch, then repair only the line responsible for the wrong output:

expected_actual.py
OutputRun with button or Ctrl/Cmd+Enter
Run the code to see output.
Ready to edit. Press Run when you want evidence.

The program runs without crashing, but one line violates the requirement. Compare actual output with SYSTEM READY, repair only the responsible source, and run again.

That comparison gives you something useful. The program does not have a mysterious "coding problem." One output line does not match the requirement. You can now inspect the source responsible for that exact line.

This habit scales surprisingly well:

  • requirement versus implementation;
  • expected output versus actual output;
  • working version versus broken version;
  • test expectation versus test result;
  • approved file list versus files an agent actually changed.

The tools get more advanced later. The reasoning does not change much.

One controlled change beats five guesses

Imagine the program stops working and you immediately change:

  • the file name;
  • two lines of code;
  • the terminal command;
  • the folder;
  • and a setting in the editor.

Then it works.

What fixed it?

You have no idea.

That is the problem with random troubleshooting. Movement is not the same thing as progress.

A stronger workflow is boring on purpose:

  1. Identify what you expected.
  2. Observe what actually happened.
  3. Pick one reasonable next check or change.
  4. Run again.
  5. Compare again.

The boring part is what makes the result explainable.

Your tools are different layers

Professional programming uses more than a programming language. During this course you will work with several tools that solve different problems:

Tool map

A developer works across several tools

Python is only one part of the environment. Each tool owns a different job, and professional work moves between them constantly.

Editor

VS Code

Write, read, search, and organize project files.

Language + runtime

Python

Express instructions and execute them with the Python interpreter.

Command surface

Terminal

Launch programs and work with the project from the command line.

Local history

Git

Record meaningful checkpoints and inspect how the project changes.

Remote repository

GitHub

Synchronize and review a remote copy of the project intentionally.

Optional helper

AI assistant

Suggest or explain work, while the human still owns verification and understanding.

Do not memorize that entire tool map today. Read it as a set of responsibilities.

VS Code or another editor helps you create and inspect source files.

Python provides the language and runtime we are using to execute Python programs.

The terminal gives you a command surface for launching programs and development tools.

Git records local project history.

GitHub can host and share a remote Git repository.

AI assistants can propose or explain code, but a proposal is not evidence that the program works.

Week 2 slows down and teaches the development environment properly. For now, the important point is that these are separate layers. When something breaks, asking "which layer am I actually looking at?" is a much better starting question than "why is the computer broken?"

Your first development loop

Create or open hello.py and use this starting version:

print("Hello")

Run it.

Now stop and record the actual output before changing anything.

Change the source to:

print("Hello, developer")

Run it again.

What changed?

The interpreter did not become a different interpreter. The terminal did not become a different terminal. The behavior changed because the source code changed.

Now make one deliberate mistake:

print("Hello, developer"

Run it and read the error before fixing it.

That sequence—working version, controlled change, new evidence—is the beginning of a professional habit.

When "it works" is not enough

Suppose a classmate says:

I fixed it.

That statement is incomplete.

A useful explanation sounds more like:

The program failed after I removed the closing parenthesis from the print() call. Python reported a syntax problem at that statement. I restored the parenthesis, ran the same command again, and the expected output returned.

The second explanation contains a change, evidence, and a verification step.

That is what makes it defensible.

By the end of this course, you will use that same mindset with tests, APIs, Git history, architecture, and AI-generated changes. Week 1 is just the smallest possible version of it.

Vocabulary lab

Flip the idea, not just the card

Explain the term before you reveal the back. Then compare your explanation with the definition, example, and warning.

1 / 5
Read all terms without animation
Developer Workflow
A repeatable process for changing, running, inspecting, and improving software. Example: Write, run, observe, debug, and improve one controlled change at a time. Do not confuse it with: Typing many unrelated changes until the program appears to work.
Expected Behavior
The result the program is supposed to produce according to the requirement or prediction. Example: The required line SYSTEM READY. Do not confuse it with: Whatever the program happened to print.
Actual Behavior
The result the program really produced when it executed. Example: SYSTEM REAdY printed by the current source code. Do not confuse it with: The behavior you intended but did not observe.
Bug
A defect that causes software to behave differently from its intended or required behavior. Example: A misspelled output message or invalid statement. Do not confuse it with: A deliberate feature behaving as specified.
Debugging
The process of using evidence to locate, understand, and correct a software defect. Example: Comparing expected output with actual output and changing the responsible line. Do not confuse it with: Randomly editing several parts of the system at once.