Workshop: Intermediate Python

This two day course is designed for developers who already know the fundamentals of Python. This course will get more "under the hood" and introduce the students to powerful tools and techniques that go beyond the basics. There are a lot of intermediate topics in Python, and this course can be customized based on need. The class will focus on Python 3 unless Python 2 is specifically requested.

  • We start immediately with working programs.
  • Testing is integral to our approach.
  • Taught on Windows, Linux or Mac OS X.
  • Knowledge level of Python for Programmers course is assumed

Topics

  • Function and class decorators
  • Closures
  • Creating context managers
  • Packaging and distribution of Python packages
  • Callable objects, lambdas, and extended argument syntax
  • Properties, class methods, and static methods
  • String representations of objects
  • Specialized numeric and scalar types
  • Functional-style programming tools
  • The iteration and iterable protocols
  • Multiple inheritance, method resolution order, and super()
  • Collection protocols and implementing collections
  • Advanced error handling with exceptions
  • Introspection

Computer Setup:

This workshop requires that you bring a laptop with the following software installed:

  • Python 3.3 or greater installed. Python 3.5.1 would be ideal. https://www.python.org/downloads/
  • An editor for Python code. Attendees can use whatever editor they prefer, but we recommend PyCharm which is a full-featured Python IDE : https://www.jetbrains.com/pycharm/
  • The ability to either connect to the Internet or accept USB flash drives so we can distribute course materials on the day.

Instructor:

Robert Smallshire

Sixty North AS

Twitter @robsmallshire

Robert has worked in senior architecture and technical management roles for several software companies providing tools in the energy sector for dealing with the masses of information flowing from today's digital oil fields. He has dealt with understanding, designing, advocating and implementing effective architectures for sophisticated scientific and enterprise software in Python, C++, C# and F#. He believes in the necessity of a strong engineering culture and enjoys performing the coaching and training necessary to achieve one. Robert is a regular speaker at conferences, meetups and corporate software events and can be found speaking about topics as diverse as behavioural microeconomics in software development to implementing web services on 8-bit microcontrollers. He is organiser of the Oslo Python group and holds a Ph.D. in a natural science. Robert has recently founded Sixty North, a software product and consulting business in Norway.