Skip to content

Interactive CLI tool for Python learning - based on python-for-csharp-devs course

Notifications You must be signed in to change notification settings

JimboSchneider/python-learning-assistant

Repository files navigation

Python Learning Assistant for C# Developers

An interactive command-line tool to help you work through the excellent python-for-csharp-devs course systematically.

📚 About the Course

This course contains 25 lessons (10 minutes each) designed to help C# developers quickly become proficient in Python. Each lesson:

  • Focuses on key differences between Python and C#
  • Provides examples and code snippets
  • Includes practice projects and additional resources

🚀 Getting Started

Prerequisites

  • Python 3.6 or higher installed on your system
  • A text editor or IDE (VS Code, PyCharm, etc.)

Installation

  1. Install required dependencies:
pip3 install -r requirements.txt

Or install the rich library directly:

pip3 install rich
  1. Make the script executable (optional):
chmod +x python_learning_assistant.py
  1. Run the assistant:
python3 python_learning_assistant.py

Or on Windows:

python python_learning_assistant.py

📖 How to Use

Key Features

  • Interactive Markdown Viewer: Lesson content is fetched from GitHub and displayed directly in the terminal with beautiful formatting
  • Progress Tracking: Your progress is automatically saved and synced
  • Notes System: Add personal notes to each lesson
  • Rich Terminal Output: Syntax-highlighted code blocks, formatted headers, and styled content

Available Commands

  • dashboard - View your learning progress
  • list - See all 25 lessons at a glance
  • lesson <number> - View lesson with full content from GitHub (e.g., lesson 5)
  • current - View your current lesson with full content
  • next - Move to the next lesson
  • complete <number> - Mark a lesson as complete (e.g., complete 3)
  • note <number> <text> - Add notes to a lesson (e.g., note 5 Remember to use list comprehensions)
  • reset - Reset all progress (with confirmation)
  • help - Show command help
  • quit or exit - Exit the assistant

Typical Workflow

  1. Start with the dashboard to see your progress:

    📚 > dashboard
    
  2. View your current lesson:

    📚 > current
    

    This fetches the lesson content from GitHub and displays it beautifully formatted in your terminal!

  3. Read through the lesson directly in your terminal with rich formatting, including:

    • Formatted headers and sections
    • Syntax-highlighted code blocks
    • Bulleted and numbered lists
    • Styled text and links
  4. Mark it complete when done:

    📚 > complete 1
    

    The assistant automatically advances you to the next lesson!

  5. Add notes as you learn:

    📚 > note 1 Python uses indentation instead of braces
    
  6. Jump to specific lessons if you want to review:

    📚 > lesson 7
    

📊 Progress Tracking

Your progress is automatically saved to ~/.python_learning_progress.json. This includes:

  • Current lesson position
  • Completed lessons
  • Personal notes for each lesson
  • Start date of your learning journey

🎯 Course Structure

Fundamentals (Lessons 1-10)

  • Installation and setup
  • Basic syntax and Python's unique features
  • Data types, control flow, and functions
  • File I/O and list comprehensions
  • Dictionaries, modules, and OOP basics

Intermediate (Lessons 11-19)

  • Exception handling
  • Lambda functions and generators
  • Slicing and indexing
  • Standard library and pip
  • Pythonic code and common pitfalls
  • Practice projects

Advanced (Lessons 20-25)

  • Multi-threading basics
  • Thread pools and executors
  • Synchronization and thread safety
  • Async/await programming
  • Combining threads and async
  • Performance optimization

💡 Tips for Success

  1. Take your time - Even though each lesson is 10 minutes, spend extra time on practice projects
  2. Write code - Don't just read; type out examples and experiment
  3. Use your notes - The note feature helps you remember key takeaways
  4. Compare to C# - Think about how each Python feature relates to C# concepts you know
  5. Practice daily - Consistency is key to retention

🔗 Additional Resources

🛠️ Customization

You can modify LESSONS list in the script to:

  • Add your own lessons
  • Include local markdown files
  • Track additional courses

📝 Example Session

🐍 Welcome to Python Learning Assistant for C# Developers!
Based on: https://github.com/robch/python-for-csharp-devs
Type 'help' for available commands

============================================================
🐍 PYTHON LEARNING DASHBOARD (for C# Developers)
============================================================
Progress: 0/25 lessons (0.0%)
Current Lesson: 1
============================================================

📚 > current

============================================================
📚 Lesson 1: Python Installation and Setup
============================================================
Duration: 10 min
Status: ⏳ Not Started

Topics:
  • Install Python on your machine
  • Set up a Python development environment
  • Learn how to run Python scripts and interact with the Python interpreter

🔗 Lesson URL:
https://github.com/robch/python-for-csharp-devs/blob/main/learn-python-in-half-day-lesson-1.md
============================================================

📚 > complete 1
✅ Lesson 1 marked as complete!
📚 Next up: Lesson 2 - Basic Syntax and Indentation

📚 > note 1 Python installed via python.org installer, using VS Code with Python extension
📝 Note added to Lesson 1

📚 > dashboard

============================================================
🐍 PYTHON LEARNING DASHBOARD (for C# Developers)
============================================================
Progress: 1/25 lessons (4.0%)
Current Lesson: 2
Completed: 1
============================================================

🤝 Contributing

Feel free to enhance this tool! Some ideas:

  • Add a web interface
  • Integrate with local markdown viewer
  • Add code snippet runners
  • Track time spent on each lesson

📄 License

This learning assistant is provided as-is for educational purposes. The course content belongs to the original repository author.


Happy Learning! 🐍✨

About

Interactive CLI tool for Python learning - based on python-for-csharp-devs course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •