Training agenda
  1. FUNCTIONAL PROGRAMMING
    • * args & ** kwargs
    • Unpacking arguments and collections
    • Function as parameter (First class citizen)
    • Lambda functions (Anonymous)
    • List comprehensions, dictionary comprehensions, etc … – advanced
    • Nested list and dictionary comprehensions, etc …
    • ITERTOOLS module – overview
    • FUNCTOOLS module – overview
    • Generators and iterators (different ways to define)
    • Decorator pattern – create your own decorators (simple decorator)
  1. OOP PROGRAMMING – ADVANCED LEVEL
    • Documenting the code
    • Class attributes
    • Multi-inheritance and Method Resolution Order
    • Super method
    • Access to attributes, private attributes
    • Descriptors and defining properties   (__get__, __set__, __delete__, __set_name__)
    • __getitem__, __setitem__, __delitem__
    • Implementation of iterability for classes
    • Operator overloading
    • Abstract classes – basic issues
    • Class decorators with arguments
    • Metaclasses – basic issues
  1. USEFUL TOOLS
    • Type annotations (hints) – information and application example
    • TIMEIT module – examples (comparison of the execution time of algorithms)
    • LOGGING module – event logging (configuration and application)
    • OS module – revision and additional information
    • SYS module – revision and additional information
    • Interaction with the operating system and file system – SYS and OS modules
  1. COLLECTIONS module – an extension of built-in complex types
    • NamedTuple
    • DataClass
    • DefaultDict
    • Deque
    • Counter
  1. REGULAR EXPRESSIONS – RE module:
    • Syntax – symbols, structure of regular expressions
    • match & search functions
    • findall & finditer functions
    • Pattern object
    • Match object
    • sub & split functions
    • DOTALL & MULTILINE flags
    • Online tools for creating regular expressions (e.g. regex101 and Pythex)
  1. DATA PROCESSING
    • REQUESTS – HTTP protocol module (basic information and requests from Python)
    • BEAUTIFUL SOUP – WebScrapping (XML & HTML) module (example of use in searching hypertext documents)
    • PARAMIKO module – SSH connections (application example)
    • JSON, YAML, PICKLE – practical use
    • Introduction to Pandas (reading and writing XLS, CSV, etc …)
    • Review of other libraries
  1. DATABASE
    • Overview of popular "Connectors" for relational databases – based on connections with MYSQL / PostgreSQL / ORACLE or other selected engine
    • Query handling from Python – basic queries
    • Connection with non-relational databases – on the example of PYMONGO (MongoDB)
    • ORM on the example of SQLAlchemy
  1. THREADS AND PROCESSES:   THREADING module basic concepts:
    • Launching threads
    • Thread synchronization
    • Rlocks
    • Semaphores
    • GIL (Global Interpreter Lock)
  1. MULTIPROCESSING module – basic concepts:
    • Processes, queues, locks
    • Pools
    • Daemons
    • Data exchange between processes
  2. ASYNCHRONOUS PYTHON – Introduction and basics
    • ASYNCIO module – overview of the basic issues
    • Coroutines, tasks
    • Streams
    • Subprocesses
    • Queues
    • Exceptions
    • Event Loop
    • Futures
    • Asynchronous (Non-Blocking) HTTP Calls
  3. INTRODUCTION TO THE TESTS
    • Unit tests
    • ]Introduction to TDD
    • Unittest library
    • Review of other libraries
  1. ADDITIONALLY: