Skip to content

Latest commit

 

History

History
76 lines (62 loc) · 2.67 KB

README.md

File metadata and controls

76 lines (62 loc) · 2.67 KB

Advanced Python Programming Learning Repository

Welcome to the Advanced Python Programming Learning Repository! This repository is structured to help you explore and track your progress on advanced Python concepts. Each topic includes checkboxes so you can monitor your learning journey.

Topics

Testing

  • Unit testing with unittest
  • Mocking and patching
  • Test-driven development (TDD)
  • Using pytest for advanced testing
  • Property-based testing with hypothesis

Automation

  • Automating tasks with os and shutil
  • Scripting with argparse and click
  • Automating web interactions with selenium
  • Scheduling tasks with apscheduler

Metaprogramming

  • Understanding type and metaclass
  • Using __getattr__, __setattr__, and __delattr__
  • Creating decorators and function wrappers
  • Dynamic class creation and modification

Memory Management

  • Reference counting and garbage collection
  • The gc module
  • Weak references and the weakref module
  • Analyzing memory usage with memory_profiler

Asyncio

  • Basics of asynchronous programming
  • Coroutines, tasks, and the event loop
  • Using asyncio for I/O-bound tasks
  • Combining asyncio with aiohttp and asyncpg
  • Advanced asyncio patterns

Concurrency

  • Thread-based concurrency with threading
  • Process-based concurrency with multiprocessing
  • Using concurrent.futures for simpler parallelism
  • Understanding the Global Interpreter Lock (GIL)

Parallelism

  • Parallel processing with multiprocessing
  • Distributed computing with dask
  • Leveraging GPUs with libraries like cupy

CPython Internals

  • Understanding Python's execution model
  • Exploring Python bytecode with dis
  • Writing C extensions for Python
  • Exploring the Python C API

Data Engineering

  • Data serialization with pickle and json
  • Working with large datasets using pandas and dask
  • ETL pipelines with airflow

Advanced Python Libraries

  • NumPy for numerical computing
  • Advanced plotting with Matplotlib and Seaborn
  • Scikit-learn for machine learning
  • TensorFlow and PyTorch for deep learning

Debugging and Profiling

  • Using pdb and ipdb for debugging
  • Profiling with cProfile and line_profiler
  • Tracing and logging with trace and logging

Performance Optimization

  • Writing efficient code with cython
  • Vectorization with numpy
  • Just-in-time compilation with numba
  • Using lru_cache for caching results