Welcome to my software craftsmanship portfolio. This repository tracks my progression through Think Python (Allen B. Downey). However, this isn't just a collection of tutorial scripts. My goal was to treat the learning process as a rigorous engineering discipline.
I focused heavily on:
- Clean Architecture: Avoiding massive unstructured files.
- Readability: Strict adherence to PEP8, explicit typing, and descriptive variable names.
- Practical Application: Translating abstract concepts into CLI tools, simulators, and games.
- Mental Models: Explaining the why alongside the how.
The repository is structured methodically, chapter by chapter. Each chapter acts as a self-contained module demonstrating specific engineering patterns.
Inside every chapter directory, you will find exactly five files:
README.md: High-level concepts and engineering takeaways.notes.md: Personal insights, mental models, and debugging strategies.examples.py: Clean, well-documented code exploring the chapter's mechanics.exercises.py: Implementations of algorithms and problem-solving tasks.mini_project.py: A practical application tying the chapter together (e.g., CLI tools, games, automated simulators).
- Chapters 1-6: Procedural foundations, control flow, pure functions, and recursion.
- Chapters 7-12: State management, linear iteration, data structures (lists, dicts, tuples), and file I/O.
- Chapters 13-18: Object-Oriented Programming, Magic Methods, Composition, Inheritance, and Architectural Design Patterns.
- Chapters 19-21: Pythonic Idioms, Debugging Strategies, and Algorithm Analysis (Big O Notation).
- Capstone & Standalone Projects: Contains
RecallCLI(a fully decoupled terminal flashcard engine) and 7 standalone utility scripts demonstrating real-world scripting.
This repository is optimized for clean execution and automated testing.
1. Clone the repository:
git clone https://github.com/yourusername/think-python-engineering.git
cd think-python-engineering2. Setup a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate3. Install linting & testing dependencies:
pip install -r requirements.txt4. Run formatting and tests:
black .
isort .
flake8 .
pytest tests/This is a living engineering notebook. Follow my progress in the LEARNING_JOURNAL.md.