Skip to content
This repository was archived by the owner on Oct 24, 2026. It is now read-only.

Latest commit

 

History

History
82 lines (61 loc) · 3.97 KB

COURSE.md

File metadata and controls

82 lines (61 loc) · 3.97 KB

Python Mastery Course

Learn by building. Each challenge introduces new concepts through a real problem. Solve independently, compare solutions, discuss tradeoffs.


Level 1: Foundations

# Challenge Concepts
001 Menu-Based Calculator I/O, loops, conditionals, functions, basic math
002 Contact Book Dictionaries, lists, CRUD, input validation
003 Hangman Game Strings, sets, random, game loops, ASCII art
004 Word Frequency Counter File I/O, string methods, sorting, formatting
005 Expense Tracker Lists of dicts, date handling, filtering, f-strings

Level 2: Intermediate

# Challenge Concepts
006 Student Grade System Classes, init, methods, encapsulation
007 Bank Account System Inheritance, polymorphism, dunder methods
008 Library Manager Composition, class relationships, search/filter
009 CSV Data Analyzer csv module, data processing, statistics
010 Password Vault Error handling, JSON, hashlib, try/except design

Level 3: Pythonic

# Challenge Concepts
011 Data Transformer List/dict/set comprehensions, nested comprehensions
012 Log File Parser Regular expressions, pattern matching, groups
013 Custom Collections Generators, iterators, iter, next, yield
014 Function Toolkit Closures, decorators, functools, higher-order fns
015 Plugin System Modules, packages, imports, init.py, dynamic loading

Level 4: Real-World

# Challenge Concepts
016 CLI Task Manager argparse, project structure, pip packaging
017 REST API Client requests, JSON APIs, error handling, retries
018 Database CRUD App sqlite3, SQL basics, context managers
019 Test Suite Challenge unittest, pytest, mocking, TDD workflow
020 Type-Safe Config Loader Type hints, dataclasses, protocols, validation

Level 5: Advanced

# Challenge Concepts
021 Async Web Scraper asyncio, aiohttp, coroutines, gather
022 Chat Server Threading, sockets, producer-consumer pattern
023 Mini ORM Metaclasses, descriptors, getattr, magic
024 Data Pipeline Generators pipelines, itertools, memory efficiency
025 Build Your Own pytest Introspection, ast module, dynamic dispatch

Rules

  1. No skipping -- each challenge builds on previous ones
  2. Both solve independently before comparing
  3. Get it working first, then refactor for clean code
  4. Each solution should have a if __name__ == "__main__": block
  5. Write at least 3 test cases per challenge (from challenge 019 onward, use pytest)
  6. After comparing solutions, write a brief learnings.md in your folder

Pace

  • 1-2 challenges per week = solid pace
  • Spend time on the comparison -- that's where real learning happens
  • If a challenge feels too easy, do the bonus objectives
  • If stuck for 30+ min, pseudocode first, then code