Chapter 14
Where to Go Next
Choose Your Next Project
You are done. Chapter 13 was the last assessment, and this lesson adds no new work.
It is worth stopping to notice how far that is. When you started, Python was something that happened in a browser tab when you pressed a button. Now you can open a
That last one is the rare skill. Plenty of people can make code work on their own machine. Far fewer can package the decisions so it works on someone else’s.
Pick one thing, not six
Below are six directions. Pick one. All of them are optional and none is graded.
The reason for picking one is not modesty, it is that a half-finished project teaches less than a small finished one. Each route below names a goal, a first action, and a
Build Git habits
Goal: keep a project history that contains source and nothing else.
First action: learn what to exclude, then review and commit one coherent change.
Done when: the change is committed and
git statusreports a clean tree.
This is the one I would choose. Your capstone is already a clean ten-file tree with generated state kept out of it, which is exactly the situation a first repository wants.
Go deeper into program design
Goal: turn working code into clearer structure.
First action: take the Fundamentals II readiness check and see which language skills that route expects.
Done when: you can finish the readiness check and say which skill you would refresh first.
Fundamentals II covers the language ground this course deliberately skipped:
Strengthen your testing
Goal: write a test that actually rejects a realistic defect.
First action: copy your project, break one thing on purpose, and check whether your suite notices.
Done when: the correct version is green, the broken one is red, and it is red for the right reason.
Chapter 10 did this to you. Doing it to yourself is the version that sticks. Keep every file effect under tmp_path.
Push on the API client
Goal: extend the client without depending on a live service.
First action: add one more bounded response case, using fake responses in tests.
Done when: the new behavior and its failure case are both deterministic.
Resist adding a configurable host, a token, or a retry
Make the handoff smoother
Goal: make a fresh rebuild easier for somebody else.
First action: rebuild from an empty folder following only your README, and fix wherever you hesitated.
Done when: clean copied source runs its tests and its offline command without touching your original environment.
You will hesitate somewhere. Everyone does. The hesitation is the bug report.
Make the capstone yours
Goal: point the tool at something you actually care about.
First action: copy it, change one input domain and one useful output, and keep the failure, test, and clean-tree boundaries intact.
Done when: the copy passes its tests and its offline run against your data.
A note on what you built
The practice API was internal to Python Land, so the capstone will not fetch anything once it leaves the site. That is worth understanding rather than being disappointed by: everything you learned at that boundary, checking status before decoding, bounding every wait, validating what comes back, refusing to retry blindly, is exactly what you need for a real service. The service was fake so the lessons could be deterministic. The habits are not.
Go build something.