Advanced Python Programming

Course Summary

3 days This course is designed for working programmers with some experience with Python and wishing to take a deeper dive.

Course Content

Python refresher

A quick refresher of what you already know about Python. Covers datatypes, functions, classes, modules and program organization and exceptions

Mastering list comprehensions and generator expressions

Iterators, generators and coroutines

Build custom iterator objects by implementing the iterator protocol. Also covers generator functions and coroutines. Learn how to apply generators and coroutines to data processing problems.


Accelerate your development process by learning how to use the appropriate design pattern to solve your problem. Some selected patterns are covered :

  • Singleton
  • Proxy
  • Observer
  • Factory

Additional patterns can be included depending on the needs and goals of participants.


Explore the various metaprogramming techniques used by many Python frameworks. These techniques are primarily used to manipulate code. The features covered include metaclasses, decorators, class decorators, context managers and wrapping a function to add extra processing.

Concurrent programming

Gain a clear understanding of the concurrency primitives that modern operating systems gives Python to work with. Discuss the two main approaches to implementing concurrent systems - shared memory and message passing. Topics covered include : -

  • Processes and threads
  • Python's approaches to concurrent programming
  • CPU-Bound Concurrency
  • IO-Bound Concurrency

Development environment and best practices with Python

  • Virtual environments
  • Version control
  • Package management
  • Testing, logging and debugging


Date Location Register
From March 27, 2017 to March 29, 2017 Kuala Lumpur Email us
Need a different date? Request for a class

Classes are also available as in-house training. Email us


Boey Pak Cheong

Boey Pak Cheong graduated from Universiti Malaya with a B. Sc. (Hons) in Chemical Technology but became keenly interested and actively involved in computer programming from the late 1980s onwards. He pioneered the usage of Python in Malaysia since 1995 and has more than 20 years experience in software development using various programming languages (including Python, C, PHP, Javascript, HTML, CSS2, LaTeX ) in the Windows and Linux operating systems, with 19 years experience in using the Python language in a production environment.

Since 2006, he has conducted professional training courses in Python programming at the introductory, intermediate and advanced levels for several leading multinational companies in Malaysia, including Intel, F-Secure, CSGI, Experian and MIMOS amongst many others. He also conducts courses for the Django Web Development Framework, Linux and Tcl/Tk.

He also speaks frequently about Python, most recently at the MiniPyCon 2014 in Kuala Lumpur and at the Institution of Engineers, Malaysia.

Currently he operates Pytech Resources which specializes in Python and Django training and consultancy and software development. He has previously worked in technical and management positions with British Petroleum, ITT and Alcatel and also attended a senior management training program at the London Business School, UK.

He created the software for a leading e-commerce website using Python that dynamically generates comprehensive pdf reports either in English or Chinese and continues active development of new products for this website. But today Boey is primarily focused on teaching Python and Django.


Course Information

Designed for programmers with some working experience in Python who wish to dive deeper into the language. Alternatively you can attend the course Practical Python for Programmers first in order to benefit most from this course.

Recent experience with Python as covered in our Practical Python for Programmers course.

Training Documentation (HTML and Jupyter Notebook format)
Lunch at local restaurants
Class will run subject to a minimum of 4 persons. Each class is limited to a size of 10 persons in order to optimize the learning process. A full refund will be given in case of cancellation of the class due to insufficient quota. Alternatively this amount can be used for payment of the next available class.