A structured 8-week plan to take you from basic Python to professional software development with GUIs, APIs, modularity, and Copilot mastery.
Goals
- Set up development environment
- Enable GitHub Copilot in VS Code
- Refresh Python syntax & basics
- Learn Git basics
Topics
- Python: variables, functions, loops, data types
- Git: clone, branch, commit, push/pull
- Copilot setup in VS Code
Resources
- Python Official Tutorial
- GitHub Copilot Quickstart
- Copilot in VS Code: Getting Started
- GitHub Skills: Intro to GitHub
Deliverable
A CLI script (e.g., calculator or JSON parser) with type hints + docstrings, version-controlled in Git.
Goals
- Write code with professional structure & standards
- Learn error handling, logging, testing
Topics
- OOP (classes, inheritance, composition)
- Error handling & logging (
loggingmodule) - Virtual environments (
venv, pip) - Unit testing with
pytest
Resources
- PEP 8 Style Guide
- Logging HOWTO (Python Docs)
- pytest Getting Started
- Python Docs β venv
- Installing Packages with pip and venv (Python Packaging Guide)
- RealPython: Python Virtual Environments Primer
Deliverable
A Python package (e.g., math utilities) with logging + pytest test suite.
Goals
- Build basic desktop GUIs
- Structure GUIs for maintainability
Topics
- PyQt5: widgets, layouts, signals/slots
- Qt Designer β
.uiβ Python code - Threads & timers for background tasks
Resources
Deliverable
A PyQt5 βDashboardβ app with buttons to start/stop a process and a live counter.
Goals
- Connect apps to external APIs
- Handle async tasks properly
Topics
- REST APIs: GET/POST with
requests - JSON parsing
- Async tasks (
threading,asyncio) - Data visualization (matplotlib, PyQtGraph)
Resources
Deliverable
A GUI that fetches live data from a public API (e.g., weather or crypto) and plots results.
Goals
- Structure larger projects cleanly
- Implement plugin/extension systems
Topics
- Modular architecture (packages, imports)
- Plugin/extension patterns (dynamic loading)
- Config files (JSON, YAML)
- Writing documentation (README, docstrings)
Resources
Deliverable
Extend Week 4 project with a plugin system that adds new βpanelsβ or features dynamically.
Goals
- Use Copilot effectively for scaffolding & refactoring
- Enforce maintainability & readability
Topics
- Copilot prompt engineering (Context β Task β Constraints)
- Copilot Chat for debugging, tests, docs
- Code formatting (
black,flake8) - Auto-generating docs/tests with Copilot
Resources
- Prompt Engineering for Copilot (GitHub Docs)
- Write Tests with Copilot
- Black Code Formatter
- Best practices for using GitHub Copilot
- Prompt engineering for GitHub Copilot Chat
- 5 Tips for Writing Better Custom Instructions for Copilot (GitHub Blog)
- Best practices for using Copilot to work on tasks (Coding Agent)
- Microsoft Learn: Introduction to Prompt Engineering with GitHub Copilot
Deliverable
Refactor earlier projects with Copilot β enforce PEP-8, add tests, auto-generate README/docs.
Goals
- Apply advanced design practices
- Work in GitHub workflows like a professional
Topics
- Design patterns (Observer, Factory, Singleton)
- Async/parallel programming patterns
- Packaging & distribution with Poetry/setuptools
- GitHub workflows: PRs, reviews, CI/CD
Resources
Deliverable
A modular GUI app with at least 2 plugins, tested + CI workflow on GitHub.
Goals
- Apply everything in one end-to-end project
Capstone Project:
Modular Control Suite
- PyQt5 UI with multiple panels (status, logs, control)
- API integration (fetch + send data)
- Plugin system for extensibility
- Logging + error handling
- Tests + GitHub repo with CI/CD + documentation
Deliverable
A polished GitHub repository with:
β
PyQt5 GUI
β
API integration
β
Plugins/extensions
β
Tests & CI/CD
β
Documentation
By the end of this program, you will be able to:
- Write clean, modular Python code with tests & docs
- Build professional GUIs in PyQt5
- Integrate REST APIs with error handling
- Create plugin/extension systems
- Use Copilot effectively for prompting, debugging, and refactoring
- Work with GitHub workflows like a professional developer