Furius Python Training Course


Martin Blais offers on-site training classes in the Python language. The course consists of a series of 1-hour teaching sessions interleaved with periods of practical exercises to give the students a chance to review and understand the new material. The course can be taught in english or french, anywhere in the USA, Europe or Asia.

The courses can be customized somewhat to include specific topics. Extra consulting time can be added to the course. This can be a good way to help a team kickstart a new project with Python.

3-day Course Overview

The 3-day course format consists in a full introduction to the Python language and several of the standard modules, as well as a number of custom topics depending on your needs. The final day is often dedicated to a set of subjects selected for your application (see a list below). After the course, the student should have a good understanding of the Python language and be able to write Python programs independently. This is a great way to kickstart developers in a group moving to a project to be realized in Python.

If the audience is advanced, I often delve on some internal details of the Python interpreter that will help them integrate extension modules and diagnose problems they may encounter in the future. Also, recent additions to the Python language are covered, such as generators, decorators, context managers (with), new-style vs. old-style classes, and low-level implementation details (such as descriptors) can be covered if there is time and the students have an interest for it. At this point I also touch on differences that we will see with the introduction of Python 3k.

A typical day of training consists in four sessions, each of which contains a 1-hour presentation followed by 20-30 minutes of hands-on lab exercises, with 15 minute breaks between sessions. The presentation is sprinkled with numerous impromptu live coding sessions, and students are encouraged to ask questions, whose answers are most often answered by coding an example for them.

We start around 9h00am, do two sessions of classes, break for lunch, and complete in the afternoon with two more sessions, ending the day around 17h30 or so, depending on the pace and specific needs and desires of the students.

A Customizable Course

In the last portion of the course (the 3rd day) I like to focus on topics specific to your needs. I have a number of modules that can be selected to customize your course:

  • Unicode, Internationalization and Localization
  • Unit Testing
  • Accessing SQL Databases
  • Working with Subprocesses
  • Threads and Concurrent Programming
  • Advanced Memory Management
  • Debugging and Profiling
  • Creating C/C++ extension modules
  • Network and Internet Servers
  • Working with XML
  • Generators and Co-Routines
  • Interfacing Excel and Python

There is generally time to cover 2, 3 or 4 of these modules, depending on how fast we move along in the first two days of the course.

In contrast with other instructors, my activities don't focus exclusively on training; I'm an active developer and consultant first and foremost, and I've had to work with the technologies above in commercial settings. I'm familiar with the challenges and "real world" issues of implementing systems in Python and bring a practical angle to my presentation, a depth of knowledge that will save your developers precious time when they have to deliver applications built with Python.

Practical Work

Lab work consists in simple exercises whose goal is to give the students an opportunity to put in practice some of the techniques shown in class, and explore them in the instructor's presence, so they can ask questions and get immediate help. Also, I will often demonstrate features interactively, code examples on my laptop during the presentation, which will give the students a "feel" for how to go about developing in Python.

The first session of exercises will be dedicated to setting up the environments and getting the students familiar with the tools needed to write and run Python programs. The last session of the day will double-up as a Q&A and exercise session.

We expect the students to have machines to perform the exercises on, laptops or otherwise. One machine for 2 or 3 students is fine, on any platform (Linux, Mac or Windows, as long as you can install Python on it).

Contact Information

Please contact me (blais@furius.ca) directly for availability or any questions related to this training program. The Contact page contains full information on how to contact me.