Workshop: Python for Programmers

This 2-day course is designed for developers with experience of other languages who need to get up to speed on Python. At the end of this course the students will know the essentials of the Python language, how to use Python's module system to structure code, and how to approach the development of Python programs. The class will focus on Python 3, unless Python 2 is specifically requested.

Rather than working bottom- ­up, this course starts with analyzing and understanding working examples. This way developers will understand the various interdependent techniques in situ rather than in isolation.

  • We start immediately with working programs.
  • Testing is integral to our approach.
  • Taught on Windows, Linux or Mac OS X.

Key Topics

  • Built­-in types and the Python object model
  • Flow control and exceptions
  • Class definition, inheritance, and common usage patterns
  • Program organisation with modules and packages
  • The Python standard library
  • Obtaining and installing Python packages
  • Comprehensions, generators, and iteration
  • Serialization, unit testing, and filesystem interaction
  • Debugging

Course Outline

The course is structured as interleaved sections of lecture and demonstration with individual practical exercises to reinforce the concepts. It’s important to us that our students actually experience these techniques for real, rather than just learning about them in theory.

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.
  • An editor for Python code. Attendees can use whatever editor they prefer, but we recommend PyCharm which is a full-featured Python IDE :
  • The ability to either connect to the Internet or accept USB flash drives so we can distribute course materials on the day.


Robert Smallshire

Founder and CEO of 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.