Skip to content

Latest commit

 

History

History
139 lines (95 loc) · 5.95 KB

_advanced-python.md

File metadata and controls

139 lines (95 loc) · 5.95 KB
layout title permalink
page
Advanced Python
/advanced-python/

A three day course covering advanced language features and various aspects of the wider Python ecosystem. Tooling, best practises and common use cases for the Python programming language. A fast paced course with plenty of lab driven exercises to ensure attendees really learn the material and techniques for themselves.

This is a course offered by Agile Abstraction, either in house on your site or on our premises. For more details and pricing get in touch [email protected].

This course makes a great follow up from Practical Python or courses like Python for data science that teach you the basics of the langauge. It's had great feedback from Developers, Testers, Data Scientists, Financial modellers and analysts who already use Python on a day-to-day basis, but need to know how to get even more out of the language.

This advanced Python training course will teach you additional techniques and features relevant to Python to help you realise its full potential as an elegant language for rapid development of test scripts and applications. Python is a dynamic object-oriented programming language. It offers strong support for integration with other development languages and tools, and comes with extensive standard libraries.

Python also serves as a great introduction to Functional Programming, allowing us to explore topics such as closures, comprehensions, generators and decorators. And of course one of the great strengths of Python is the extensive set of libraries. We take a tour of some of the more interesting libraries and frameworks available in Python.

  1. REGULAR EXPRESSIONS AND STRING PROCESSING

    Various advanced examples of using Python for working with text processing, including the absolute minimum every developer should know about unicdoe and byte-strings, everything the string class has to offer and how to make the best of regular expressions for pulling structured data of text and byte oriented data.

    Discussion of other standard library packages and techniques for more powerful text processing including templating library and full blown parsers.

  2. Understanding Python Assignment

    Python namespaces, why they are such an important and key part of Python and how understanding Python assignement and Python namespaces makes it easier to understand Python the language.

  3. ADVANCED OBJECT ORIENTATION

    The full Python object model. Python from the inside out. Really understand Python objects and classes.

    Inheritance, including multiple inheritance and the method resolution order (mro) and why it matters to you.

    Language features like:

    • class methods
    • bound methods
    • properties

    and how they tie together, including real world use cases.

    Metaprogramming, operator overloading and the Python magic methods. Really understanding Python as a language, bringing all the parts together. Build your own containers in Python, understand the power and limitations of the built-in containers and how to customize the behaviour of your own Python objects for easier use.

  4. MODERN APPROACHES TO EXCEPTION HANDLING

    Full Python syntax and features for exception handling, how best to handle exceptions including best practises for development and topics like logging.

  5. INSTALLING, DEPLOYING and DISTRIBUTING PACKAGES and SYSTEMS

    pip and pip freeze, what every developer should know. A discussion of other Python tools like code coverage and alternative package installation and management tools.

  6. AGILE DEVELOPMENT WITH TDD IN PYTHON

    The advantages of the Test Driven Development approach (test first) and writing effective unit tests with both unittest and py.test and using mock objects.

  7. Organising Your Code

    When code gets beyond a certain size using standard Python structural tools to better organise your code for refactoring, understanding, thinking about and distributing your code. Python modules, packages, API design and migrating between them.

  8. ADVANCED LANGUAGE TECHNIQUES

    Decorators, decorator factories, class decorators, iterators, generators and more.

  9. FUNCTIONAL PROGRAMMING

    A highly practical approach to functional programming in Python and why these are such important every day concepts in Python programmings. Both the theory and the practise.

    • lambda functions
    • Higher order functions
    • nested functions
    • currying and partial applications
    • closures
  10. A Data Science Overview

    A brief overview of working with Numpy, Pandas, OpenPyXl, MatplotLib, and so on.

  11. NETWORKING:

    The requests library, the HTTP request response cycle, accesssing APIs and building API clients, Stream Sockets and server clients, Datagrams and UDP server and clients and more. Powerful techques for inter-process communication when working with concurrency.

  12. WEB DEVELOPMENT

    A full introduction to modern web development with the Flask web development framework including URL routing, view functions, templating with the Jinja2 library, security considerations, web forms and database integration with the SQLAlchemy ORM. How to write and create simple cross-team tools delivered across private networks following modern best practises.

  13. THREADS AND CONCURRENCY

    Threading and Multiprocessing libraries and the dreaded GIL. Why it matters and when it doesn't matter, including how to avoid the pitfalls with multiprocessing and with custom C/C++ extensions.

    A dicsussion of distributed computing using techniques like message queues and distributed task libraries like celery.

  14. WORKING WITH DATABASES

    Connecting directly to databases from Python and using an ORM like SQLAlchemy to avoid the pain.